Next.js MCP服务器与Inkeep集成
使用Next.js和Vercel MCP Adapter构建的模型上下文协议(MCP)服务器,具有Inkeep Analytics集成功能,用于AI驱动的文档搜索和问答功能。
特性
- MCP服务器:使用Vercel MCP适配器插入MCP服务器实现
- Inkeep集成:基于人工智能的文档搜索和问答工具
- 分析:使用Inkeep Analytics进行对话记录
- Vercel部署:针对Vercel进行了优化,支持Fluid计算
先决条件
- Node.js 18+
- pnpm(推荐)或npm
- Vercel CLI(用于部署)
- 使用API密钥的Inkeep帐户
安装
- 克隆存储库:
git clone
cd mcp-for-vercel- 安装依赖项:
pnpm install
# or
npm install环境设置
1.创建环境变量
创建一个 .env.local 根目录中的文件:
# Required: Inkeep API key
INKEEP_API_KEY=your_inkeep_api_key_here
# Optional: Custom Inkeep API base URL (defaults to 'https://api.inkeep.com/v1')
INKEEP_API_BASE_URL=https://api.inkeep.com/v12.获取Inkeep API密钥
开发环境
本地运行
选项1:使用Next.js(推荐用于开发):
pnpm dev
# or
npm run dev选项2:使用Vercel CLI(模拟生产环境):
# Install Vercel CLI if not already installed
npm i -g vercel
# Run locally with Vercel
vercel dev您的MCP服务器将在以下网址提供:
http://localhost:3000/mcp(MCP传输)
开发配置
对于开发,您可以通过编辑来定制MCP服务器 app/[transport]/route.ts:
- 添加自定义工具:遵循 MCP TypeScript SDK文档
- 配置提示和资源:添加您自己的提示和资源
- 修改分析日志记录:自定义对话日志记录行为
生产部署
Vercel部署
生产的先决条件
- Vercel帐户:注册地址: vercel.com
- 启用流体计算:启用 流体计算 在您的Vercel仪表板中实现高效执行
Vercel配置
创建一个 vercel.json 根目录中的文件:
{
"functions": {
"app/[transport]/route.ts": {
"maxDuration": 300
}
}
}适用于Vercel Pro或Enterprise帐户,您可以增加超时时间:
{
"functions": {
"app/[transport]/route.ts": {
"maxDuration": 800
}
}
}Vercel中的环境变量
- 通过Vercel仪表板:
- 转到项目设置 - 导航到“环境变量” - 添加 INKEEP_API_KEY 并且可选 INKEEP_API_BASE_URL
- 通过Vercel命令行界面:
vercel env add INKEEP_API_KEY
vercel env add INKEEP_API_BASE_URL部署到Vercel
选项1:使用Vercel CLI(推荐)
# Deploy to production
vercel --prod
# Deploy to preview
vercel选项2:Git集成
- 将您的存储库连接到Vercel
- 推到您的主分支
- Vercel将自动部署
选项3:一键部署 使用部署 Next.js MCP模板
手动部署(其他平台)
- 构建项目:
pnpm build- 启动生产服务器:
pnpm start用法
此MCP服务器提供两个主要工具:
1.人工智能问答工具(ask-question-about-inkeep)
询问有关Inkeep功能、故障排除或概念的具体问题。
2.文档搜索工具(search-inkeep-docs)
在Inkeep文档和相关资源中执行语义搜索。
与MCP客户端集成
使用MCP传输将MCP客户端连接到服务器:
- 主控程序:
https://your-domain.vercel.app/mcp
定制
添加自定义工具
编辑 app/[transport]/route.ts 添加您自己的MCP工具:
server.tool(
'your-tool-name',
'Tool description',
{ parameter: z.string().describe('Parameter description') },
{
title: 'Your Tool Title',
readOnlyHint: true,
openWorldHint: true,
},
async ({ parameter }) => {
// Your tool logic here
return {
content: [{
type: 'text' as const,
text: 'Your response',
}],
};
}
);修改分析
服务器会自动将对话记录到Inkeep Analytics。您可以通过修改以下内容来自定义此行为 logToInkeepAnalytics 功能在 route.ts.
