cameronking4
服务介绍
无头MCP使用(从注册表)与Next.js
使用@vercel/mcp-adapter并配置MCP注册表
部署URL
此应用程序部署在:https://nextjs-mcp-use.vercel.app
功能
- MCP注册表:在一个JSON文件中配置多个MCP服务器
- GitHub Actions:通过计划和手动工作流测试和监控您的API端点
- 错误处理:优雅地处理超时和连接失败
- 环境变量:为每个MCP服务器配置环境变量
MCP注册表
MCP注册表是一个JSON配置文件,用于存储所有可用MCP服务器的信息。每个服务器可以启用或禁用,并且可以有自己的环境变量。
注册表位于config/mcp-registry.json,具有以下结构:
json
{
"server-name": {
"url": "http://localhost:3002/sse",
"enabled": true,
"env": {
"API_KEY": "your-api-key"
}
},
"another-server": {
"url": "https://example.com/sse",
"enabled": false
}
}
使用方法
此示例应用使用了Vercel MCP适配器,它允许您在任何Next.js项目的路由组上插入一个MCP服务器。
根据MCP TypeScript SDK文档更新app/[transport]/route.ts中的工具、提示和资源。
API端点
- 聊天API:
/api/chat- 流式聊天端点 - 完成API:
/api/completions- 非流式聊天完成端点
测试API
您可以使用提供的测试脚本来测试API端点:
sh
测试聊天端点
npm run test:chat -- --message "您的消息"
测试完成端点
npm run test:completions -- --message "您的消息"
使用自定义URL测试
npm run test:chat -- --url http://localhost:3000/api/chat --message "您的消息"
GitHub Actions
该项目包括用于测试和监控API端点的GitHub Actions工作流。更多信息请参见.github/workflows/README.md文件。
在Vercel上运行的注意事项
- 要使用SSE传输,需要将Redis附加到项目下的
process.env.REDIS_URL - 确保启用了Fluid计算以实现高效执行
- 启用Fluid计算后,打开
app/route.ts并将maxDuration调整为800(如果您使用的是Vercel Pro或Enterprise账户) - 部署Next.js MCP模板
示例客户端
scripts/test-client.mjs包含了一个尝试调用的示例客户端。
sh
node scripts/test-client.mjs https://nextjs-mcp-use.vercel.app