使用说明
📰 MCP新闻服务器
一个干净,最小的MCP包装围绕Hacker News API-旨在展示模块化合同协议(MCP)结构,类型化合同和LLM兼容接口。
🌐 现场演示
🟢 部署地点: https://mcp-news-server.onrender.com
现在试试
🚀 这是什么?
此项目演示如何将现有的RESTneneneba API转换为 符合MCP标准的服务器。它包裹着 黑客新闻API 使用模块化组件:
- 合同 定义为
zod和zod-openapi用于键入和记录输入/输出 - 解析器 用于业务逻辑
- 处理器 用于HTTP路由
- OpenAPI集成 用于LLM函数调用
我使用这个包装的目的是 学习并演示完整的MCP过程,并为 MCP市场 --其中工具和代理可以以编程方式发现和使用它们。
💡 为什么使用MCP而不是原始REST调用?
传统REST API:
- ❌ 没有合同
- ❌ 格式不一致
- ❌ 对LLM不友好
MCP API:
- ✅ 合同驱动(使用Zod)
- ✅ 可组合和自我描述
- ✅ LLM就绪(通过OpenAPI和函数模式)
🔧 技术栈
- Node.js+Express
- TypeScript
- 佐德+
zod-openapi - 阿西奥斯
- 部署在渲染上
📁 项目结构
src/
├── contracts/ # Zod + OpenAPI metadata
├── resolvers/ # Business logic
├── handlers/ # Express routes
├── utils/ # Hacker News client
├── docs/openapi.ts # OpenAPI spec generator (zod-openapi)
├── setup/zod-openapi-init.ts # Shared zod setup with OpenAPI support
└── server.ts # Main entry point
🗂️ 端点
1. GET /api/listTopStories
返回顶级黑客新闻故事ID的列表。
例子:
curl https://mcp-news-server.onrender.com/api/listTopStories
答复:
[38643, 38642, 38641]
2. GET /api/getStory/:id
返回给定故事ID的完整故事数据。
例子:
curl https://mcp-news-server.onrender.com/api/getStory/8863
答复:
{
"id": 8863,
"title": "My YC app: Dropbox - Throw away your USB drive",
"url": "http://www.getdropbox.com/u/2/screencast.html",
"score": 111,
"by": "dhouston",
"time": 1175714200,
"type": "story"
}
🧠 LLM如何使用它
每个MCP端点为:
- 严格打字
- 与Zod绑定的模式
- 通过OpenAPI进行自我记录
这使其非常适合:
- LLM代理(OpenAI,克劳德)
- LangChain工具
- 人工智能试剂流动管道
🤖 函数调用示例(OpenAI/Claude)
{
"name": "getStory",
"description": "Retrieve story details by ID from Hacker News",
"parameters": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The numeric ID of the Hacker News story"
}
},
"required": ["id"]
}
}
➡️ 指向:
GET https://mcp-news-server.onrender.com/api/getStory/:id
📄 OpenAPI架构
curl https://mcp-news-server.onrender.com/openapi.json
此端点可用于:
- Swagger用户界面
- API客户端(邮差、失眠)
- 用于函数发现的LLM框架
🛠️ 本地设置
git clone https://github.com/rajeshdh/mcp-news-server
cd mcp-news-server
npm install
npm run dev
✨ 你可以用它构建什么
- 顶级HN故事的摘要工具
- 获取HN故事并对其进行排名的GPT代理
- 事实核查或新闻验证代理
- 您自己的开放式MCP市场入口!
📜 许可证
麻省理工学院
