使用说明
HackerNews MCP 服务器
一个模型上下文协议(MCP)服务器,通过HN Algolia API提供对Hacker News内容的程序化访问。该服务器使像Claude这样的AI助手能够实时搜索故事、检索评论、访问用户资料,并浏览HN首页。
特点/特性
- ✅ 9 MCP 工具 为了全面访问HN(这里HN可能代表某个特定的网络资源、系统或平台,具体含义需根据上下文确定)
- 🔍(放大镜图标,通常表示搜索或查看细节) 搜索按相关性或日期排序的故事,带过滤功能的评论
- 📰(新闻纸/报纸的简写或象征) 浏览首页,最新故事,Ask HN(向HN提问),Show HN(展示HN)帖子
- 👤 人(表示一个人的符号) 详情检索包含嵌套评论和用户资料的特定故事
- ⚡(闪电符号,常用于表示速度、活力或电) 速率限制尊重HN API限制(每小时10,000次请求)
- 🛡️ 翻译成中文是:盾牌 类型安全完整的TypeScript,启用严格模式
- 📊 表格/数据图表 可观察的带有关联ID的结构化JSON日志记录
- 🧪 表示“实验瓶”或“化学实验”的符号。 经过测试单元测试、集成测试和合同测试(或契约测试)
安装
NPM(发布时)
npm install -g hn-mcp-server
来自来源
git clone https://github.com/YOUR_USERNAME/hn-mcp-server.git
cd hn-mcp-server
npm install
npm run build
npm link
快速入门(VS Code)
最快上手的方法是使用VS Code和GitHub Copilot:
-
克隆并构建:
git clone <your-repo-url> cd hn-mcp-server npm install npm run build -
在 VS Code 中打开:
code . -
重新加载 VS Code (Ctrl+Shift+P → “开发者: 重新加载窗口”)
-
遵循完整的设置检查清单: 文件路径:docs/VSCODE_CHECKLIST.md(中文可表述为:文档/VS代码检查清单.md 或 目录/VS代码核对表.md,具体根据上下文调整)
-
打开Copilot聊天界面 并尝试:
@workspace What MCP tools are available?或者
Show me the top stories from Hacker News
📖 分步设置指南: docs/VSCODE_CHECKLIST.md 翻译为中文是:docs/VSCODE检查清单.md
📖 要查看详细的VS Code设置说明,请参阅 docs/VSCODE_SETUP.md(文件名翻译可保持原样,或根据上下文意译为“文档/VS代码设置指南.md”)
⚠️ 工具未显示? 见 docs/TROUBLESHOOTING_VSCODE.md 翻译为中文是:docs/VSCode故障排除指南.md
💡 小贴士在VS Code中,MCP(Microchip C/C++编译器插件)支持是实验性的。为了获得最佳体验,请使用 Claude Desktop(可译为“Claude桌面版”或根据具体语境简化为“Claude桌面”) (见下文配置)。
配置
配备GitHub Copilot的VS Code
使用这台服务器最简单的方法是直接在VS Code中配合GitHub Copilot使用:
-
构建服务器:
npm run build -
配置已设置完毕 在
.vscode/mcp.json:{ "hackernews": { "command": "node", "args": ["${workspaceFolder}/dist/index.js"], "env": { "DEBUG": "0" } } } -
重新加载 VS Code 或者重新启动 Copilot 扩展
-
测试一下 通过询问Copilot:
- “给我展示Hacker News上的热门故事”
- “在HN上搜索关于AI的故事”
- “获取用户‘pg’的个人资料”
Claude Desktop(可译为“Claude桌面版”)
添加到您的Claude桌面配置中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/claude/claude_desktop_config.json
{
"mcpServers": {
"hackernews": {
"command": "hn-mcp-server"
}
}
}
或者如果从源代码安装:
{
"mcpServers": {
"hackernews": {
"command": "node",
"args": ["/path/to/hn-mcp-server/dist/index.js"]
}
}
}
重启 Claude 桌面应用以激活服务器。
可用工具
1. search_stories
通过高级筛选功能,按相关性搜索HN故事。
{
query: "artificial intelligence", // Search term
tags: "story,front_page", // Filter by tags
numericFilters: "points>=100", // Minimum points
page: 0, // Pagination
hitsPerPage: 20 // Results per page
}
2. search_by_date
按日期排序搜索故事/评论(最新在前)。
{
query: "TypeScript",
tags: "story",
numericFilters: "created_at_i>1640000000", // Unix timestamp
page: 0,
hitsPerPage: 20
}
3. search_comments
搜索评论,并可选择按故事/作者进行筛选。
{
query: "React hooks",
tags: "author_pg", // Filter by author
sortByDate: false, // Sort by relevance
page: 0,
hitsPerPage: 20
}
4. get_front_page
获取当前HN首页的新闻故事。
{
page: 0,
hitsPerPage: 30
}
5. get_latest_stories
获取最近提交的故事。
{
page: 0,
hitsPerPage: 20
}
6. get_ask_hn
检索Ask HN帖子(社区问题)。
{
page: 0,
hitsPerPage: 20
}
7. get_show_hn
检索Show HN帖子(项目展示)。
{
page: 0,
hitsPerPage: 20
}
8. get_story
通过ID获取特定故事,并包含完整的嵌套评论树。
{
id: 8863 // Famous "How to Start a Startup" post
}
9. get_user
通过用户名检索用户资料。
{
username: "pg" // Paul Graham
}
在Claude中的示例用法
搜索人工智能相关故事:
Show me the top stories about AI from Hacker News
登上头条新闻:
What's currently on the Hacker News front page?
查找用户信息:
Tell me about the HN user 'pg'
高级搜索:
Find recent stories about TypeScript with at least 50 points
发展
先决条件
- Node.js 20 LTS 或更高版本
- npm 或 yarn
设置
git clone https://github.com/YOUR_USERNAME/hn-mcp-server.git
cd hn-mcp-server
npm install
命令
npm run build # Compile TypeScript
npm run dev # Watch mode
npm test # Run all tests
npm run test:watch # Test watch mode
npm run lint # Lint code
npm run format # Format code
npm run check # Lint + type check
npm run ci # Full CI workflow
项目结构
src/
├── index.ts # Main entry point
├── server.ts # MCP server initialization
├── tools/ # MCP tool implementations (one per file)
│ ├── search-stories.ts
│ ├── get-story.ts
│ └── ...
├── lib/ # Shared utilities
│ ├── hn-client.ts # HN API client
│ ├── rate-limiter.ts
│ ├── logger.ts
│ ├── errors.ts
│ └── validators.ts
└── types/ # TypeScript type definitions
├── hn-api.ts
└── mcp.ts
速率限制
HN Algolia API 有一个限制为 每小时10,000个请求 按IP地址划分。此服务器:
- 自动追踪请求次数
- 在90%(9,000个请求)时发出警告
- 在95%(9,500个请求)时抛出错误
- 每小时重置计数器
记录日志
使用关联ID的结构化JSON日志记录:
# Enable debug logging
DEBUG=1 hn-mcp-server
# View logs in Claude Desktop
# macOS: ~/Library/Logs/Claude/mcp*.log
# Windows: %APPDATA%\Claude\logs\mcp*.log
# Linux: ~/.config/claude/logs/mcp*.log
错误处理
所有错误均返回格式为MCP的响应,其中包含:
- 清晰的错误信息
- 错误代码(RATE_LIMIT_EXCEEDED,ITEM_NOT_FOUND 等)
- 调试上下文
- 建议用户采取的操作
贡献
- 为仓库创建分支(或:克隆仓库)
- 创建一个特性分支(
git checkout -b feature/amazing-feature) - 根据宪法原则进行修改
- 运行质量门(
npm run ci) - 提交(
git commit -m 'Add amazing feature') - 推动(
git push origin feature/amazing-feature) - 提交一个拉取请求
许可证
MIT 许可证 - 详见 许可证 文件中有详细信息。
链接
支持
- 问题: GitHub Issues(GitHub问题)
- 讨论: GitHub 讨论区
遵循MCP最佳实践和章程原则,用心打造
