使用说明

项目简介

Hacker News MCP Server 是一个实现了 Model Context Protocol (MCP) 的后端服务器,专门为大型语言模型 (LLM) 提供访问 Hacker News 信息的工具。通过此服务器,LLM 客户端可以便捷地获取 Hacker News 上的新闻、评论和用户信息,从而增强 LLM 在处理与技术、创业等领域相关查询时的上下文理解和信息检索能力。

主要功能点

  • 获取热门新闻 (get_stories): 允许 LLM 获取 Hacker News 上的 Top、New、Ask HN 或 Show HN 等类型的新闻列表。
  • 获取新闻详细信息 (get_story_info): 允许 LLM 获取指定新闻 ID 的详细信息,包括新闻的评论内容。
  • 搜索新闻 (search_stories): 允许 LLM 根据关键词在 Hacker News 中搜索相关新闻。
  • 获取用户信息 (get_user_info): 允许 LLM 获取指定 Hacker News 用户的信息,包括用户提交的新闻。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/erithwik/mcp-hn
    cd mcp-hn
  2. 安装 Python 依赖: 确保你的 Python 环境中安装了 'uv' (或者 'virtualenv' 和 'pip')。推荐使用 'uv' 进行更快速的包管理。
    # 如果没有 uv,先安装 uv (推荐)
    # pip install uv
    uv pip install -e .
    # 或者使用 pip (如果使用 virtualenv,先创建并激活虚拟环境)
    # pip install -e .

服务器配置

要将此 MCP 服务器与 MCP 客户端(例如 Claude Desktop)连接,您需要配置客户端以识别和连接到此服务器。以下是 Claude Desktop 的配置示例,您需要将配置信息添加到 Claude Desktop 的配置文件 'claude_desktop_config.json' 中。

配置文件路径:

  • MacOS: '~/Library/Application\ Support/Claude/claude_desktop_config.json'
  • Windows: '%APPDATA%/Claude/claude_desktop_config.json'

配置信息 (JSON 格式):

{
  "mcpServers": {
    "mcp-hn": {  // 服务器名称,客户端使用此名称引用
      "command": "uvx", // 启动服务器的命令,这里假设使用 uvx 运行
      "args": ["mcp-hn"] // 启动命令的参数,这里是 mcp-hn,对应项目入口
    }
  }
}

参数注释:

  • '"mcpServers"': 定义 MCP 服务器配置的顶级键。
  • '"mcp-hn"': 服务器名称 (server name),您在客户端中引用此服务器时使用的名称,可以自定义,但需要与客户端配置保持一致。
  • '"command": "uvx"': 启动命令 (command),指定用于启动 MCP 服务器的可执行文件或命令。这里 'uvx' 通常用于运行 Python 包的可执行入口。 请确保您的环境中 'uvx' 命令可用,或者根据实际情况修改为 'python -m mcp_hn' 或其他合适的命令。
  • '"args": ["mcp-hn"]': 启动参数 (args),传递给启动命令的参数列表。 '["mcp-hn"]' 表示运行 'mcp_hn' 包的入口点,这通常在 'src/mcp_hn/init.py' 中定义。

注意:

  • 确保 'uvx' 或您选择的启动命令在您的系统路径中可用,或者使用绝对路径指定命令位置。
  • 如果您不使用 'uvx',可以尝试使用 'python -m mcp_hn.server' 或 'python src/mcp_hn/server.py' 作为 'command',并相应调整 'args'。
  • 客户端(如 Claude Desktop)会读取此配置文件,并根据配置信息尝试连接到 MCP 服务器。

基本使用方法

配置完成后,在支持 MCP 的 LLM 客户端中,您可以像示例中那样,通过自然语言指令来调用 Hacker News MCP Server 提供的工具。例如:

  • 提问 "Get the top stories of today" (获取今天最热门的新闻) 会触发 'get_stories' 工具,并返回 Hacker News 的热门新闻列表。
  • 提问 "What does hackernews say about careers in AI?" (Hacker News 上关于人工智能职业生涯的讨论是什么?) 会触发 'search_stories' 工具,搜索并返回 Hacker News 上与 "careers in AI" 相关的新闻。
  • 提问 "What has the user 'pg' been up to?" (用户 'pg' 最近在做什么?) 会触发 'get_user_info' 工具,并返回用户 'pg' 的信息和最近的动态。

LLM 客户端会根据您的自然语言指令,智能地选择合适的工具并调用,您无需直接操作服务器,只需像与 LLM 对话一样提出问题即可。服务器会将 Hacker News 的数据以结构化的形式返回给 LLM,从而增强 LLM 的上下文理解和信息处理能力。

信息

分类

网页与API