MuleSoft API代理工具

一个标准化的远程MCP服务器,用于通过固定低上下文工具表面发现和执行MuleSoft API操作,支持OAuth和写入保护。

  • by dsouzaAnush
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 dsouzaAnush/mulesoft-code-mcp

使用说明

MuleSoft代码MCP

模型上下文协议(MCP)是LLM通过工具使用外部系统的标准化方式。该存储库为MuleSoft API提供了一个集中的远程MCP服务器,因此代理可以使用固定的低上下文工具表面发现操作并执行经过验证的API调用。

设计参考:

服务器支持 streamable-http 运输方式 /mcp.

此存储库中的服务器

服务器 描述 URL
mulesoft-code-mcp 使用OAuth在MuleSoft上搜索+执行操作并编写防护栏 http://127.0.0.1:3000/mcp

暴露的工具

工具 用途 典型用途
search 从Exchange门户+OpenID上下文 “列表资产”、“交换api”、“oauth令牌”中查找排名操作
execute 通过以下方式验证并执行操作 operation_id 使用类型验证读写调用
auth_status 返回当前调用方的身份验证状态 预飞行前 execute

为什么比官方MCP模式更好

与公开许多端点特定工具的官方/提供商MCP服务器相比,这种实现对代理执行质量更好:

  • 较低的上下文压力:已修复 3 工具,而不是端点工具爆炸。
  • 更好的工具选择:代理将意图映射到 search,然后执行一个显式 operation_id.
  • 更强的安全性:写入需要服务器策略和每个请求的确认令牌。
  • 更好的运行时行为:响应截断、读取缓存和持久化目录缓存可减少延迟和令牌浪费。

从任何MCP客户端访问

如果您的MCP客户端直接支持远程MCP:

{
  "mcpServers": {
    "mulesoft-code-mcp": {
      "transport": "streamable_http",
      "url": "http://127.0.0.1:3000/mcp",
      "headers": {
        "x-user-id": "default"
      }
    }
  }
}

如果您的客户需要命令桥:

{
  "mcpServers": {
    "mulesoft-code-mcp": {
      "command": "npx",
      "args": ["mcp-remote", "http://127.0.0.1:3000/mcp"],
      "env": {
        "MCP_REMOTE_HEADERS": "{\"x-user-id\":\"default\"}"
      }
    }
  }
}

快速开始

cd mulesoft
npm install
npm run build
npm test

来自环境的种子访问令牌:

MULESOFT_ACCESS_TOKEN='<token>' npm run seed:token

启动服务器:

TOKEN_STORE_PATH=./data/tokens.integration.json \
TOKEN_ENCRYPTION_KEY_BASE64='<seed-output-key>' \
PORT=3000 HOST=127.0.0.1 npm run dev

烟雾测试:

curl -sS http://127.0.0.1:3000/healthz
MCP_URL=http://127.0.0.1:3000/mcp USER_ID=default npm run smoke:mcp

工具调用流程

  1. 呼叫 auth_status.
  2. 呼叫 search 出于意图(例如, list exchange assets).
  3. 选择一个 operation_id.
  4. 呼叫 execute 带有必需的参数。
  5. 写作:致电 dry_run=true,然后用重播 confirm_write_token 和 ALLOW_WRITES=true.

示例 search 输入:

{
  "query": "list exchange assets",
  "limit": 5
}

示例阅读 execute 输入:

{
  "operation_id": "GET /exchange/api/v2/assets"
}

示例写作 execute 排练:

{
  "operation_id": "DELETE /exchange/api/v2/assets/{assetId}",
  "path_params": {
    "assetId": "my-asset"
  },
  "dry_run": true
}

配置

关键环境变量:

  • ALLOW_WRITES (默认值 false)
  • REQUEST_TIMEOUT_MS
  • MAX_RETRIES
  • CATALOG_CACHE_PATH
  • READ_CACHE_TTL_MS
  • EXECUTE_MAX_BODY_BYTES
  • EXECUTE_BODY_PREVIEW_CHARS

看 .env.example 对于全套。

安全模型

  • 除非满足以下条件,否则突变方法将被阻止 ALLOW_WRITES=true.
  • 更改呼叫需要 confirm_write_token 从 dry_run 用于精确的请求回放。
  • 敏感的页眉和正文字段已被编辑。

性能模型

  • 修复了3-tool MCP表面,以保持上下文较小。
  • 持久化目录缓存支持快速启动和异步刷新。
  • 上游元数据的条件刷新(如果可用)。
  • 用于重复读取调用的短TTL缓存(GET / HEAD).
  • 执行正文截断控制上下文开销。

故障排除

  • MCP检查器连接失败:确认URL为 http://127.0.0.1:3000/mcp 服务器正在运行。
  • AUTH_REQUIRED:种子令牌或完整的OAuth引导。
  • 写入受阻:设置 ALLOW_WRITES=true 并返回使用 confirm_write_token.
  • 稀疏搜索结果:包括具体的资源词(exchange, assets, oauth).

发展

  • 来源: src
  • 测验: tests
  • 参考文献 REFERENCES.md