动态API工具服务器

一个基于Asaas OpenAPI动态生成工具并通过STDIO/JSON-RPC执行实际调用的服务器。

  • by pcontezini
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 pcontezini/asaas-mcp-server

使用说明

Asaas MCP服务器

MCP 服务器,可从 Asaas OpenAPI 动态生成工具,并通过 STDIO/JSON-RPC 执行实际调用。

要求

  • Node.js 24+
  • SANDBOX_API_KEY 或 ASAAS_API_KEY 不 .env (默认沙箱)

使用

npm run dev

JSON-RPC(单行)消息示例:

  • 工具列表 :
    {"id":1,"method":"list_tools"}
    
  • 调用工具( 例如列出客户端) :
    {"id":2,"method":"call_tool","params":{"name":"asaas_customer_list-customers","arguments":{"query":{"limit":1}}}}
    

环境变量

  • ASAAS_ENV: sandbox (默认)ou production.
  • ASAAS_BASE_URL:覆盖do-baseUrl。
  • ASAAS_API_KEY / SANDBOX_API_KEY标头(Header) access_token).
  • ASAAS_TIMEOUT_MS请求超时(default 10000)。
  • ASAAS_RETRY_ATTEMPTS, ASAAS_RETRY_BACKOFF_MS, ASAAS_RETRY_MAX_BACKOFF_MS重试策略(429/网络错误)。
  • ASAAS_SPEC_PATH使用本地OpenAPI而不是下载。
  • ASAAS_SPEC_CACHE_ONLY:se true不做 HEAD/GET 请求只使用本地缓存(如果缓存不存在则失败)。
  • ASAAS_LOG=debugstderr 中的启动/运行日志(用于调试 Codex 中的握手)。
  • ASAAS_LOG_FILE=/tmp/asaas-mcp.log可选: 镜像文件中的日志以进行脱机调试。
  • ASAAS_TOOL_LIMIT: 可选, 返回工具的最大数量 tools/list (用于测试较低有效载荷的握手)。
  • ASAAS_TOOL_FILTER: 可选,以逗号分隔的子字符串列表,以便按名称过滤工具(大小写不敏感)。
  • ASAAS_SCHEMA_MINIMAL:se true,模式作为工具fiam {type:object} 减少payload。
  • ASAAS_LSP_FRAMING:se true,美国帧com Content-Length (LSP/MCP风格)。默认情况下,每行使用 JSON (\n).

动态 OpenAPI

  • 官方来源: https://www.asaas.com/openApi/document?version=3&languageCode=en-US.
  • 缓存em cache/asaas-openapi.json +meta(etag, lastModified, sha256).无法启动触手 If-None-Match/If-Modified-Since如果更改,则自动下载并重新生成工具。
  • 使用 ASAAS_SPEC_CACHE_ONLY=true 离线运行/无需远程检查(需要预先存在的缓存)或 ASAAS_SPEC_PATH 到本地文件。

公约

  • 工具名称 : asaas_<tag>_<operationId> (例如: asaas_customer_list-customers).
  • 输入方案组 path, query e body 根据spec。
  • 默认用户代理 : asaas-mcp/<versão>.

脚本

  • npm run setup --instala deps
  • npm run fmt --更漂亮
  • npm run lint -埃斯林特
  • npm test --Vitest
  • npm run dev --信息或服务MCP(STDIO/JSON-RPC)

待办事项/想法

  • 解决温和的警告 npm audit.
  • 可选:解决 $ref 使用OpenAPI来丰富工具方案。
  • 添加真正的集成测试( 只有当 SANDBOX_API_KEY 已设定)。
    测试者de mcp:npx@modelcontextprotocol/检查器node_modules/.bin/tsx src/server.ts