MCP-Server-for-Documentation
The Docs MCP Server provides an implementation of the Model Context Protocol (MCP), allowing standardized context provision to LLMs. It supports multiple libraries and follows a client-server architecture to access both local and remote data sources.
Docs MCP Server
This repository contains an implementation of a Model Context Protocol (MCP) server.
This MCP server
"""
Searchs the latest docs for a given query and library.
It Supports langchain, openai, and llama-index.
Args: query: The query to search for (e.g. "Chroma DB") library: The library to search in (e.g. "langchain")
Returns: Text from the docs """
What is MCP?
MCP (Model Context Protocol) is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications - it provides a standardized way to connect AI models to different data sources and tools.
Key Benefits
- A growing list of pre-built integrations that your LLM can directly plug into
- Flexibility to switch between LLM providers and vendors
- Best practices for securing your data within your infrastructure
Architecture Overview
MCP follows a client-server architecture where a host application can connect to multiple servers:
- MCP Hosts: Programs like Claude Desktop, IDEs, or AI tools that want to access data through MCP
- MCP Clients: Protocol clients that maintain 1:1 connections with servers
- MCP Servers: Lightweight programs that expose specific capabilities through the standardized Model Context Protocol
- Data Sources: Both local (files, databases) and remote services (APIs) that MCP servers can access
Core MCP Concepts
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
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
Make sure to restart your terminal afterwards to ensure that the uv
command gets picked up.
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