项目简介
本项目是一个示例性的 Model Context Protocol (MCP) 服务器实现,旨在演示如何构建一个功能性的 MCP 服务器,为大型语言模型 (LLM) 客户端提供特定的能力。它实现了一个用于搜索流行编程库在线文档的工具。
主要功能点
- 文档搜索工具: 提供一个名为 'get_docs' 的工具,允许 LLM 根据用户查询和指定的库(目前支持 LangChain、LlamaIndex、OpenAI)搜索在线文档。
- 内容提取: 搜索结果会抓取网页内容,并将其文本信息返回给 LLM。
- 标准协议: 通过 Model Context Protocol (MCP) 标准与兼容的 LLM 客户端(如 Claude Desktop)进行通信。
安装步骤
- 系统要求: 需要 Python 3.10 或更高版本。
- 安装 'uv' 包管理器: 按照以下步骤安装 'uv'。
- 在 macOS/Linux 上执行:
安装后请重启终端。curl -LsSf https://astral.sh/uv/install.sh | sh
- 在 macOS/Linux 上执行:
- 创建和设置项目:
- 创建一个新目录并进入:
uv init mcp-server cd mcp-server - 创建并激活虚拟环境:
uv venv source .venv/bin/activate # 在 Windows 上使用: .venv\Scripts\activate - 安装依赖:
(注意:项目中使用了 'beautifulsoup4' 和 'python-dotenv',需一并安装)uv add "mcp[cli]" httpx beautifulsoup4 python-dotenv - 创建服务器代码文件:
touch main.py - 将仓库中的 'main.py' 代码内容复制到你创建的 'main.py' 文件中。
- 创建一个 '.env' 文件用于存放 Serper API Key(如果需要使用搜索功能)。在该文件中添加一行 'SERPER_API_KEY=你的API密钥'。
- 创建一个新目录并进入:
服务器配置(供MCP客户端使用)
MCP 服务器通常由 MCP 客户端(如 Claude Desktop、兼容的 IDE 等)按需启动。为了让客户端知道如何启动此服务器,你需要在客户端的配置中添加服务器的启动信息。
通常,这需要编辑客户端的配置文件(例如 Claude Desktop 的 'claude_desktop_config.json'),添加一个 MCP 服务器配置条目。配置信息是 JSON 格式,至少需要指定服务器的名称 ('server_name')、启动命令 ('command') 及其参数 ('args')。
对于此项目,配置应指示客户端执行以下命令来启动服务器:
- 'command': 'uv' (或者 'uv' 命令的绝对路径)
- 'args':
- '--directory': 指定项目的根目录(你需要将 '/ABSOLUTE/PATH/TO/YOUR/mcp-server' 替换为你项目所在的实际绝对路径)
- 'run': 'uv' 的运行命令
- 'main.py': 要执行的 Python 文件
客户端会使用这些信息来启动服务器,并通过标准输入/输出 (stdio) 协议进行通信。请参考你的 MCP 客户端文档,了解如何具体配置外部 MCP 服务器。
基本使用方法
- 确保你已经完成了上述安装和项目设置步骤。
- 在项目目录下(已激活虚拟环境)运行服务器:
服务器将启动并监听标准输入/输出,等待 MCP 客户端连接。uv run main.py - 启动你的 MCP 客户端(如已正确配置 Claude Desktop)。客户端检测到配置的服务器后,会尝试连接。
- 一旦连接成功,客户端即可通过 MCP 调用此服务器提供的 'get_docs' 工具。具体如何在客户端中触发工具调用,取决于客户端的用户界面和功能。例如,LLM 在与你交互时,如果判断需要获取特定库的文档信息,可能会通过客户端调用此工具。
信息
分类
网页与API