开源SDK,用于构建与模型上下文协议(MCP)兼容的应用程序,该协议与OpenAI Apps SDK兼容。
此SDK对两种类型的开发者有用:
https://github.com/user-attachments/assets/7d13d4f8-2da7-40b1-a102-7745a1d5cc95
通过一个命令快速开始:
npm install @xalia/mcp-apps-sdk
这将安装构建MCP驱动应用程序所需的一切!✨
对于希望减小捆绑包大小的高级用户,仅安装所需的部分:
# 对于代理开发者 - 仅渲染MCP应用小部件
npm install @xalia/mcp-apps-widget
# 对于MCP应用开发者 - 仅客户端和适配器
npm install @xalia/mcp-client @xalia/mcp-apps-adapters
这个单体仓库包含四个包:
完整的SDK - 统一的包,包含一切。安装此包以获得最简单的设置。
React组件和工具,用于在安全的iframe中通过PostMessage通信渲染MCP应用小部件。
用于连接和与MCP服务器交互的TypeScript客户端,包括工具发现和执行。
适配器,用于将MCP工具与流行的AI框架(如Vercel AI SDK和OpenAI)集成。
http://localhost:8002/mcp)# 克隆包含子模块的仓库
git clone --recurse-submodules https://github.com/general-intelligence-labs/mcp-apps-sdk.git
cd mcp-apps-sdk
# 或者如果你已经克隆但没有子模块
git submodule update --init --recursive
# 安装依赖项
pnpm install
# 构建所有包
pnpm build
聊天机器人示例需要一个MCP服务器和一个小部件的静态文件服务器。请参阅examples/chatbot/README.md获取详细的设置说明。
快速开始:
# 终端1:启动静态文件服务器
cd examples/openai-apps-sdk-examples
pnpm install && pnpm build
pnpm run serve # 在4444端口提供服务
# 终端2:启动MCP服务器
cd examples/openai-apps-sdk-examples/solar-system_server_python
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --port 8002
# 终端3:启动聊天机器人
cd examples/chatbot
pnpm dev
打开http://localhost:3000查看具有MCP工具集成的聊天机器人。
mcp-apps-sdk/
├── packages/
│ ├── mcp-apps-sdk/ # ⭐ 完整的SDK(伞形包)
│ ├── mcp-apps-widget/ # 小部件渲染组件
│ ├── mcp-client/ # MCP协议客户端
│ └── mcp-apps-adapters/ # AI框架适配器
├── examples/
│ ├── chatbot/ # 示例Next.js聊天机器人应用
│ └── openai-apps-sdk-examples/ # OpenAI SDK示例(git子模块)
└── package.json # 根package.json
# 构建所有包
pnpm build
# 在开发模式下运行所有包
pnpm dev
# 运行测试
pnpm test
# 代码检查
pnpm lint
# 清理所有构建产物
pnpm clean
安装完整的SDK并从一个地方导入所有内容:
npm install @xalia/mcp-apps-sdk
import {
createMCPClient,
connectMCPClient,
createVercelAITools,
AssistantAppEmbed
} from '@xalia/mcp-apps-sdk';
// 连接到MCP服务器
const client = await createMCPClient({ name: 'my-app', version: '1.0.0' });
await connectMCPClient(client, transport);
// 将MCP工具转换为可用于AI SDK的形式
const tools = await createVercelAITools(client);
当你需要细粒度控制时,使用特定的入口点:
// 仅客户端
import { createMCPClient } from '@xalia/mcp-apps-sdk/client';
// 适配器
import { createOpenAIFunctions } from '@xalia/mcp-apps-sdk/adapters/openai';
import { createVercelAITools } from '@xalia/mcp-apps-sdk/adapters/vercel';
// 小部件组件
import { AssistantAppEmbed } from '@xalia/mcp-apps-sdk/widget';
如果你只需要渲染MCP应用小部件:
npm install @xalia/mcp-apps-widget
import { AssistantAppEmbed } from '@xalia/mcp-apps-widget';
function MyApp() {
return (
<AssistantAppEmbed
widgetHtml={widgetHtml}
toolOutput={result}
metadata={metadata}
/>
);
}
加入我们的Discord社区进行讨论、支持和更新:
我们欢迎贡献!请参阅我们的贡献指南了解详情。
MIT许可证 - 详情见LICENSE。