MCP LangChain LangGraph 服务器

一个全面的TypeScript样板,用于构建集成LangChain.js和LangGraph.js的MCP(模型上下文协议)服务器。

  • by HITMANdark07
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 HITMANdark07/node-mcp

使用说明

MCP LangChain LangGraph 服务器

一个全面的TypeScript模板,用于构建集成LangChain.js和LangGraph.js的MCP(模型上下文协议)服务器。

🚀 特点

  • MCP服务器使用TypeScript实现完整的MCP协议
  • LangChain 集成与LangChain.js代理和工具无缝集成
  • LangGraph 支持使用LangGraph.js构建具有状态的多参与者应用程序
  • 类型安全全面支持TypeScript,具备严格的类型检查
  • 模块化架构简洁、可扩展的代码结构
  • 示例工具内置计算器、文本处理器和数据验证工具
  • 环境配置通过环境变量实现灵活配置

📁 项目结构

mcp-langchain-langraph-server/
├── src/
│   ├── types/           # TypeScript type definitions
│   ├── constants/       # Configuration constants
│   ├── tools/           # MCP tools implementation
│   ├── agents/          # LangChain agent configurations
│   ├── langraph/        # LangGraph application logic
│   └── server.ts        # Main MCP server
├── package.json         # Dependencies and scripts
├── tsconfig.json        # TypeScript configuration
├── env.example          # Environment variables template
└── README.md           # This file

🛠️ 安装

先决条件

  • Node.js版本20.0.0或更高版本
  • **npm(Node Package Manager)**最新版本
  1. 克隆或创建项目:

    mkdir mcp-langchain-langraph-server
    cd mcp-langchain-langraph-server
    
  2. 安装依赖项:

    npm install
    
  3. 设置环境变量:

    cp env.example .env
    

    编辑 .env 并配置 Ollama:

    OLLAMA_BASE_URL=http://localhost:11434
    OLLAMA_MODEL=gpt-oss:20b
    OLLAMA_TEMPERATURE=0.7
    

🚀 快速入门

开发模式

# Run in development mode with hot reload
npm run dev:watch

# Or run once
npm run dev

生产模式

# Build the project
npm run build

# Start the server
npm start

🔧 配置

环境变量

变量 描述 默认值
OLLAMA_BASE_URL Ollama 服务器 URL http://localhost:11434
OLLAMA_MODEL Ollama 模型名称 gpt-oss:20b
OLLAMA_TEMPERATURE 模型温度 0.7
OLLAMA_MAX_TOKENS 最大令牌数 1000
MCP_SERVER_PORT MCP服务器端口 3000
MCP_SERVER_HOST MCP 服务器主机 本地主机
LANGCHAIN_TRACING_V2 启用 LangChain 跟踪 false
LANGCHAIN_PROJECT LangChain 项目名称 mcp-langchain-server
NODE_ENV 环境模式 开发
LOG_LEVEL 日志级别 info

最新库版本

  • LangChain.jsv0.3.0(稳定版)
  • LangGraph.jsv0.4.9(最新)
  • **LangChain Ollama(可直接作为专有名词使用,不需额外翻译)**v0.1.0(最新版)
  • **MCP SDK(MCP软件开发工具包)**版本1.0.0(稳定版)
  • TypeScript版本5.3.3(最新)
  • Node.jsv20+(必需)

配置常量

该项目使用了一个集中式的常量文件(src/constants/index.ts)适用于所有配置:

  • Ollama 配置模型设置、基础URL、温度(参数)
  • 可用型号预定义的支持Ollama模型列表
  • 服务器配置端口、主机、日志设置
  • 默认代理配置LangChain代理的默认设置

这种方法提供了:

  • ✅ 集中式配置所有设置集中一处
  • ✅ 表示“正确”或“确认”。 类型安全具有适当类型的 TypeScript 常量
  • ✅ **环境覆盖(或环境重写)**环境变量覆盖默认值
  • ✅ 易于维护在一个地方更改模型或设置

🛠️ 内置工具

1. 计算器工具

执行基本算术运算:

{
  operation: 'add' | 'subtract' | 'multiply' | 'divide',
  a: number,
  b: number
}

2. 文本处理工具

对文本执行各种操作进行处理:

{
  text: string,
  operation: 'uppercase' | 'lowercase' | 'reverse' | 'word_count' | 'char_count'
}

3. 数据验证工具

验证数据是否符合常见模式:

{
  data: string,
  type: 'email' | 'phone' | 'url' | 'ip' | 'uuid'
}

🤖 LangChain智能体集成

该服务器包含一个预配置的LangChain代理,可以使用MCP工具:

import { createLangChainAgent } from '@/agents/langchain-agent';

const agent = await createLangChainAgent({
  modelName: 'gpt-3.5-turbo',
  temperature: 0.7,
  maxTokens: 1000
});

const result = await agent.invoke({
  input: 'Calculate 15 * 23 and convert the result to uppercase'
});

🔄 LangGraph 应用程序

该服务器包含一个用于复杂、有状态工作流的LangGraph应用程序:

import { LangGraphMCPApp } from '@/langraph/langraph-app';

const app = new LangGraphMCPApp();
const result = await app.processMessage(
  'Calculate 25 * 4 and validate if the result is a valid number'
);

📝 添加自定义工具

  1. 创建一个新工具 在 src/tools/:

    export const myCustomTool: MCPTool = {
      name: 'my_custom_tool',
      description: 'Description of what the tool does',
      inputSchema: {
        type: 'object',
        properties: {
          // Define your input schema
        },
        required: ['required_field']
      },
      execute: async (input) => {
        // Implement your tool logic
        return { success: true, data: result };
      }
    };
    
  2. 将其添加到工具数组中 在 src/tools/index.ts:

    export const allTools: MCPTool[] = [
      calculatorTool,
      textProcessorTool,
      dataValidatorTool,
      myCustomTool  // Add your tool here
    ];
    

🧪 测试

# Run the server and test with MCP client
npm run dev

# In another terminal, test the tools
# (You'll need an MCP client for this)

📚 API 参考

MCP服务器方法

  • ListToolsRequestSchema列出所有可用工具
  • CallToolRequestSchema执行特定工具

LangChain 代理

  • createLangChainAgent(config)创建一个新的LangChain代理
  • runAgentExample()运行一个示例代理工作流

LangGraph 应用程序

  • LangGraphMCPApp主应用程序类
  • processMessage(message)通过工作流处理消息
  • getGraph()返回编译后的图以供检查

🔍 调试

通过设置启用调试日志记录:

LOG_LEVEL=debug

服务器提供以下方面的详细日志记录:

  • 工具执行
  • LangChain智能体交互
  • LangGraph工作流程步骤
  • 错误处理

🤝 贡献

  1. 为仓库创建分支(或:克隆仓库)
  2. 创建一个特性分支
  3. 进行你的更改
  4. 如适用,请添加测试
  5. 提交拉取请求

📄 许可证

MIT 许可证 - 详见 LICENSE 文件

🆘 支持

对于问题和疑问:

  1. 检查一下 MCP 文档
  2. 评论 LangChain.js 文档
  3. 检查 LangGraph.js 文档

🎯 下一步行动

  • 添加更多示例工具
  • 实现自定义LangGraph工作流
  • 添加单元测试
  • 建立CI/CD流水线
  • 添加Docker支持
  • 实现身份验证
  • 添加监控和指标