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='' npm run seed:token启动服务器:
TOKEN_STORE_PATH=./data/tokens.integration.json \
TOKEN_ENCRYPTION_KEY_BASE64='' \
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工具调用流程
- 呼叫
auth_status. - 呼叫
search出于意图(例如,list exchange assets). - 选择一个
operation_id. - 呼叫
execute带有必需的参数。 - 写作:致电
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_MSMAX_RETRIESCATALOG_CACHE_PATHREAD_CACHE_TTL_MSEXECUTE_MAX_BODY_BYTESEXECUTE_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
