MCP-Server-Tutorial
0
This project is a custom MCP server that facilitates documentation search for Python libraries, enhancing documentation access via Claude. Key features include Google Search API integration and web scraping.
MCP Server for Documentation Search
This project implements a custom MCP (Model Control Protocol) server that enables Claude to search through documentation for popular Python libraries including LangChain, LlamaIndex, and OpenAI.
Features
- Search documentation for specific queries across supported libraries
- Integration with Google Search API via Serper for finding relevant documentation pages
- Web scraping capabilities to extract content from documentation pages
- Designed to work with Claude Desktop through MCP
System Requirements
- Python 3.10 or higher
- MCP SDK 1.2.0 or higher
uv
package manager
Getting Started
Installing uv Package Manager
On MacOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
On Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Make sure to restart your terminal afterwards to ensure that the uv
command gets picked up. For more information about uv package manager visit : https://docs.astral.sh
Project Setup
- Create and initialize the project:
# Create a new directory for our project
uv init mcp-server
cd mcp-server
# Create virtual environment and activate it
uv venv
source .venv/bin/activate # On Windows use: .venv\Scripts\activate
# Install dependencies
uv add "mcp[cli]" httpx
- Create the server implementation file:
touch main.py
Running the Server
- Start the MCP server:
uv run main.py
- The server will start and be ready to accept connections
Connecting to Claude Desktop
- Install Claude Desktop from the official website
- Configure Claude Desktop to use your MCP server:
Edit ~/Library/Application Support/Claude/claude_desktop_config.json
:
{
"mcpServers": {
"mcp-server": {
"command": "uv", # It's better to use the absolute path to the uv command
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/YOUR/mcp-server",
"run",
"main.py"
]
}
}
}
- Restart Claude Desktop
Troubleshooting
If your server isn't being picked up by Claude Desktop:
- Check the configuration file path and permissions
- Verify the absolute path in the configuration is correct
- Ensure uv is properly installed and accessible
- Check Claude Desktop logs for any error messages