使用说明
项目简介
本项目 'mcp-server' 是一个基于 Model Context Protocol (MCP) 实现的服务器,旨在为大型语言模型 (LLM) 应用提供上下文信息和功能扩展。它目前主要集成了 网页抓取 (fetch) 和 网络搜索 (search) 两个工具,允许 LLM 通过 MCP 协议调用这些工具来获取外部信息,从而增强其回答问题的能力和知识覆盖面。
主要功能点
- 工具 (Tools) 注册与执行: 提供 'fetch' 和 'search' 两个工具,LLM 客户端可以调用这些工具执行网页内容抓取和网络搜索。
- fetch 工具: 允许 LLM 提供 URL,服务器抓取该 URL 的网页内容并返回给 LLM。
- search 工具: 允许 LLM 提供搜索关键词,服务器进行网络搜索并将结果返回给 LLM。
- 基于标准 MCP 协议: 使用 JSON-RPC 协议与客户端通信,符合 MCP 标准,易于与支持 MCP 协议的 LLM 客户端集成。
- 易于安装和配置: 提供详细的安装步骤和配置文件示例,方便用户快速部署和使用。
- Python 和 Go 语言支持: 提供 Python 和 Go 两个版本的服务端代码,用户可以根据自身技术栈选择合适的版本。
安装步骤
-
前置依赖:
- Python 版本: 需要 Python 3.12 或更高版本。
- uv 包管理器: 推荐使用 'uv' 包管理器来管理 Python 环境和依赖。如果未安装 'uv',请参考 uv 安装文档 进行安装。
- Jina API Key: 'fetch' 和 'search' 工具使用了 jina.ai 提供的 API 服务,需要从 https://jina.ai/reader 获取 'JINA_API_KEY' 并配置到服务器环境变量中。
-
安装 (cline - MCP 客户端): 如果你的 LLM 客户端 (如 Claude Desktop) 使用 Smithery 管理 MCP 服务器,可以使用以下命令自动安装 'mcp-server':
npx -y @smithery/cli install @yiGmMk/mcp-server --client claude这个命令会自动下载、配置并安装 'mcp-server' 到你的 Claude Desktop 客户端。
-
手动安装 (可选): 如果你需要手动安装或调试 'mcp-server',可以按照以下步骤操作:
- 克隆仓库到本地: 'git clone https://github.com/yiGmMk/mcp-server.git'
- 进入仓库目录: 'cd mcp-server'
- (可选)创建 Python 虚拟环境: 'python3 -m venv .venv' 并激活虚拟环境: 'source .venv/bin/activate' (Linux/macOS) 或 '.venv\Scripts\activate' (Windows)
- 安装 Python 依赖: 'uv pip install -r requirements.txt' (或者使用 'pip install -r requirements.txt')
- 配置环境变量 'JINA_API_KEY': 将你从 jina.ai 获取的 API Key 设置为环境变量 'JINA_API_KEY'。
服务器配置 (MCP 客户端配置)
以下是 MCP 客户端 (如 Claude Desktop) 需要配置的 'mcpServers' JSON 配置信息。请将以下 JSON 代码添加到你的 MCP 客户端的配置文件中。
{ "mcpServers": { "yiGmMk/mcp-server": { "command": "uv", "args": [ "--directory", "/path/to/your/mcp-server", // 请替换为你的 mcp-server 仓库在本地的实际路径 "run", "main.py" ], "env": { "JINA_API_KEY": "YOUR_JINA_API_KEY", // 请替换为你的 JINA_API_KEY,或者保持原样,确保在运行环境中设置了 JINA_API_KEY 环境变量 "PYTHONIOENCODING": "utf-8" }, "disabled": false, "autoApprove": [] } } }
配置参数说明:
- '"yiGmMk/mcp-server"': MCP 服务器的名称,用于在客户端中标识和选择。
- '"command": "uv"': 启动 MCP 服务器的命令,这里使用 'uv' 包管理器来运行 Python 脚本。如果你的环境中没有 'uv',可以尝试将 'command' 修改为 'python3' 或 'python',并相应调整 'args' 中的路径。
- '"args"': 启动命令的参数列表。
- '"directory": "/path/to/your/mcp-server"': 指定 'mcp-server' 仓库的根目录。请务必将其替换为你本地仓库的实际路径。
- '"run"': 'uv' 命令的子命令,用于运行 Python 脚本。
- '"main.py"': 要运行的 Python 脚本文件名,即 'mcp-server' 的主程序入口。
- '"env"': 环境变量配置。
- '"JINA_API_KEY": "YOUR_JINA_API_KEY"': 设置 'JINA_API_KEY' 环境变量,请替换为你的 Jina API Key,或者确保你的运行环境中已经设置了 'JINA_API_KEY' 环境变量。 如果你的 Jina API Key 已经设置在系统环境变量中,可以保持 '"JINA_API_KEY": "YOUR_JINA_API_KEY"',服务器会自动读取系统环境变量。
- '"PYTHONIOENCODING": "utf-8"': 设置 Python 的输入/输出编码为 UTF-8,避免字符编码问题。
- '"disabled": false': 设置为 'false' 表示启用该 MCP 服务器。
- '"autoApprove": []': 自动批准的工具列表,目前为空。
如果你使用 venv 虚拟环境,可以参考以下配置 (需要指定虚拟环境路径):
{ "mcpServers": { "yiGmMk/mcp-server": { "command": "uv", "args": [ "run", "/path/to/your/mcp-server/main.py" // 请替换为你的 mcp-server 仓库中 main.py 文件的实际路径 ], "env": { "VIRTUAL_ENV": "/path/to/your/mcp-server/.venv", // 请替换为你的虚拟环境 .venv 目录的实际路径 "JINA_API_KEY": "YOUR_JINA_API_KEY", // 请替换为你的 JINA_API_KEY,或者保持原样,确保在运行环境中设置了 JINA_API_KEY 环境变量 "PYTHONIOENCODING": "utf-8" }, "disabled": false, "autoApprove": [] } } }
注意: 请根据你的实际环境修改 '/path/to/your/mcp-server' 和 'YOUR_JINA_API_KEY'。
基本使用方法
- 启动 MCP 服务器: 根据你的安装方式,启动 'mcp-server'。 如果使用 Smithery 安装,通常会自动启动。 如果手动安装,需要在仓库目录下运行 'uv run main.py' (或 'python3 main.py')。
- 配置 MCP 客户端: 将上述提供的 'mcpServers' JSON 配置信息添加到你的 MCP 客户端 (如 Claude Desktop) 的配置文件中。
- 在 LLM 中使用工具: 在支持 MCP 协议的 LLM 应用中,你可以指示 LLM 使用 'fetch' 或 'search' 工具。 例如,你可以提示 LLM "使用 search 工具搜索 '最新的AI技术发展趋势'" 或 "使用 fetch 工具读取 URL 'https://example.com' 的内容"。 LLM 客户端会通过 MCP 协议与 'mcp-server' 通信,调用相应的工具,并将结果返回给 LLM。
示例 (与 LLM 对话):
用户: "请帮我了解一下最近人工智能领域有哪些新的进展?"
LLM: "好的,为了更好的回答您的问题,我将使用 'search' 工具搜索 '最新的AI技术发展趋势',请稍等。" (LLM 客户端调用 'mcp-server' 的 'search' 工具)
'mcp-server' (search 工具): 执行网络搜索,获取搜索结果。
'mcp-server' -> LLM 客户端: 返回搜索结果。
LLM: "根据搜索结果,最近人工智能领域的新进展包括..." (LLM 基于搜索结果生成回答)
Go 版本说明
仓库中还包含 'main.go' 文件,提供了 Go 语言版本的 MCP 服务器实现。 Go 版本的使用方法与 Python 版本类似,但需要 Go 语言环境和相应的依赖管理。 README.md 中注释掉了 Go 版本的 cline 安装说明,可能 Go 版本的 cline 支持还在开发中。 如果你熟悉 Go 语言,可以尝试运行和部署 Go 版本的 'mcp-server'。
信息
分类
网页与API