使用说明
项目简介
本项目是一个实现了 Model Context Protocol (MCP) 协议的服务器,专注于提供对 Hacker News API 的数据访问。它通过定义工具(Tools)和 Prompt 模板(Prompts),使得 LLM 客户端能够以结构化的方式获取 Hacker News 的新闻、用户信息等。这是一个学习和演示 MCP 服务器基本功能的示例项目。
主要功能点
- 工具 (Tools):
- 'get_top_stories': 获取 Hacker News 上的热门文章 ID 列表。
- 'get_user_info': 根据用户 ID 获取用户信息。
- 'get_story': 根据文章 ID 获取文章详细信息。
- Prompt 模板 (Prompts):
- 'story_data_inst': 生成指令,指示 LLM 循环获取多个文章 ID 的详细信息。
- SSE 传输协议: 使用 Server-Sent Events (SSE) 作为 MCP 服务器与客户端之间的通信协议。
安装步骤
- 克隆仓库
git clone https://github.com/dannylee1020/toy-mcp.git cd toy-mcp - 安装依赖
虽然仓库中没有 'requirements.txt' 文件,但根据代码内容,你可能需要安装 'fastmcp' 和 'httpx' 库。建议创建一个虚拟环境并安装:
请注意:'anthropic' 库是客户端 'client.py' 中使用的,如果你只运行服务器端 'server.py',则不需要安装 'anthropic'。python -m venv venv source venv/bin/activate # 或 venv\Scripts\activate for Windows pip install fastmcp httpx anthropic
服务器配置
MCP 客户端需要以下配置信息来连接到 HackerNews API MCP 服务器。请将以下 JSON 配置信息提供给 MCP 客户端:
{ "server_name": "hackernews", "command": "python", "args": ["server.py"], "transport": "sse", "base_url": "http://localhost:8000/sse" }
配置参数说明:
- 'server_name': 服务器名称,这里设置为 "hackernews"。
- 'command': 启动服务器的命令,这里使用 'python' 解释器。
- 'args': 启动命令的参数,这里指定运行 'server.py' 文件。
- 'transport': 使用的传输协议,这里是 'sse' (Server-Sent Events)。
- 'base_url': SSE 服务器的基地址,客户端将连接到此地址。
基本使用方法
-
启动 MCP 服务器 在克隆的仓库目录下,打开终端并运行服务器代码:
python server.py服务器默认使用 SSE 协议在 'http://localhost:8000/sse' 启动。
-
运行 MCP 客户端
- 确保你已经配置了 Anthropic API 密钥到环境变量 'ANTHROPIC_API_KEY' 中,因为 'client.py' 使用了 Anthropic Claude 模型。
- 运行客户端代码:
python client.py - 客户端会连接到运行中的 MCP 服务器,并发送用户输入 "Show me the title of the top 5 stories on Hacker News"。
- 客户端会调用服务器提供的工具获取 Hacker News 数据,并与 Anthropic Claude 模型进行交互,最终输出结果。
注意:
- 确保服务器 'server.py' 先于客户端 'client.py' 启动。
- 客户端 'client.py' 代码示例使用了 Anthropic Claude 模型,你需要拥有 Anthropic API 的访问权限并配置好 API 密钥才能完整运行客户端示例。
- 此仓库是一个简单的演示项目,可能不包含完善的错误处理和安全性措施,请在实际应用中根据需要进行扩展和改进。
信息
分类
网页与API