MCP Web Tools Server

MCP Web Tools Server

A Model Context Protocol server that allows LLMs to interact with web content through standardized tools, currently supporting web scraping functionality.

surya-madhav

Browser Automation
Python
Visit Server

README

MCP Web Tools Server

A Model Context Protocol (MCP) server that provides tools for web-related operations. This server allows LLMs to interact with web content through standardized tools.

Current Tools

  • web_scrape: Converts a URL to use r.jina.ai as a prefix and returns the markdown content

Installation

  1. Clone this repository:

    git clone <repository-url>
    cd MCP
    
  2. Install the required dependencies:

    pip install -r requirements.txt
    

    Alternatively, you can use uv for faster installation:

    uv pip install -r requirements.txt
    

Running the Server and UI

This repository includes convenient scripts to run either the MCP server or the Streamlit UI.

Using the Run Scripts

On macOS/Linux:

# Run the server with stdio transport (default)
./run.sh server

# Run the server with SSE transport
./run.sh server --transport sse --host localhost --port 5000

# Run the Streamlit UI
./run.sh ui

On Windows:

# Run the server with stdio transport (default)
run.bat server

# Run the server with SSE transport
run.bat server --transport sse --host localhost --port 5000

# Run the Streamlit UI
run.bat ui

Running Manually

Alternatively, you can run the server directly:

Using stdio (default)

python server.py

Using SSE

python server.py --transport sse --host localhost --port 5000

This will start an HTTP server on localhost:5000 that accepts MCP connections.

And to run the Streamlit UI manually:

streamlit run streamlit_app.py

Testing with MCP Inspector

The MCP Inspector is a tool for testing and debugging MCP servers. You can use it to interact with your server:

  1. Install the MCP Inspector:

    npm install -g @modelcontextprotocol/inspector
    
  2. Run the Inspector with your server:

    npx @modelcontextprotocol/inspector python server.py
    
  3. Use the Inspector interface to test the web_scrape tool by providing a URL like example.com and viewing the returned markdown content.

Integrating with Claude for Desktop

To use this server with Claude for Desktop:

  1. Make sure you have Claude for Desktop installed.

  2. Open the Claude for Desktop configuration file:

    • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  3. Add the following configuration (adjust the path as needed):

{
  "mcpServers": {
    "web-tools": {
      "command": "python",
      "args": [
        "/absolute/path/to/MCP/server.py"
      ]
    }
  }
}
  1. Restart Claude for Desktop.

  2. You should now see the web_scrape tool available in Claude's interface. You can ask Claude to fetch content from a website, and it will use the tool.

Example Usage

Once integrated with Claude, you can ask questions like:

  • "What's on the homepage of example.com?"
  • "Can you fetch and summarize the content from mozilla.org?"
  • "Get the content from wikipedia.org/wiki/Model_Context_Protocol and explain it to me."

Claude will use the web_scrape tool to fetch the content and provide it in its response.

Adding More Tools

To add more tools to this server:

  1. Create a new Python file in the tools/ directory, e.g., tools/new_tool.py.

  2. Implement your tool function, following a similar pattern to the existing tools.

  3. Import your tool in server.py and register it with the MCP server:

# Import your new tool
from tools.new_tool import new_tool_function

# Register the tool with the MCP server
@mcp.tool()
async def new_tool(param1: str, param2: int) -> str:
    """
    Description of what your tool does.
    
    Args:
        param1: Description of param1
        param2: Description of param2
        
    Returns:
        Description of return value
    """
    return await new_tool_function(param1, param2)
  1. Restart the server to apply the changes.

Streamlit UI

This repository includes a Streamlit application that allows you to connect to and test all your MCP servers configured in Claude for Desktop.

Running the Streamlit UI

streamlit run streamlit_app.py

This will start the Streamlit server and open a web browser with the UI.

Features

  • Load and parse your Claude for Desktop configuration file
  • View all configured MCP servers
  • Connect to any server and view its available tools
  • Test tools by providing input parameters and viewing results
  • See available resources and prompts

Usage

  1. Start the Streamlit app
  2. Enter the path to your Claude for Desktop configuration file (default path is pre-filled)
  3. Click "Load Servers" to see all available MCP servers
  4. Select a server tab and click "Connect" to load its tools
  5. Select a tool and provide the required parameters
  6. Click "Execute" to run the tool and see the results

Troubleshooting

  • Missing dependencies: Make sure all dependencies in requirements.txt are installed.
  • Connection issues: Check that the server is running and the configuration in Claude for Desktop points to the correct path.
  • Tool execution errors: Look for error messages in the server output.
  • Streamlit UI issues: Make sure Streamlit is properly installed and the configuration file path is correct.

License

This project is available under the MIT License. See the LICENSE file for more details.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Playwright MCP Server

Playwright MCP Server

Provides a server utilizing Model Context Protocol to enable human-like browser automation with Playwright, allowing control over browser actions such as navigation, element interaction, and scrolling.

Featured
Local
TypeScript
@kazuph/mcp-fetch

@kazuph/mcp-fetch

Model Context Protocol server for fetching web content and processing images. This allows Claude Desktop (or any MCP client) to fetch web content and handle images appropriately.

Featured
Local
JavaScript
DuckDuckGo MCP Server

DuckDuckGo MCP Server

A Model Context Protocol (MCP) server that provides web search capabilities through DuckDuckGo, with additional features for content fetching and parsing.

Featured
Python
YouTube Transcript MCP Server

YouTube Transcript MCP Server

This server retrieves transcripts for given YouTube video URLs, enabling integration with Goose CLI or Goose Desktop for transcript extraction and processing.

Featured
Python
serper-search-scrape-mcp-server

serper-search-scrape-mcp-server

This Serper MCP Server supports search and webpage scraping, and all the most recent parameters introduced by the Serper API, like location.

Featured
TypeScript
The Verge News MCP Server

The Verge News MCP Server

Provides tools to fetch and search news from The Verge's RSS feed, allowing users to get today's news, retrieve random articles from the past week, and search for specific keywords in recent Verge content.

Featured
TypeScript
Tavily MCP Server

Tavily MCP Server

Provides AI-powered web search capabilities using Tavily's search API, enabling LLMs to perform sophisticated web searches, get direct answers to questions, and search recent news articles.

Featured
Python
mcp-pinterest

mcp-pinterest

A Pinterest Model Context Protocol (MCP) server for image search and information retrieval

Featured
TypeScript
Brev

Brev

Run, build, train, and deploy ML models on the cloud.

Official
Local
Python