Token导航 LogoToken导航TokenDH.com
The News API MCP Server logo
浏览器工具stdio官方级别未说明来源级核验

The News API MCP Server

MCP Server

jest

一个模块化、可扩展的新闻聚合后端服务,提供统一接口访问TheNewsAPI,支持高级过滤功能,专为AI代理消费设计。

工具数

0

提示词数

0

GitHub Stars

4

资源数

0
后端开发结构化数据HTML新闻聚合

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Malachi-devel

提供方

Malachi-devel

最后核验

2026/5/17 20:20

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx jest path/to/test.ts

详细介绍

新闻聚合器API(MCP服务器)

使用MCP服务器约定和TypeScript构建的模块化、可扩展的新闻聚合后端。此API为TheNewsAPI提供了一个统一的接口,用于检索具有高级过滤功能的当前和历史新闻文章。此API专为人工智能代理消费而设计,优先考虑结构化数据和一致的模式。

特性

  • 统一API:访问新闻数据的一致界面
  • TypeScript:完全打字,开发可靠
  • MCP架构:可扩展的模块化设计,关注点分离
  • 多个端点:访问各种类型的新闻内容
  • 环境变量:安全配置管理
  • 错误处理:具有适当状态代码的一致错误格式
  • 过滤:支持各种过滤参数
  • 缓存:具有管理端点的智能缓存系统
  • 交互式文档:基于Swagger的API文档
  • AI友好响应:针对机器消耗优化的结构化数据

端点

新闻终点

端点描述示例
/api/news/top获取头条新闻/api/news/top?categories=business
/api/news/all通过高级搜索获取所有新闻/api/news/all?search=technology
/api/news/similar/:uuid获取与特定文章相似的文章/api/news/similar/cc11e3ab-ced0-4a42-9146-e426505e2e67
/api/news/uuid/:uuid通过UUID获取特定文章/api/news/uuid/cc11e3ab-ced0-4a42-9146-e426505e2e67
/api/news/sources获取可用的新闻来源/api/news/sources?language=en

缓存管理端点

端点描述示例
/api/cache/stats获取缓存统计信息/api/cache/stats
/api/cache/clear清除所有缓存DELETE /api/cache/clear
/api/cache/clear/:type按类型清除缓存DELETE /api/cache/clear/top

公用设施端点

端点描述
/health健康检查端点
/docs交互式API文档
/docs.jsonOpenAPI规范
/examples使用示例

测试

该项目实施了一项全面的测试策略,包括多层测试,以确保可靠性和正确性。

测试类型

  1. 单元测试

- 单个组件的隔离测试 - 模拟依赖关系,实现真正的单元隔离 - 专注于业务逻辑验证

  1. 控制器测试

- 使用模拟服务验证控制器行为 - 测试正确的请求处理和响应格式 - 确认错误处理模式一致

  1. 集成测试

- 测试完整的请求响应周期 - 使用超级测试验证API端点 - 模仿外部API对可靠性的要求

测试最佳实践

本项目遵循以下测试最佳实践:

  • 隔离 -测试不依赖于彼此或外部服务
  • 可重复的 -测试在任何环境下都会产生相同的结果
  • 快速 -模拟外部依赖关系可以提高测试效率
  • 全面的 -核心功能具有高测试覆盖率
  • 可维护性 -测试遵循一致的模式和结构

运行测试

# Run all tests
npm test

# Run tests with coverage
npm run test:coverage

# Run a specific test file
npx jest path/to/test.ts

安装

# Clone the repository
git clone 

# Install dependencies
npm install

# Set up environment variables
cp .env.example .env
# Edit .env file with your own API key and database URL

# Generate Prisma client
npx prisma generate

# Build the project
npm run build

# Start the server
npm start

配置

创建一个 .env 包含以下变量的文件:

# News Aggregator API Environment Variables

# API Configuration
NEWS_API_TOKEN=your_api_token_here

# Server Configuration
PORT=3000
NODE_ENV=development

# Database Configuration
DATABASE_URL="file:./dev.db"

数据库配置

默认情况下,该应用程序使用Prisma ORM和SQLite。这 DATABASE_URL 环境变量应该指向您的数据库文件。对于生产环境,您可以将其配置为使用PostgreSQL或MySQL。

发展

# Run in development mode with hot reload
npm run dev

# Run linting
npm run lint

# Run tests
npm test

测试基础设施

该项目包括一个使用Jest和Supertest构建的综合测试套件,涵盖API端点、数据库集成和服务器连接检查。

运行测试

# Run all tests
npm test

# Run only API endpoint tests
npm run test:api

# Run only database integration tests
npm run test:db

# Run tests with coverage report
npm run test:coverage

# Run tests in watch mode (for development)
npm run test:watch

# Check server connectivity
npm run check-server

测试结构

  • API端点测试:位于 src/__tests__/api/,这些测试验证所有API端点是否返回预期响应、正确处理错误并应用适当的筛选。
  • 数据库集成测试:位于 src/__tests__/database.test.ts,这些测试验证数据库连接、查询执行和事务支持。
  • 服务器连接脚本:位于 scripts/check-server.ts,此脚本测试与正在运行的服务器实例的连接,验证关键端点是否正常运行。

测试环境

测试使用由设置指定的单独环境配置 NODE_ENV=test这确保了测试不会干扰开发或生产环境。设置包括:

  • 自动建立和断开数据库连接
  • 在测试之间清除缓存以确保隔离
  • 服务器启动和关闭以进行端点测试

未来增强功能待办事项列表

优先事项1:基础改进

  • \[x\] 缓存系统

- 实现内存缓存 - 缓存经常访问的数据,如头条新闻和来源 - 添加缓存失效策略 - 为不同的内容类型配置TTL(生存时间) - 添加缓存管理端点

  • \[x\] 数据持久层

- 添加数据库集成(SQLite与Prisma) - 创建用于存储增强文章元数据的架构 - 实现数据访问的存储库模式 - 为架构更改添加迁移系统

  • \[x\] API文档

- 生成OpenAPI/Swagger规范 - 添加交互式API文档 - 为每个端点创建使用示例

API文档

API现在包括使用OpenAPI/Swagger的全面文档:

  • 交互式API文档:可在 /docs 服务器运行时
  • OpenAPI规范:JSON格式可在 /docs.json
  • 使用示例:可在 /examples 包含多种语言的代码示例

如何访问文档

  1. 使用启动服务器 npm run devnpm start
  2. 打开浏览器 http://localhost:3000/docs 用于交互式Swagger UI
  3. 浏览可用端点、请求参数和响应格式
  4. 参考实施示例 http://localhost:3000/examples

API文档功能

  • 完整的端点描述,包括参数和响应类型
  • 直接测试端点的交互式“试用”功能
  • 请求/响应模式定义
  • API消费的代码片段
  • 与MCP服务器架构集成的示例

优先级2:安全与性能

  • \[ \] 身份验证和用户管理

- 实现基于JWT的身份验证 - 创建用户注册和登录端点 - 添加基于角色的访问控制 - 实施安全密码处理

  • \[ \] 速率限制

- 添加请求限制中间件 - 实施分层访问级别 - 制定公平使用政策 - 在响应中添加速率限制标头

  • \[ \] 监控和分析

- 设置请求日志记录和监控 - 添加性能指标集合 - 创建使用情况仪表板 - 实施错误跟踪和警报

优先级3:增强功能

  • \[ \] 内容处理

- 添加文本摘要功能 - 实现实体提取 - 添加情绪分析 - 创建源类别之外的主题分类 - 实现重复检测和分组

  • \[ \] 个性化

- 添加用户偏好跟踪 - 基于阅读历史创建个性化端点 - 实现主题跟踪功能 - 添加推荐引擎

  • \[ \] Webhooks和实时更新

- 实施 webhook 注册 - 创建基于事件的通知系统 - 添加SSE(服务器发送事件)以进行实时更新 - 实现主题订阅功能

贡献

欢迎对新闻聚合器API项目做出贡献!该项目旨在为那些对MCP服务器架构感兴趣的人提供一个友好、记录良好的代码库,特别是考虑到人工智能的消费。

如何做出贡献

  1. 分叉存储库
  2. 创建新功能分支(git checkout -b feature/amazing-feature)
  3. 进行更改
  4. 运行测试以确保一切正常(npm test)
  5. 提交您的更改(git commit -m 'Add some amazing feature')
  6. 推到分支(git push origin feature/amazing-feature)
  7. 打开拉取请求

代码的风格

请遵循项目中现有的代码样式和模式。此项目使用ESLint进行代码质量和格式设置。

安全考虑

在捐款时,请确保:

  • 没有API密钥或证书是硬编码的
  • 环境变量用于配置
  • 未记录敏感数据
  • 输入验证已正确实施

测试

所有新功能都应包括适当的测试。请遵循项目中现有的测试模式。

  • \[ \] 搜索历史记录和书签

- 添加已保存的搜索功能 - 实现文章书签 - 创建阅读历史跟踪 - 添加用户收藏功能

贡献

  1. 分叉存储库
  2. 创建特征分支: git checkout -b feature/my-new-feature
  3. 提交您的更改: git commit -am 'Add some feature'
  4. 推到分支: git push origin feature/my-new-feature
  5. 提交拉取请求

许可证

国际协调委员会

目录标签

目录标签

后端开发结构化数据HTML新闻聚合本地部署API服务AI消费

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

jest

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP