项目简介
Tambo 是一个为 React 应用设计的生成式 UI SDK,其核心是深度集成 Model Context Protocol (MCP)。它允许开发者构建能够根据自然语言对话动态适应用户需求的界面。此仓库不仅包含前端 SDK,还提供了多种可自托管的 MCP 服务器实现,用于向 LLM 提供结构化的上下文信息、执行外部功能以及管理 Prompt 模板。
主要功能点
- 资源管理: 托管和管理各种数据资源,允许 LLM 按需访问。
- 工具执行: 注册并执行外部工具和 API,使 LLM 能够调用真实世界的函数来完成任务。
- Prompt 模板: 定义和渲染可定制的 Prompt 模板,优化 LLM 的交互模式。
- 会话管理: 支持有状态会话,确保 LLM 对话的连贯性和上下文。
- 多传输协议: 通过 JSON-RPC 支持 HTTP (POST)、Server-Sent Events (SSE) (GET) 和 DELETE 等多种传输协议进行通信。
- 可扩展性: 易于集成自定义服务和工具,满足不同的应用需求。
安装步骤
-
克隆仓库: 首先,将 Tambo 仓库克隆到您的本地机器:
git clone https://github.com/tambo-ai/tambo.git cd tambo -
安装依赖: 进入仓库目录后,安装所有项目依赖:
npm install -
启动 MCP 服务器: Tambo 仓库包含多个 MCP 服务器实现。您可以选择启动其中一个进行测试或开发:
- 启动测试 MCP 服务器 ('apps/test-mcp-server'):
这个服务器是一个独立的 MCP 示例,包含了工具调用和 Prompt 模板的实现。
# 首先编译测试服务器代码 npm run build --filter=test-mcp-server # 然后启动测试服务器,默认监听端口 3004 npm run start --filter=test-mcp-server - 启动主后端服务 (包含 MCP 功能):
您也可以选择启动整个 Tambo 后端服务('apps/api'),它也集成了 MCP 功能。
# 这一步会提示您选择部署方式,请选择 "Self-hosted" 并跟随指示完成配置 npx tambo init # 启动包含 MCP 功能的整个后端服务 npm run dev
- 启动测试 MCP 服务器 ('apps/test-mcp-server'):
这个服务器是一个独立的 MCP 示例,包含了工具调用和 Prompt 模板的实现。
服务器配置 (用于 MCP 客户端连接)
以下是 MCP 客户端连接到 Tambo 仓库中提供的 测试 MCP 服务器 ('apps/test-mcp-server') 所需的配置信息示例。其他 Tambo MCP 服务器(如主 API 服务或文档 MCP 服务)的配置类似,主要区别在于 'url' 地址和可用的 'tools' 及 'prompts'。
{ "server_name": "tambo-test-mcp", "command": "node", "args": [ "./apps/test-mcp-server/dist/index.js", "--port", "3004", "--enable-session-management" ], "env": { // 可选:设置环境变量,例如数据库连接字符串 // "DATABASE_URL": "postgresql://user:password@host:port/database" }, "description": "Tambo提供的测试用MCP服务器,支持工具调用、Prompt模板和会话管理。" }
- 'server_name': 用于标识此 MCP 服务器的名称,建议使用易于识别的字符串,如 '"tambo-test-mcp"'。
- 'command': 启动 MCP 服务器的可执行文件或命令,例如 '"node"'。
- 'args': 传递给 'command' 的参数列表。
- './apps/test-mcp-server/dist/index.js': 指向已编译的测试 MCP 服务器的主文件路径。
- '--port 3004': 指定服务器监听的端口号为 3004。您可以根据实际部署情况调整。
- '--enable-session-management': 启用 MCP 服务器的会话管理功能,允许在 LLM 交互中维护会话状态。
- 'env': (可选) 额外的环境变量,在启动 MCP 服务器时会加载。例如,可以配置数据库连接字符串。
- 'description': 对此 MCP 服务器的简要说明,帮助理解其功能和用途。
基本使用方法
一旦 MCP 服务器启动,MCP 客户端(例如,一个集成 LLM 的应用程序)可以通过 JSON-RPC 协议连接到服务器暴露的 '/mcp' 端点。对于上述测试 MCP 服务器,连接地址通常是 'http://localhost:3004/mcp'。客户端可以执行以下操作:
- 列出可用工具: 发送 'list_tools' 请求,获取服务器提供的所有工具列表及其描述和输入 Schema。
- 列出 Prompt 模板: 发送 'list_prompts' 请求,获取服务器提供的所有 Prompt 模板。
- 调用工具: 发送 'call_tool' 请求,指定工具名称和参数,服务器将执行相应逻辑并返回结果。例如,测试 MCP 服务器提供了 'ask_user_for_choice'(询问用户选择)和 'emojify_via_llm'(将文本转换为表情符号)工具。
- 会话交互: 如果启用了会话管理,客户端可以在请求中包含 'mcp-session-id' 头,维持有状态的对话,实现更复杂的 LLM 交互模式。
信息
分类
开发者工具