概览/MCP/传输方式

传输方式

区分 stdio 和 Streamable HTTP 两种接法,以及各自适合的客户端。

传输方式

KPainter MCP 当前支持两种传输方式:

  • stdio
  • Streamable HTTP

stdio

它更适合本地 MCP client,例如:

  • Claude Desktop
  • Cursor
  • Cline
  • Codex CLI

启动方式:

kp-mcp

如果你是从 kgp-service 源码目录启动,也可以:

python -m src.mcp_server

stdio 更适合这些情况:

  • MCP client 跑在你自己的机器上
  • 你想先用最简单的方式起步
  • 你希望通过环境变量传 API Key

Streamable HTTP

它更适合:

  • 远程 agent host
  • 托管型 MCP 平台
  • 明确要求 HTTP MCP endpoint 的 client

可以独立运行:

uvicorn src.mcp_server:app --reload --port 8002

默认 standalone app 会把 MCP 暴露在:

http://127.0.0.1:8002/mcp

如果 MCP 挂在主 KPainter API 服务里,默认路径仍然是:

/mcp

也就是说,它通常会和 OpenAPI 共享同一个 API host,只是路径从 /openapi/v1 换成 /mcp

浏览器侧注意点

当前服务端已经补了浏览器实验所需的最小支持:

  • PARTNER_MCP_ALLOWED_ORIGINS
  • 通过 CORS 暴露 Mcp-Session-Id

但浏览器直连仍然不是当前主推路径。

现在更推荐:

  • 常规页面继续走 REST / OpenAPI
  • 外部 agent 平台和 IDE 走 MCP

应该选哪一种

  • 本地开发、桌面 MCP client:优先选 stdio
  • 托管或远程 MCP 环境:选 Streamable HTTP

如果你不确定,先从 stdio 开始。它更容易排查,鉴权也更简单。