
NestJS MCP Server - Model Context Protocol Example

2025.04.10
1
TypeScript模型上下文协议微服务架构开发效率
NestJS MCP Server - Model Context Protocol Example 是一个基于NestJS实现的模型上下文协议(MCP)微服务架构示例。它包含两个主要服务:mcp-server提供获取当前时间上下文的功能,mcp-backend是一个客户端,使用LangChain.js并集成MCP客户端SDK连接到MCP服务器。
View on GitHub
Overview
基本能力
产品定位
该项目是一个基于NestJS的模型上下文协议(MCP)实现,主要用于为大型语言模型(LLM)提供上下文信息,如当前时间等。
核心功能
- mcp-server: 提供获取当前时间上下文的功能。
- mcp-backend: 使用LangChain.js和MCP客户端SDK连接到MCP服务器,处理用户查询。
适用场景
- 需要为LLM提供实时上下文信息的场景。
- 微服务架构下的模型上下文管理。
- 多服务器连接和管理。
工具列表
- LangChain.js: 用于处理用户查询和与MCP服务器交互。
- @langchain/mcp-adapters: MCP客户端适配器,用于LangChain.js。
- @rekog/mcp-nest: NestJS的MCP服务器实现。
常见问题解答
- 如何添加多个MCP服务器?
- 修改
McpClientModule.register
配置,添加额外的服务器信息。 - 如何避免工具名称冲突?
- 设置
prefixToolNameWithServerName: true
,为工具名称添加服务器名前缀。
使用教程
使用依赖
- Node.js (v20或更高版本)
- npm
安装教程
- 克隆仓库
- 安装依赖:
npm install
- 复制并编辑环境变量文件:
cp .env.example .env
编辑.env
文件,添加OpenAI API密钥:
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_API_URL=https://api.openai.com/v1
PORT=3001
运行服务
- 启动MCP服务器:
npm run start:dev mcp-server
- 启动MCP后端:
npm run start:dev mcp-backend
调试方式
发送POST请求到http://localhost:3001
,测试功能:
curl -X POST http://localhost:3001 -H "Content-Type: application/json" -d "{\"message\": \"What time is it in Viet Nam?\"}"
或使用Postman发送相同请求。