NestJS MCP Server - Model Context Protocol Example

NestJS MCP Server - Model Context Protocol Example

site icon
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)提供上下文信息,如当前时间等。

核心功能

  1. mcp-server: 提供获取当前时间上下文的功能。
  2. mcp-backend: 使用LangChain.js和MCP客户端SDK连接到MCP服务器,处理用户查询。

适用场景

  1. 需要为LLM提供实时上下文信息的场景。
  2. 微服务架构下的模型上下文管理。
  3. 多服务器连接和管理。

工具列表

  1. LangChain.js: 用于处理用户查询和与MCP服务器交互。
  2. @langchain/mcp-adapters: MCP客户端适配器,用于LangChain.js。
  3. @rekog/mcp-nest: NestJS的MCP服务器实现。

常见问题解答

  1. 如何添加多个MCP服务器?
  2. 修改McpClientModule.register配置,添加额外的服务器信息。
  3. 如何避免工具名称冲突?
  4. 设置prefixToolNameWithServerName: true,为工具名称添加服务器名前缀。

使用教程

使用依赖

  • Node.js (v20或更高版本)
  • npm

安装教程

  1. 克隆仓库
  2. 安装依赖:
npm install
  1. 复制并编辑环境变量文件:
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

运行服务

  1. 启动MCP服务器:
npm run start:dev mcp-server
  1. 启动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发送相同请求。

许可证

该项目遵循 UNLICENSED 开源许可条款。