Local Scanner MCP Server

by treaties-ai

260 downloads
Not rated
GitHub

About

MCP server for scanning local code and localhost URLs

Details

Author
treaties-ai
Downloads
260
Categories
Other

- Access and scan localhost URLs for runtime errors
- Capture full-page or partial screenshots of local web pages
- Lint JavaScript, TypeScript, and CSS files
- Validate HTML content or URLs for standards compliance
- Perform automated page interactions (click, type, wait)
- Integrates seamlessly with MCP AI assistant clients

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Local Scanner MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install dependencies with npm install, build with npm run build, and start with npm start. Then configure an MCP client (e.g., for Cline or WindSurf) by editing the respective settings file and providing the path to the built server (build/index.js). The server exposes four tools: scan_localhost, screenshot_localhost, lint_code, and validate_html.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "local scanner mcp server": {
            "local-scanner-mcp": {
                "url": "http://localhost:3000",
                "waitTime": 2000,
                "actions": [
                    {
                        "type": "click",
                        "selector": "#login-button"
                    },
                    {
                        "type": "type",
                        "selector": "#username",
                        "text": "testuser"
                    },
                    {
                        "type": "type",
                        "selector": "#password",
                        "text": "password"
                    },
                    {
                        "type": "click",
                        "selector": "#submit-button"
                    },
                    {
                        "type": "wait",
                        "time": 1000
                    }
                ]
            }
        }
    }
}

McpServers

{
    "local-scanner-mcp": {
        "url": "http://localhost:3000",
        "waitTime": 2000,
        "actions": [
            {
                "type": "click",
                "selector": "#login-button"
            },
            {
                "type": "type",
                "selector": "#username",
                "text": "testuser"
            },
            {
                "type": "type",
                "selector": "#password",
                "text": "password"
            },
            {
                "type": "click",
                "selector": "#submit-button"
            },
            {
                "type": "wait",
                "time": 1000
            }
        ]
    }
}

Local Scanner MCP Server

A Model Context Protocol (MCP) server for scanning local code and localhost URLs. This server provides tools for validating code, capturing screenshots, and analyzing web pages running on localhost.

Overview

The Local Scanner MCP Server extends AI assistants' capabilities to interact with locally running web applications and code files. It bridges the gap between AI and local development environments, enabling AI assistants to:

- Test and debug locally running web applications
- Capture screenshots for visual verification
- Lint code files to ensure quality and standards compliance
- Validate HTML for accessibility and standards compliance

This server is particularly useful for developers working with AI assistants like Cline (VSCode) or Cascade (WindSurf) who want to leverage AI capabilities for local development tasks.

Features

The server provides the following tools:

1. scan_localhost

Access a localhost URL, capture console logs, and check for runtime errors.

Parameters:
- url (required): Localhost URL to scan (must start with http://localhost or https://localhost)
- waitTime (optional): Time to wait in milliseconds after page load (default: 1000)
- actions (optional): List of actions to perform on the page, such as:
- Click: { "type": "click", "selector": "#button-id" }
- Type: { "type": "type", "selector": "#input-id", "text": "Hello World" }
- Wait: { "type": "wait", "time": 2000 }

Example:

{
"url": "http://localhost:3000",
"waitTime": 2000,
"actions": [
{ "type": "click", "selector": "#login-button" },
{ "type": "type", "selector": "#username", "text": "testuser" },
{ "type": "type", "selector": "#password", "text": "password" },
{ "type": "click", "selector": "#submit-button" },
{ "type": "wait", "time": 1000 }
]
}

2. screenshot_localhost

Take a screenshot of a localhost URL.

Parameters:
- url (required): Localhost URL to screenshot (must start with http://localhost or https://localhost)
- fullPage (optional): Whether to take a full page screenshot (default: false)
- waitTime (optional): Time to wait in milliseconds after page load (default: 1000)

Example:

{
"url": "http://localhost:3000/dashboard",
"fullPage": true,
"waitTime": 2000
}

3. lint_code

Lint JavaScript, TypeScript, or CSS code files.

Parameters:
- filePath (required): Path to the file to lint
- language (optional): Language of the file (default: auto-detect from file extension)
- Options: "javascript", "typescript", "css"

Example:

{
"filePath": "/path/to/your/file.js",
"language": "javascript"
}

4. validate_html

Validate HTML content or URL for standards compliance.

Parameters:
- source (required): HTML content or URL to validate
- isUrl (optional): Whether the source is a URL (default: false)

Example:

{
"source": "<html><head><title>Test</title></head><body><h1>Hello World</h1></body></html>",
"isUrl": false
}

Or for a URL:

{
"source": "http://localhost:3000",
"isUrl": true
}

Installation

1. Clone the repository:

   git clone https://github.com/treaties-ai/local-scanner-mcp.git
cd local-scanner-mcp

2. Install dependencies:
   npm install

3. Build the project:
   npm run build

4. Start the server:
   npm start

Usage with MCP Clients

This server implements the Model Context Protocol (MCP) and can be used with any MCP client.

For VSCode/Cline

Edit the MCP settings file at ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json:

{
  "mcpServers": {
    "local-scanner": {
      "command": "node",
      "args": ["/Users/your_username/Documents/Cline/MCP/local-scanner-mcp/build/index.js"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

For WindSurf/Cascade

Edit the WindSurf configuration file at ~/Library/Application Support/WindSurf/windsurf_config.json:

{
  "mcpServers": {
    "local-scanner": {
      "command": "node",
      "args": ["/Users/your_username/Documents/WindSurf/MCP/local-scanner-mcp/build/index.js"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

Replace your_username with your actual username in both configurations.

Development

To add new tools or enhance existing ones:

1. Add validation functions for new tool arguments
2. Update the tool list in the setupToolHandlers method
3. Implement handler functions for the new tools
4. Update the request handler to handle the new tools
5. Build and test the server

License

MIT

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.