使用说明
Netlify的黑客新闻MCP服务器
这是一个模型上下文协议(MCP)服务器,与官方的Hacker News API集成,旨在部署到Netlify。MCP服务器公开了工具和资源,使AI助手能够通过模型上下文协议访问黑客新闻内容并与之交互。
该项目还包括一个FastAPI客户端,该客户端提供了一个用于与MCP服务器交互的REST API,使其易于测试并与其他应用程序集成。
特性
MCP服务器
- 与Hacker News API集成的无服务器MCP服务器实现
- 部署在Netlify上
- 包括获取热门、新、最佳、询问HN、展示HN和工作故事的工具
- 提供获取特定帖子、评论和用户信息的工具
- 包括有关使用Hacker News API的文档资源
MCP客户端
- 用于与MCP服务器交互的FastAPI REST API
- 交互式API文档(Swagger UI)
- 易于测试和集成
- 用于自动测试的Python脚本
入门指南
地方发展
- 克隆此存储库
- 安装依赖项:
npm install - 启动开发服务器:
npm run dev
MCP服务器将在本地可用http://localhost:8888/mcp
测试您的MCP服务器
您可以使用MCP检查器或直接使用curl命令测试MCP服务器。
使用MCP检查器
当开发服务器运行时,您可以使用MCP检查器测试您的MCP服务器:
npx @modelcontextprotocol/inspector npx mcp-remote@next http://localhost:8888/mcp
部署后,您可以测试部署的版本:
npx @modelcontextprotocol/inspector npx mcp-remote@next https://your-site-name.netlify.app/mcp
然后打开http://localhost:6274/在浏览器中与MCP检查器进行交互。
使用curl
您还可以使用curl命令直接测试MCP服务器:
-
初始化MCP服务器:
curl -X POST http://localhost:8888/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"mcp/init","params":{},"id":"1"}' -
列出可用工具:
curl -X POST http://localhost:8888/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"mcp/listTools","params":{},"id":"2"}' -
调用工具获取顶级黑客新闻:
curl -X POST http://localhost:8888/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"mcp/callTool","params":{"name":"hn-get-top-stories","args":{"limit":5}},"id":"3"}'调用工具获取特定的黑客新闻:
curl -X POST http://localhost:8888/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"mcp/callTool","params":{"name":"hn-get-item","args":{"id":8863}},"id":"3"}' -
列出可用资源:
curl -X POST http://localhost:8888/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"mcp/listResources","params":{},"id":"4"}' -
阅读有关黑客新闻API的资源:
curl -X POST http://localhost:8888/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"mcp/readResource","params":{"uri":"docs://hacker-news-api-overview"},"id":"5"}'
部署
部署到Netlify
- 将此存储库推送到GitHub
- 将您的存储库连接到Netlify
- 配置生成设置:
- 构建命令:留空(不需要构建)
- 发布目录:
public
部署后,您的MCP服务器将在 https://your-site-name.netlify.app/mcp
与Claude Desktop一起使用
要将此Hacker News MCP服务器与Claude Desktop一起使用:
- 转到克劳德桌面设置
- 启用MCP服务器配置
- 编辑配置文件:
{ "mcpServers": { "hacker-news": { "command": "npx", "args": [ "mcp-remote@next", "https://your-site-name.netlify.app/mcp" ] } } } - 重新启动克劳德桌面
配置后,您可以要求Claude与Hacker News内容进行交互,例如:
- “现在给我看看黑客新闻的前5个故事”
- “给我具体黑客新闻帖子的详细信息”
- “搜索Ask HN关于编程的帖子”
- “查找有关特定Hacker News用户的信息”
使用MCP客户端
MCP客户端提供REST API接口,用于与MCP服务器交互。它是用FastAPI构建的,并提供了一个干净、现代的API和自动文档。
启动客户端
cd mcp-client
pip install -r requirements.txt
uvicorn main:app --reload
这将在以下位置启动FastAPI服务器http://localhost:8001.您可以访问API文档:http://localhost:8001/docs.
管理MCP服务器和FastAPI客户端
该模板包括几个用于管理MCP服务器和FastAPI客户端的脚本:
cd mcp-client
./start.sh # Start both services in the background
./stop.sh # Stop both services gracefully
./check_status.sh # Check if services are running and view logs
./test_client.py # Test the FastAPI client endpoints
这些脚本确保进程即使在您关闭终端后也能在后台运行,正确管理日志文件,并提供清晰的状态信息。
测试客户端
您可以使用提供的测试脚本测试客户端:
cd mcp-client
./test_client.py
这将针对API端点运行一系列测试并显示结果。
API终点
GET /server-获取服务器信息GET /tools-列出可用工具POST /tools/call-调用工具GET /resources-列出可用资源POST /resources/read-阅读资源
有关更多详细信息,请参阅 MCP客户端自述文件.
黑客新闻API工具
此MCP服务器提供以下工具,用于与Hacker News API进行交互:
-
hn-get-top-stories:从Hacker News获取当前头条新闻- 参数:
limit(可选,要返回的故事数,默认值:10,最大值:500)
- 参数:
-
hn-get-new-stories:从Hacker News获取最新消息- 参数:
limit(可选,要返回的故事数,默认值:10,最大值:500)
- 参数:
-
hn-get-best-stories:从黑客新闻中获取最佳故事- 参数:
limit(可选,要返回的故事数,默认值:10,最大值:500)
- 参数:
-
hn-get-ask-stories:Fetches向Hacker News询问HN的故事- 参数:
limit(可选,要返回的故事数,默认值:10,最大值:200)
- 参数:
-
hn-get-show-stories:Fetches展示黑客新闻中的HN故事- 参数:
limit(可选,要返回的故事数,默认值:10,最大值:200)
- 参数:
-
hn-get-job-stories:从Hacker News获取工作故事- 参数:
limit(可选,要返回的故事数,默认值:10,最大值:200)
- 参数:
-
hn-get-item:按ID从黑客新闻中获取特定项目(故事、评论、工作、投票等)- 参数:
id(必填,要提取的物品的ID)
- 参数:
-
hn-get-user:按用户名从Hacker News获取特定用户的信息- 参数:
id(必填,要获取的用户的用户名)
- 参数:
文献资源
MCP服务器提供以下文档资源:
docs://hacker-news-api-overview:Hacker News API概述和此MCP服务器中可用的工具docs://hacker-news-item-types:关于Hacker News API中不同类型的项目及其属性的信息docs://hacker-news-usage-examples:如何使用Hacker News MCP工具的示例请求和响应
延伸
扩展MCP服务器
您可以通过向添加更多工具和资源来扩展此MCP服务器 getServer 功能在 netlify/functions/mcp-server.js.按照现有示例并参考 模型上下文协议文档 了解更多信息。
扩展MCP客户端
要向MCP客户端添加新端点,请编辑 main.py 文件在 mcp-client 目录。客户端使用FastAPI构建,这使得添加新路由和功能变得容易。