内容
# mcp-context-wporg
MCP 上下文服务器,为 WordPress.org 提供服务 — 通过 load-provider / execute-tool 元工具模式为 AI 代理提供对 WordPress.org 项目数据的访问。
设计用于与任何 MCP 客户端一起使用。
## 提供者
| 提供者 | 数据源 | 状态 |
| ---------- | --------------------------------------------------------------------- | ------------------------------------------------ |
| **make** | Make WordPress 博客(核心、元数据、设计等) | 工作中 |
| **github** | WordPress + wp-cli GitHub 组织(每个仓库,可通过搜索 API 查询) | 工作中 |
| **trac** | WordPress.org Trac 实例:核心、bbPress、BuddyPress | 需要 WordPress.org 认证以防止类似机器人的流量 |
## 用法
### 与 MCP 客户端一起使用
配置您的 MCP 客户端以启动内置服务器:
```json
{
"command": "node",
"args": ["/path/to/mcp-context-wporg/dist/index.js"]
}
```
### 与 Claude Code 一起使用
```json
{
"mcpServers": {
"wporg": {
"command": "node",
"args": ["/path/to/mcp-context-wporg/dist/index.js"]
}
}
}
```
### 直接执行
```bash
node dist/index.js
```
## 工具
两个遵循 load-provider / execute-tool 模式的元工具:
- **`wporg-load-provider`** — 加载提供者并返回其可用的工具
- **`wporg-execute-tool`** — 在加载的提供者中执行工具
### Make 提供者工具
- `search-posts` — 在 Make WordPress 博客中搜索
- `get-post` — 获取特定博客帖子
- `get-timeline` — 获取博客的最新帖子
- `list-blogs` — 列出所有 Make 博客(用于发现)
### GitHub 提供者工具
涵盖 `WordPress` 和 `wp-cli` GitHub 组织。默认情况下,每个工具都会查询两个组织的所有仓库;当您想要聚焦查看时,可以使用 `org` 或 `repo` 参数进行缩小。
- `search-issues` — 在涵盖的组织中搜索问题/拉取请求(默认为所有)。支持 `org`(`WordPress` 或 `wp-cli`)和 `repo`(例如 `WordPress/gutenberg`,`wp-cli/wp-cli`)。
- `get-issue` — 获取涵盖的组织中任何仓库的问题/拉取请求详情。
- `get-timeline` — 在单个搜索 API 调用中获取涵盖的组织中的最新活动(跳过每个仓库的循环)。
- `list-repos` — 列出涵盖的组织中的活跃仓库(实时来自 `/orgs/{org}/repos`,缓存 1 小时)。默认情况下排除已归档的仓库。
> **提示:** 设置 `GITHUB_TOKEN` 以将未经身份验证的核心 API 限制 60 次/小时提高到 5000 次/小时。搜索 API 有其自己的 30 次/分钟身份验证限制,四个工具共享。
### Trac 提供者工具
Trac 可能对未经身份验证的类似机器人的流量返回 `403`。在持久使用 Trac 提供者时,请设置 `WPORG_TRAC_COOKIE`;建议使用专用的 WordPress.org 用户或服务帐户,而不是个人浏览器会话。
Trac 工具默认为核心 Trac。传递 `trac` 或 `trac_instance` 作为 `core`、`bbpress` 或 `buddypress` 以查询另一个 Trac 实例。
- `search-tickets` — 搜索 Trac 工单
- `get-ticket` — 工单详情 + 评论
- `get-timeline` — 最近的开发活动
- `list-components` — Trac 组件(用于发现)
## 环境变量
| 变量 | 描述 |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `GITHUB_TOKEN` | GitHub 个人访问令牌(可选 — 增加 GitHub 提供者的速率限制) |
| `WPORG_TRAC_COOKIE` | WordPress.org 身份验证 cookie 头值,用于 Trac 请求(可选,需要阻止 Trac) |
| `WPORG_TRAC_USER_AGENT` | 自定义 Trac 请求用户代理(可选,默认为 `mcp-context-wporg`) |
| `WPORG_TRAC_HEADERS_B64_JSON` | Base64 编码的 JSON 对象,包含额外的浏览器兼容 Trac 头部。`Cookie`、`User-Agent`、`Host`、`Authorization` 和 `Content-Length` 在此处被忽略,应使用专用身份验证字段支持。 |
## 开发
```bash
npm install
npm run dev # 使用 tsx 运行
npm run build # 使用 tsup 构建
npm run check # TypeScript 类型检查
```
## 许可证
GPL v2 或更高版本