新闻API服务

一个围绕Hacker News API构建的MCP兼容服务器,用于展示模块化合约协议(MCP)结构、类型化合约和LLM兼容接口。

  • by rajeshdh
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 rajeshdh/mcp-news-server

使用说明

📰 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市场入口!

📜 许可证

麻省理工学院