Skip to Content
平台能力MCP能力FunClaw MCP Server

FunClaw MCP Server

funclaw-mcp-server 是 FunClaw 对外暴露 MCP 工具的产品化开放能力。外部 MCP 客户端使用 FunClaw API Key 访问 MCP JSON-RPC 入口。

MCP Server 本身只是入口门票。进入 MCP 后,funclaw.list_open_capabilitiesfunclaw.get_open_capabilityfunclaw.execute_open_capabilityfunclaw.get_open_capability_task 只处理当前 API Key 已授权的业务开放能力,不会绕过应用授权。

能力信息

字段
能力 Keyfunclaw-mcp-server
能力名称FunClaw MCP Server
分类MCP
能力层级开放能力层
能力类型mcp_server
协议MCP Streamable HTTP 风格 JSON-RPC
入口/api/open/v1/mcp

调用入口

POST /api/open/v1/mcp Authorization: Bearer <sk-funclaw-api-key> Content-Type: application/json

团队应用 Key 必须授权 funclaw-mcp-server。外部数字员工 Key 由数字员工授权和 Key 自身资源域共同决定可用能力。ORG_ADMIN_KEY 的有效能力与所属组织当前授权保持一致,不依赖 Key 创建时写入的静态 scope。

客户端接入要求

外部 Agent 或 MCP 客户端需要支持:

  • Remote MCP / Streamable HTTP 风格 endpoint。
  • 通过 HTTP POST 发送 JSON-RPC 2.0 请求。
  • 配置 Authorization: Bearer <sk-funclaw-api-key> 请求头。
  • 接收 application/json 响应。
  • initialize 成功后发送 notifications/initialized notification。

当前服务端不提供 SSE 下行流。客户端如对同一入口发起 GET SSE stream,会收到:

HTTP/1.1 405 Method Not Allowed Allow: POST

初始化

{ "jsonrpc": "2.0", "id": "init-1", "method": "initialize", "params": {} }

成功响应:

{ "jsonrpc": "2.0", "id": "init-1", "result": { "protocolVersion": "2025-03-26", "serverInfo": { "name": "funclaw", "version": "0.1.0" }, "capabilities": { "tools": {} } } }

初始化成功后,标准 MCP 客户端需要继续发送 initialized notification。这个 notification 不包含 id,服务端成功接收后返回 202 Accepted,响应体为空。

{ "jsonrpc": "2.0", "method": "notifications/initialized" }

工具列表

{ "jsonrpc": "2.0", "id": "tools-1", "method": "tools/list", "params": {} }

当前内置 MCP 工具:

工具名说明
funclaw.list_open_capabilities返回当前 API Key 可见的开放能力列表。
funclaw.get_open_capabilitycapabilityKey 返回单个开放能力详情。
funclaw.execute_open_capabilitycapabilityKey 执行当前 API Key 已授权的开放能力,入参放在 input
funclaw.get_open_capability_taskcapabilityKeytaskId 查询异步开放能力任务状态和结果。
funclaw.create_asset创建应用资产;小型本地文件可通过 contentBase64 传入,视频或大文件应走 application-asset-service multipart 原始文件上传。
funclaw.list_assets查询当前 API Key 资源域下的资产列表。
funclaw.get_asset读取当前 API Key 资源域下的单个资产。

查询可见开放能力

{ "jsonrpc": "2.0", "id": "call-1", "method": "tools/call", "params": { "name": "funclaw.list_open_capabilities", "arguments": {} } }

响应中的 content[0].text 是 JSON 字符串:

{ "capabilities": [ { "capabilityKey": "douyin-top10-batch", "displayName": "抖音 Top10 批量", "categoryCode": "open-platform", "categoryName": "开放平台", "status": "ACTIVE", "description": "面向团队应用和 API Key 的抖音 Top10 批量开放能力。", "docsUrl": "/docs/platform-capabilities/douyin-top10-batch" } ] }

funclaw-mcp-server 不会出现在这个工具返回的开放能力列表里,避免 MCP 入口能力和业务能力混在一起。

查询单个开放能力

{ "jsonrpc": "2.0", "id": "call-2", "method": "tools/call", "params": { "name": "funclaw.get_open_capability", "arguments": { "capabilityKey": "douyin-top10-batch" } } }

如果当前应用没有获得目标业务能力授权,会返回 JSON-RPC error:

{ "jsonrpc": "2.0", "id": "call-2", "error": { "code": -32003, "message": "open capability not granted: douyin-top10-batch" } }

执行业务开放能力

执行前先用 funclaw.get_open_capability 获取目标能力的 inputSchema。业务开放能力不需要每个能力单独注册一个 MCP 工具,统一通过 funclaw.execute_open_capability 执行。如果返回结果中包含 taskId,继续用 funclaw.get_open_capability_task 查询任务状态和结果。

例如执行梦工厂创作歌词:

{ "jsonrpc": "2.0", "id": "call-3", "method": "tools/call", "params": { "name": "funclaw.execute_open_capability", "arguments": { "capabilityKey": "lyrics-generate", "input": { "style": "流行", "text": "写一段 FunClaw 外部 Agent 测试歌词", "emotion": "快乐" } } } }

如果当前 API Key 没有获得 lyrics-generate 授权,会返回 JSON-RPC error:

{ "jsonrpc": "2.0", "id": "call-3", "error": { "code": -32003, "message": "open capability not granted: lyrics-generate" } }

创建资产

URL 资产和小型本地文件可以通过 funclaw.create_asset 创建。本地小文件场景先由 MCP 客户端读取文件内容并编码为 Base64,然后传 contentBase64fileNamemimeType

视频或其他大文件不要通过 contentBase64 上传;Base64 会放大请求体并让 MCP/JSON 请求更容易触发请求大小限制或连接重置。大文件应使用 application-asset-service 的 REST multipart 原始文件上传接口,字段名为 filemetadata 如需传入必须是 JSON object 序列化后的字符串。

{ "jsonrpc": "2.0", "id": "call-4", "method": "tools/call", "params": { "name": "funclaw.create_asset", "arguments": { "type": "IMAGE", "title": "测试图片", "fileName": "cover.png", "mimeType": "image/png", "contentBase64": "<base64-file-content>", "metadata": { "source": "codex" } } } }

授权模型

应用授权需要分成两层理解:

授权项作用
funclaw-mcp-server允许团队应用 Key 访问 MCP JSON-RPC 入口。
业务开放能力 Key决定 MCP 工具能看见、读取和执行哪些开放能力。

例如应用授权了 funclaw-mcp-serverdouyin-top10-batch,那么 MCP 客户端可以连接服务器,并且只能通过 MCP 工具看到和执行 douyin-top10-batch

ORG_ADMIN_KEY 不按自身静态 scope 判断业务能力;它继承所属组织当前开放能力授权。组织已授权 application-data-service 时,ORG_ADMIN_KEY 可通过 MCP 使用对应的组织数据工具,包括团队公共数据写入和组织数据 owner 汇总/明细。

错误响应

HTTP 状态场景
401API Key 缺失或无效。
403API Key 所属主体不可访问 MCP;团队应用 grant 失效;团队应用未授权 funclaw-mcp-server;所属组织或目标业务能力未授权。
405使用 GET 请求 MCP endpoint;当前只支持 POST JSON-RPC。
200 + JSON-RPC errorJSON-RPC 请求格式错误、未知 method、未知 tool、查询未授权能力。
Last updated on