内容
# Ekyte MCP 服务器适用于 Codex
Ekyte MCP(模型上下文协议)服务器,用于连接 Codex 和 Ekyte,操作任务、项目、阶段、用户、工作区和工具的时间记录。
描述建议在 GitHub 上:
```text
Ekyte 的 Codex MCP 服务器:创建和更新任务/项目,列出工作区/用户/阶段,并通过 Ekyte 内部 API 管理时间记录。
```
## 资源
- 21 个 MCP 工具:11 个读取工具和 10 个写入工具。
- 通过 `stdio` 进行本地传输,以便在 Codex CLI 中直接使用。
- 通过 `/mcp` 中的 HTTP 进行远程传输,以便使用 Docker 部署。
- 在 `/health` 中进行 HTTP 健康检查。
- 在 `codex/skills/ekyte` 中包含 Codex 技能。
- 在 `PRD-INSTALAcão-MCP-EKYTE-CODEX.md` 中引导安装的 PRD。
## 要求
- 在 Ekyte 上具有访问 `https://app.ekyte.com` 的有效帐户。
- `EKYTE_BEARER_TOKEN`:从 `Authorization` 头复制的 JWT Bearer。
- `EKYTE_COMPANY_ID`:公司在路径 `/api/companies/XXXX/...` 中的数字 ID。
- 安装了 Codex CLI 以注册 MCP 服务器。
- 用于本地安装的 Node.js 18 或更高版本。
- 用于远程安装的 Docker,HTTPS 域和具有可用端口 3000 的主机。
## 快速安装
克隆仓库:
```bash
git clone https://github.com/matheusbernardopro-source/ekyte_mcp_server.git
cd ekyte_mcp_server
```
安装依赖项并生成构建:
```bash
npm install
npm run build
```
从示例创建 `.env`:
```bash
cp .env.example .env
```
填写必填变量:
```env
EKYTE_BEARER_TOKEN=您的jwt
EKYTE_COMPANY_ID=1234
TRANSPORT=stdio
PORT=3000
```
## Codex 安装指南
推荐的路径是请求 Codex 执行 PRD:
```text
执行此安装 PRD:@PRD-INSTALAcão-MCP-EKYTE-CODEX.md
```
PRD 涵盖本地安装、远程安装、MCP 注册和技能复制。
### 全局本地注册
```bash
codex mcp add ekyte --env EKYTE_BEARER_TOKEN=您的JWT --env EKYTE_COMPANY_ID=您的公司ID --env TRANSPORT=stdio -- node /绝对路径/ekyte_mcp_server/dist/index.js
```
### 远程全局注册
```bash
codex mcp add ekyte --url https://您的服务器.com/mcp
```
### 按项目注册
创建或更新 `./.codex/config.toml`:
```toml
[mcp_servers.ekyte]
command = "node"
args = ["/绝对路径/ekyte_mcp_server/dist/index.js"]
[mcp_servers.ekyte.env]
EKYTE_BEARER_TOKEN = "您的JWT"
EKYTE_COMPANY_ID = "您的公司ID"
TRANSPORT = "stdio"
```
对于远程服务器:
```toml
[mcp_servers.ekyte]
url = "https://您的服务器.com/mcp"
```
验证:
```bash
codex mcp list
codex mcp get ekyte
```
## Codex 技能
该技能教导 Codex 使用安全的流程操作 MCP:列出 ID、在创建之前、确认敏感操作,并使用正确的数据、时间和 UUID 格式。
文件:
- `codex/skills/ekyte/SKILL.md`
- `codex/skills/ekyte/reference.md`
在 Windows 上全局安装:
```powershell
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.codex\skills" | Out-Null
Copy-Item -Recurse codex\skills\ekyte "$env:USERPROFILE\.codex\skills\"
```
在 Linux/macOS 上全局安装:
```bash
mkdir -p ~/.codex/skills
cp -r codex/skills/ekyte ~/.codex/skills/
```
## 使用 Docker 进行远程部署
构建镜像:
```bash
docker build -t ekyte-mcp-server .
```
执行:
```bash
docker run -d --name ekyte-mcp-server \
-p 3000:3000 \
-e EKYTE_BEARER_TOKEN=您的JWT \
-e EKYTE_COMPANY_ID=您的公司ID \
-e TRANSPORT=http \
-e PORT=3000 \
ekyte-mcp-server
```
验证:
```bash
curl http://localhost:3000/health
```
远程 MCP 端点:
```text
https://您的服务器.com/mcp
```
## 可用工具
读取:
- `ekyte_list_workspaces`
- `ekyte_list_users`
- `ekyte_list_task_types`
- `ekyte_list_phases`
- `ekyte_list_tasks`
- `ekyte_get_task`
- `ekyte_list_task_flow_phases`
- `ekyte_list_projects`
- `ekyte_list_project_templates`
- `ekyte_list_project_tasks`
- `ekyte_list_time_entries`
写入:
- `ekyte_create_task`
- `ekyte_update_task`
- `ekyte_update_phase`
- `ekyte_toggle_flow_phase`
- `ekyte_complete_task`
- `ekyte_add_task_comment`
- `ekyte_create_project`
- `ekyte_create_time_entry_with_task`
- `ekyte_create_time_entry_without_task`
- `ekyte_delete_time_entry`
## 如何获取凭证
JWT 令牌:
1. 访问 `https://app.ekyte.com`。
2. 打开 DevTools > Network。
3. 打开请求到 `api.ekyte.com`。
4. 复制 `Authorization: Bearer ...` 头的值,不带 `Bearer` 前缀。
公司 ID:
- 在路径中查看数字:`/api/companies/XXXX/...`。
## 安全
- 永远不要提交带有凭证的 `.env`、令牌或本地配置。
- 将 `EKYTE_BEARER_TOKEN` 视为密码。
- 在创建、完成、删除或记录小时之前确认数据。
- 使用 `executor_id` 作为 UUID,而不是数字。
- 使用 `AAAA-MM-DD` 中的日期和 `HH:MM` 中的时间。
## 开发
```bash
npm run dev
npm run build
npm start
```
HTTP 烟雾测试:
```bash
curl http://localhost:3000/health
curl -X POST http://localhost:3000/mcp -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```