A Model Context Protocol (MCP) server implementation that provides a simple website fetching service. This server exposes a tool that allows clients to fetch and retrieve the content of any website through the MCP protocol.
Model Context Protocol (MCP) is a protocol that enables LLMs to interact with external tools and resources. MCP servers can provide three main types of capabilities:
- Resources: File-like data that can be read by clients (like API responses or file contents)
- Tools: Functions that can be called by the LLM (with user approval)
- Prompts: Pre-written templates that help users accomplish specific tasks
This implementation focuses on providing a tool capability for website fetching.
-
Clone the repository:
git clone <your-repository-url> cd <repository-name>
-
Install dependencies:
pip install -r requirements.txt
-
Run the MCP server (Streamable HTTP):
python app.py --port 8000 --path /mcp
The server will start a Streamable HTTP MCP endpoint at http://localhost:8000/mcp.
- This server uses the Streamable HTTP transport. Clients should connect with transport set to
http. - In production, validate
Originheaders and use HTTPS.
-
Build the Docker image:
docker build -t mcp-website-fetcher . -
Run the container:
docker run -p 8000:8000 mcp-website-fetcher
The application is automatically built and pushed to GitHub Container Registry (GHCR) on every push to the main branch. You can pull and run the latest image using:
docker pull ghcr.io/<your-github-username>/<repository-name>:main
docker run -p 8000:8000 ghcr.io/<your-github-username>/<repository-name>:mainA ready-for-use container image can be obtained by docker pull otomato/mcp-website-fetcher