使用说明

项目简介

本项目是一个实现了 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 服务器与客户端之间的通信协议。

安装步骤

  1. 克隆仓库
    git clone https://github.com/dannylee1020/toy-mcp.git
    cd toy-mcp
  2. 安装依赖 虽然仓库中没有 'requirements.txt' 文件,但根据代码内容,你可能需要安装 'fastmcp' 和 'httpx' 库。建议创建一个虚拟环境并安装:
    python -m venv venv
    source venv/bin/activate  # 或 venv\Scripts\activate for Windows
    pip install fastmcp httpx anthropic
    请注意:'anthropic' 库是客户端 'client.py' 中使用的,如果你只运行服务器端 'server.py',则不需要安装 '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 服务器的基地址,客户端将连接到此地址。

基本使用方法

  1. 启动 MCP 服务器 在克隆的仓库目录下,打开终端并运行服务器代码:

    python server.py

    服务器默认使用 SSE 协议在 'http://localhost:8000/sse' 启动。

  2. 运行 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