langchain-mcp-user-query-demo

langchain-mcp-user-query-demo

A demonstrative MCP server that exposes a query-user tool for retrieving user info by ID, integrated with LangChain for agent-driven model reasoning and tool calls.

Category
访问服务器

README

LangChain MCP User Query Demo

一个基于 Node.js 的 MCP Server 示例项目,演示如何:

  • 使用 @modelcontextprotocol/sdk 创建本地 MCP Server
  • 在 Cursor 等 MCP Client 中挂载本地工具
  • 通过 @langchain/mcp-adapters 让 LangChain 调用 MCP 工具
  • 使用 OpenAI 兼容接口完成“模型思考 -> 工具调用 -> 返回结果”的 Agent 流程

建议仓库名:langchain-mcp-user-query-demo

功能概览

当前示例内置了一个简单的用户数据源,并注册了以下 MCP 能力:

类型 名称 说明
Tool query-user 根据用户 ID 查询用户姓名、邮箱和角色
Resource docs://guide 提供 MCP Server 使用说明

LangChain 示例客户端会启动本地 MCP Server,读取可用工具,并让模型根据用户问题自动决定是否调用 query-user

项目结构

.
├── assets/
│   └── cursor-mcp-setting.png
├── src/
│   ├── my-mcp-server.mjs       # MCP Server,注册工具和资源
│   └── langchain-mcp-test.mjs  # LangChain MCP Client 调用示例
├── package.json
├── pnpm-lock.yaml
└── README.md

环境要求

  • Node.js 18+
  • pnpm
  • Cursor 或其他支持 MCP 的客户端
  • OpenAI 兼容的模型服务

安装依赖

pnpm install

配置环境变量

在项目根目录创建 .env 文件:

MODEL_NAME=your-model-name
OPENAI_API_KEY=your-api-key
OPENAI_BASE_URL=https://your-openai-compatible-endpoint/v1

如果使用官方 OpenAI API,OPENAI_BASE_URL 可以按你的 SDK 配置习惯填写或省略。

在 Cursor 中使用 MCP Server

打开 Cursor 的 MCP 配置,添加本地 server:

{
  "mcpServers": {
    "my-mcp-server": {
      "command": "node",
      "args": [
        "D:/code/agent-node/mcp-server/src/my-mcp-server.mjs"
      ]
    }
  }
}

如果项目路径不同,请把 args 中的路径替换为你本机的 src/my-mcp-server.mjs 绝对路径。

配置示例:

Cursor MCP setting

配置完成后,Cursor 可以在对话中识别并调用 query-user 工具。

通过 LangChain 调用 MCP Server

运行示例客户端:

pnpm start

src/langchain-mcp-test.mjs 的主要流程:

  1. .env 读取模型名称、API Key 和接口地址。
  2. 使用 MultiServerMCPClient 启动并连接本地 MCP Server。
  3. 调用 mcpClient.getTools() 获取 MCP 工具列表。
  4. 使用 model.bindTools(tools) 将工具绑定到模型。
  5. 进入 Agent 循环:模型产生工具调用时执行工具,并把结果追加回消息历史。

默认测试问题是:

查一下用户 002 信息

如果工具调用成功,模型会读取本地示例数据并返回用户信息。

示例数据

MCP Server 当前内置了 3 条用户数据:

用户 ID 姓名 邮箱 角色
001 张三 zhangsan@example.com admin
002 李四 lisi@example.com user
003 王五 wangwu@example.com user

你可以在 src/my-mcp-server.mjs 中替换 database,把它改造成真实数据库、HTTP API 或业务系统查询工具。

常见问题

Cursor 找不到 MCP Server

请检查:

  • command 是否能在终端中直接执行
  • args 是否使用了正确的绝对路径
  • 依赖是否已经通过 pnpm install 安装
  • Node.js 版本是否满足要求

LangChain 示例无法调用模型

请检查:

  • .env 中的 MODEL_NAME 是否可用
  • OPENAI_API_KEY 是否正确
  • OPENAI_BASE_URL 是否与所使用的模型服务匹配

修改项目路径后示例失效

README.mdsrc/langchain-mcp-test.mjs 中都使用了本地绝对路径示例。移动项目后,需要同步更新 MCP Server 的入口路径。

后续可扩展方向

  • 将示例数据替换为数据库查询
  • 增加更多 MCP tools,例如新增用户、搜索订单、查询知识库
  • 将 server 路径改为环境变量,避免硬编码本机路径
  • 为 MCP Server 添加单元测试和集成测试

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选