UNPKG

@weilei_kyle/public-apis-mcp

Version:
320 lines (205 loc) 8.12 kB
# Public APIs MCP Server 一个基于 Model Context Protocol (MCP) 的公共 API 服务器,提供对 [public-apis](https://github.com/public-apis/public-apis) 数据库的智能访问和管理功能。 ## 🚀 项目简介 Public APIs MCP Server 是一个专业的 MCP 服务器实现,旨在为开发者提供便捷的公共 API 发现、搜索和集成服务。通过标准化的 MCP 协议,您可以轻松地在各种 AI 助手和开发工具中集成丰富的公共 API 资源。 ### 核心特性 - 🔍 **智能搜索**: 支持按分类、关键词、认证方式等多维度搜索 API - 🛡️ **安全筛选**: 提供 HTTPS 支持、CORS 配置等安全性筛选 - 🎯 **智能推荐**: 基于项目需求智能推荐最适合的 API - 💻 **代码生成**: 自动生成多种编程语言的 API 集成代码 - 📊 **统计分析**: 提供详细的 API 数据统计和分析 - 🔄 **实时同步**: 支持从 GitHub 仓库同步最新的 API 数据 ## 📦 安装 ### 环境要求 - Node.js >= 18.0.0 - npm >= 8.0.0 ### 快速安装 ```bash # 克隆项目 git clone https://github.com/worryzyy/public-apis-mcp.git cd public-apis-mcp # 安装依赖 npm install # 构建项目 npm run build # 启动服务器 npm start ``` ### 开发模式 ```bash # 开发模式启动(支持热重载) npm run dev ``` ## 🛠️ 使用方法 ### 基本配置 服务器启动后,会通过标准输入/输出与 MCP 客户端进行通信。您可以在支持 MCP 协议的 AI 助手或开发工具中配置此服务器。 ### MCP 客户端配置示例 ```json { "mcpServers": { "public-apis-mcp": { "command": "node", "args": ["path/to/public-apis-mcp/dist/index.js"] } } } ``` 或者 ```json { "mcpServers": { "public-apis-mcp": { "command": "npx", "args": ["-y", "@weilei_kyle/public-apis-mcp"] } } } ``` ## 🔧 可用工具 ### API 搜索和发现 #### `search_apis_by_category` 根据分类搜索 API **参数:** - `category` (string, 必需): API 分类名称 - `limit` (number, 可选): 返回结果数量限制,默认 10 **示例:** ```javascript { "category": "Weather", "limit": 5 } ``` #### `search_apis_by_keyword` 通过关键词搜索 API **参数:** - `keyword` (string, 必需): 搜索关键词 - `limit` (number, 可选): 返回结果数量限制,默认 10 #### `filter_apis_by_auth` 根据认证要求筛选 API **参数:** - `authType` (string, 必需): 认证类型 (`No`, `apiKey`, `OAuth`, `X-Mashape-Key`, `User-Agent`) - `limit` (number, 可选): 返回结果数量限制,默认 10 #### `filter_apis_by_https` 筛选支持 HTTPSAPI **参数:** - `httpsOnly` (boolean, 可选): 是否只返回支持 HTTPSAPI,默认 true - `limit` (number, 可选): 返回结果数量限制,默认 10 #### `filter_apis_by_cors` 筛选支持跨域访问的 API **参数:** - `corsSupport` (string, 必需): CORS 支持状态 (`yes`, `no`, `unknown`) - `limit` (number, 可选): 返回结果数量限制,默认 10 ### API 详情和统计 #### `get_api_details` 获取特定 API 的详细信息 **参数:** - `apiName` (string, 必需): API 名称 #### `get_category_list` 获取所有可用的 API 分类列表 #### `get_random_api` 随机推荐一个 API **参数:** - `category` (string, 可选): 限制在特定分类内随机选择 #### `get_api_statistics` 获取 API 数量统计信息 #### `analyze_auth_requirements` 分析不同认证方式的 API 分布 ### 智能推荐 #### `recommend_apis_for_project` 根据项目需求推荐合适的 API **参数:** - `projectType` (string, 必需): 项目类型描述 - `requirements` (array, 可选): 项目需求列表 - `limit` (number, 可选): 推荐 API 数量限制,默认 5 #### `find_alternative_apis` 寻找替代 API 选项 **参数:** - `functionality` (string, 必需): 所需功能描述 - `limit` (number, 可选): 返回结果数量限制,默认 5 ### 代码生成 #### `generate_api_integration_code` 为选定的 API 生成集成代码示例 **参数:** - `apiName` (string, 必需): API 名称 - `language` (string, 可选): 编程语言 (`javascript`, `python`, `curl`),默认 javascript ### 数据管理 #### `sync_repository_data`GitHub 仓库同步最新的 API 列表 > **重要说明**: 此接口目前采用手动同步机制,将 [public-apis](https://github.com/public-apis/public-apis) 仓库的最新数据同步到本地服务器。这种设计确保了数据的稳定性和访问速度,避免了频繁请求 GitHub API 可能导致的限流问题。 **工作原理:** - 手动触发从 GitHub 仓库拉取最新的 API 数据 - 将数据缓存到本地服务器,提高查询性能 - 支持增量更新和强制全量同步两种模式 - 同步完成后会返回详细的同步状态报告 **参数:** - `force` (boolean, 可选): 是否强制重新同步,默认 false - `false`: 仅在数据过期时进行增量同步 - `true`: 强制进行全量数据同步,忽略本地缓存 **使用建议:** - 建议在首次使用前执行一次强制同步 (`force: true`) - 日常使用中可定期执行增量同步以获取最新数据 - 如发现数据异常,可使用强制同步重置本地缓存 #### `check_new_apis` 检查最近添加的新 API **参数:** - `days` (number, 可选): 检查最近几天的新增 API,默认 7## 📁 项目结构 ``` public-apis-mcp/ ├── src/ │ ├── index.ts # 主入口文件 │ ├── server/ │ │ └── server.ts # MCP服务器实现 │ ├── services/ │ │ ├── api-service.ts # API数据管理服务 │ │ ├── search-service.ts # 搜索功能服务 │ │ ├── tool-service.ts # 工具调用处理服务 │ │ ├── code-generation-service.ts # 代码生成服务 │ │ ├── recommendation-service.ts # 推荐算法服务 │ │ └── formatter-service.ts # 数据格式化服务 │ └── types/ │ └── api.ts # TypeScript类型定义 ├── dist/ # 编译输出目录 ├── package.json # 项目配置 ├── tsconfig.json # TypeScript配置 └── README.md # 项目文档 ``` ## 🔧 开发 ### 技术栈 - **TypeScript**: 类型安全的 JavaScript 超集 - **Node.js**: JavaScript 运行时环境 - **MCP SDK**: Model Context Protocol 软件开发工具包 - **Axios**: HTTP 客户端库 - **Zod**: TypeScript 优先的模式验证库 ### 构建和测试 ```bash # 编译TypeScript npm run build # 运行测试 npm test # 开发模式(热重载) npm run dev ``` ### 代码规范 项目遵循以下开发规范: - 使用 TypeScript 进行类型安全开发 - 采用模块化架构设计 - 完善的错误处理机制 - 详细的代码注释和文档 ## 🤝 贡献 欢迎提交 IssuePull Request 来改进这个项目! ### 贡献流程 1. Fork 本仓库 2. 创建您的特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交您的更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开一个 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 🙏 致谢 - [public-apis](https://github.com/public-apis/public-apis) - 提供丰富的公共 API 数据源 ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 提交 [GitHub Issue](https://github.com/worryzyy/public-apis-mcp/issues) --- **注意**: 本项目仍在积极开发中,API 可能会发生变化。建议在生产环境使用前仔细测试。