MCP服务器

AroFlo MCP是一个独立的生产级MCP服务器,提供一流的请求签名和简洁的工具界面,适用于AroFlo API的集成和开发。

  • by 0x1NotMe
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 0x1NotMe/aroflo-mcp

使用说明

AroFlo MCP

AroFlo的独立、生产就绪的MCP服务器,具有一流的请求签名和干净的工具表面。

快速开始

安装(本地)

此仓库附带了一个名为的MCP服务器可执行文件 aroflo-mcp (默认情况下为stdio传输)。

在您的计算机上安装服务器(放置 aroflo-mcp 通过您的路径 npm link):

make install

如果全局npm链接在您的计算机上受到限制,请跳过 npm link 无需全局安装即可运行:

npm run build
node dist/mcp/server.js

安装到Codex(stdio)

  1. 创建本地 .env (未承诺)您的凭据:
cp .env.example .env
# edit .env
  1. 在Codex中注册服务器(将env存储在 ~/.codex/config.toml,未作为工具参数传递):
make codex-install

make codex-install 将MCP配置写入 ~/.codex/config.toml。如果此路径受权限限制,请使用适当的权限重新运行。

  1. 验证:
codex mcp get aroflo

手动Codex安装(替代)

如果你更喜欢手动操作(相同的环境变量,存储在Codex配置中):

codex mcp add aroflo \
  --env AROFLO_API_BASE_URL=https://api.aroflo.com/ \
  --env AROFLO_ACCEPT=text/json \
  --env AROFLO_SECRET_KEY=... \
  --env AROFLO_UENCODED=... \
  --env AROFLO_PENCODED=... \
  --env AROFLO_ORG_ENCODED=... \
  --env MCP_TRANSPORT=stdio \
  -- "$(command -v node)" "$(pwd)/dist/mcp/server.js"

笔记:

  • 如果Codex(桌面应用程序)在启动服务器时挂起,通常是PATH问题(在通过以下方式安装Node时很常见 nvm 应用程序在你的shell外启动)。
  • 修复1:从终端启动Codex,使其继承您的shell PATH(codex app).
  • 修复2:将MCP服务器配置为通过绝对节点路径运行(请参阅 docs/runbooks.md).

发展

安装依赖项:

npm ci

构建和测试:

npm run test
npm run build

运行服务器(stdio):

npm run dev

如果您的环境阻止了IPC套接字的使用 tsx 在开发模式下,使用内置运行时:

npm run build
npm run start

运行服务器(HTTP流传输):

MCP_TRANSPORT=http npm run dev:http

MCP 检查员

交互式测试 tools/list 和 tools/call 通过官方检查器UI:

make inspector

项目布局

src/
  auth/
  aroflo/
  mcp/
  utils/
tests/
docs/

环境

所需变量:

  • AROFLO_SECRET_KEY
  • AROFLO_UENCODED
  • AROFLO_PENCODED
  • AROFLO_ORG_ENCODED

可选变量:

  • AROFLO_API_BASE_URL (默认值: https://api.aroflo.com/)
  • AROFLO_ACCEPT (默认值: text/json)
  • AROFLO_HOST_IP
  • AROFLO_TIMEOUT_MS (默认值: 65000)
  • AROFLO_MAX_RETRIES (默认值: 2)
  • LOG_LEVEL (默认值: info)

HTTP传输

集 MCP_TRANSPORT=http 在以下位置运行HTTP服务器(流式HTTP传输):

  • http://${MCP_HTTP_HOST}:${MCP_HTTP_PORT}${MCP_HTTP_PATH}

使用提取的API文档(docs/api)

此回购包括中AroFlo API文档的本地快照 docs/api/.

MCP服务器将这些markdown文件作为MCP资源公开,以便客户端/LLM可以查找有效的WHERE字段、JOIN区域等:

  • aroflo://docs/api -> docs/api/README.md
  • aroflo://docs/api/<slug> -> docs/api/<slug>.md (例如: aroflo://docs/api/quotes)

示例查询:列出接受状态为“等待决定”的报价:

  • 工具: aroflo_get_quotes
  • Args:
{
  "where": "and|acceptancestatus|=|Awaiting Decision",
  "page": 1,
  "pageSize": 50
}

示例报告:每个任务有工时的开放项目(建议用于进度报告):

  • 工具: aroflo_report_open_projects_with_task_hours
  • Args(添加可选过滤器,如 sinceDateRequested 保持输出较小):
{
  "sinceCreatedUtc": "2025-01-01",
  "sinceDateRequested": "2025-01-01",
  "hoursOnly": true,
  "includeTaskStatus": true,
  "mode": "data"
}

文档

  • docs/aroflo-auth.md
  • docs/mcp-tools.md
  • docs/examples.md
  • docs/runbooks.md
  • docs/deployment.md
  • docs/api/*