An open API service indexing awesome lists of open source software.

https://github.com/worryzyy/public-apis-mcp

让AI帮你挑选 Public APIs for free
https://github.com/worryzyy/public-apis-mcp

mcp

Last synced: 3 months ago
JSON representation

让AI帮你挑选 Public APIs for free

Awesome Lists containing this project

README

          

# Public APIs MCP Server

[English](README.md) | 中文

一个基于 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 数据

## 📸 预览展示

![使用示例](https://weilei.site/images/public-apis/2.png)

![使用示例](https://weilei.site/images/public-apis/1.png)

![使用示例](https://weilei.site/images/public-apis/3.png)

## 📦 安装

### 环境要求

- 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`

筛选支持 HTTPS 的 API

**参数:**

- `httpsOnly` (boolean, 可选): 是否只返回支持 HTTPS 的 API,默认 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 数据
- 将数据缓存到本地服务器,提高查询性能
- 支持增量更新和强制全量同步两种模式
- 同步完成后会返回详细的同步状态报告

**参数:**

- `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 进行类型安全开发
- 采用模块化架构设计
- 完善的错误处理机制
- 详细的代码注释和文档

## 🤝 贡献

欢迎提交 Issue 和 Pull 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 可能会发生变化。建议在生产环境使用前仔细测试。