用于创建能够动态发现、安装并使用MCP(模型上下文协议)服务器的智能AI代理的Mastra模板。此模板为构建能够自动查找并通过MCP生态系统集成外部服务的代理提供了基础。
src/
├── mastra/
│ ├── agents/
│ │ └── smart-mcp-agent.ts # 具有MCP功能的主要AI代理
│ ├── tools/
│ │ ├── add-mcp-server.ts # 动态向配置添加MCP服务器
│ │ ├── discover-servers.ts # 在Smithery注册表中搜索服务器
│ │ └── list-servers.ts # 列出当前配置的服务器
│ ├── index.ts # Mastra配置
│ ├── mcp.ts # MCP客户端配置
│ └── types.ts # TypeScript类型定义
克隆模板:
npx create-mastra@latest template-smart-mcp-agent
cd template-smart-mcp-agent
安装依赖项:
npm install
设置环境变量:
cp .env.example .env
# 编辑.env文件以包含您的API密钥
启动开发服务器:
npm run dev
| 变量 | 描述 | 必需 |
|---|---|---|
OPENAI_API_KEY | 用于代理模型的OpenAI API密钥 | 是 |
SMITHERY_API_KEY | Smithery注册表API密钥 | 是 |
import { smartMcpAgent } from './src/mastra/agents/smart-mcp-agent';
// 代理配置包括:
// - OpenAI GPT-4o-mini模型
// - 基于LibSQL的内存存储
// - 动态MCP服务器管理
智能MCP代理遵循以下工作流程:
discover-servers在Smithery上搜索MCP服务器add-mcp-server动态添加服务器到配置中list-servers确认安装// 搜索网络搜索服务器
await discoverServersTool.execute({
context: { query: "web search", limit: 5 }
});
// 添加一个网络搜索服务器
await addMcpServerTool.execute({
context: {
name: "websearch",
serverId: "@Aas-ee/open-websearch",
description: "网络搜索能力"
}
});
// 列出已配置的服务器
await listServersTool.execute({ context: {} });
动态地将MCP服务器添加到mcp.ts配置文件中。
输入模式:
{
name: z.string().min(1), // 服务器名称(例如:"websearch")
serverId: z.string().min(1), // 完整的服务器ID(例如:"@Aas-ee/open-websearch")
description: z.string().optional() // 可选描述
}
特性:
mcp.ts文件以进行正确的配置在Smithery注册表中搜索可用的MCP服务器。
输入模式:
{
query: z.string(), // 搜索查询
limit: z.number().int().min(1).max(20).optional() // 结果限制
}
特性:
列出所有当前配置的MCP服务器。
特性:
mcp.ts配置当您使用add-mcp-server添加服务器时:
src/mastra/mcp.tslist-servers确认成功添加模板预配置了这些服务器:
模板包括全面的错误处理:
npm run dev - 启动具有热重载的开发服务器npm run build - 构建生产版本npm run start - 启动生产服务器npm run devsmartMcpAgent提供:
MCP客户端(buildMcp)管理:
ISC许可证 - 详情见LICENSE文件。