Tako MCP 服务器
使用说明(Markdown 格式)
-
项目简介
- 该服务器实现了 MCP(Model Context Protocol)规范的后端服务,作为 AI 客户端的上下文与功能提供端。它通过 MCP 工具暴露对 Tako 知识库的搜索、图表渲染、知识图谱探索等能力,并支持通过 MCP-UI 资源渲染交互式图表界面。服务器与 Tako API 进行安全对接,提供会话管理、能力声明以及多种传输方式(如 SSE)的通信支持。
-
主要功能点
- 提供如下 MCP 工具:knowledge_search、get_chart_image、get_card_insights、explore_knowledge_graph、list_chart_schemas、get_chart_schema、create_chart、open_chart_ui 等,用以检索、获取图表预览、洞察、创建可视化、以及打开交互 UI。
- 通过 SSE(Server-Sent Events)实现 MCP 的会话化、持续互动通信。
- 与 Tako API 进行对接,支持按 API Token 进行鉴权、错误处理与超时处理。
- 提供 MCP-UI 资源,允许客户端嵌入可交互的图表界面。
- 健康检查接口,便于运维监控。
-
安装步骤
- 获取源码并安装依赖:
- 克隆仓库并进入项目目录,执行安装命令安装本地包(如以可开发模式运行为例:pip install -e .)。
- 环境变量(运行前请配置,非必需项有默认值):
- TAKO_API_URL:Tako API 入口地址,默认为 https://api.trytako.com
- PUBLIC_BASE_URL:公开嵌入页面的基础地址,默认为 https://trytako.com
- PORT:服务器端口,默认为 8001
- HOST:服务器主机,默认为 0.0.0.0
- MCP_ALLOWED_HOSTS:额外允许的主机,逗号分隔
- MCP_ENABLE_DNS_REBINDING:是否启用 DNS 重绑定保护,默认为 true
- 启动服务器(最简启动方式,使用环境变量配置):运行模块 tako_mcp.server,服务器会读取上述环境变量来配置端口、地址以及 Tako API 的访问参数。
- 运行成功后,MCP 客户端应指向 http(s)://<host>:<port>/sse 来建立长连接,并通过 /messages/?session_id= 发送 JSON-RPC 请求。
- 获取源码并安装依赖:
-
服务器配置(MCP 客户端需要的启动信息,JSON 格式,包含服务器名称、命令与参数) { "server_name": "tako-knowledge-mcp", "command": "python", "args": ["-m", "tako_mcp.server"], "description": "Tako MCP 服务端,用于 MCP 客户端连接、工具调用与 UI 资源提供" } 注释:该配置用于 MCP 客户端在管理界面中启动或映射远程 MCP 服务器,实际运行时请按环境部署并确保 TAKO_API_URL、PUBLIC_BASE_URL 等变量正确配置。
-
基本使用方法
- 启动服务后,MCP 客户端通过 /sse 建立会话,获取 session_id。
- 使用 /messages/?session_id=<session_id> 以 JSON-RPC 2.0 规范发送方法调用请求,例如 initialize、工具调用等。
- 调用的工具包括:knowledge_search、get_chart_image、get_card_insights、explore_knowledge_graph、list_chart_schemas、get_chart_schema、create_chart、open_chart_ui 等。
- 通过 open_chart_ui 工具获取的 UI 资源可以在支持 MCP-UI 的客户端中渲染为嵌入式图表界面。
- 健康检查可用 GET /health 与 GET /health/detailed 进行自检与监控。