Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

MCP 多服务器聊天系统

基于 MCP (Model Context Protocol) 的多服务器聊天系统,支持同时连接 Node.js、Python 和 HTTP MCP 服务器。

快速开始

1. 安装依赖

# Node.js 依赖
npm install

# Python 依赖
pip install fastmcp

2. 配置环境变量

创建 .env 文件:

# API 配置
API_KEY=your_api_key_here
API_URL=https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
MODEL=qwen-plus
AMAP_KEY=your_amap_key_here

3. 配置 MCP 服务器

编辑 mcp.json:

{
  "mcpServers": {
    "local-tools": {
      "command": "node",
      "args": ["node-mcp-server/index.js"],
      "description": "本地 Node.js MCP 服务器(教学工具)"
    },
    "amap-maps": {
      "url": "https://mcp.amap.com/mcp?key=your_amap_key_here",
      "description": "高德地图 MCP 服务器"
    },
    "python-files": {
      "command": "python",
      "args": ["python-mcp-server/server.py"],
      "description": "Python 文件操作服务器(fast-mcp)"
    }
  }
}

4. 启动

# 运行原始聊天(无 mcp 工具)
npm run chat:raw

# 运行 MCP 聊天(连接 MCP 服务器)
npm run chat:mcp

项目结构

.
├── src/                          # 源代码
│   ├── chat-mcp.js              # MCP 聊天主程序 ⭐
│   ├── chat.js                  # 基础聊天(直接导入工具)
│   ├── rawChat.js               # 原始聊天(无工具)
│   ├── universal-mcp-client.js  # 统一 MCP 客户端
│   └── mcp-loader.js            # MCP 服务器加载器
│
├── node-mcp-server/             # Node.js MCP 服务器
│   ├── index.js                 # 服务器入口
│   └── tools/                   # 工具实现
│       ├── calculate.js         # 数学计算
│       ├── greeting.js          # 问候生成
│       └── timestamp.js         # 时间戳
│
├── python-mcp-server/           # Python MCP 服务器
│   ├── server.py                # 服务器入口 (fast-mcp)
│   ├── requirements.txt         # Python 依赖
│   └── output/                  # 文件输出目录
│
├── mcp.json                     # MCP 服务器配置
├── .env                         # 环境变量
├── package.json                 # Node.js 依赖
└── README.md                    # 本文档

核心文件说明

src/chat-mcp.js - MCP 聊天主程序

使用标准 MCP 协议,支持多服务器工具调用。

功能:

  • 自动加载并连接所有 MCP 服务器
  • 为工具添加服务器名称前缀(避免冲突)
  • 流式输出 AI 响应
  • 工具调用结果解析

src/universal-mcp-client.js - 统一 MCP 客户端

支持多种传输方式的 MCP 客户端。

传输方式:

  • stdio: 本地进程(Node.js、Python)
  • HTTP: 远程服务(高德地图)

src/mcp-loader.js - 服务器加载器

从 mcp.json 加载并连接所有 MCP 服务器。

功能:

  • 读取配置文件
  • 自动连接服务器
  • 为工具添加前缀(serverName:toolName)
  • 工具路由

node-mcp-server/ - Node.js MCP 服务器

教学用 MCP 服务器,演示基础工具实现。

工具:

  • calculate - 数学计算(加减乘除)
  • greeting - 生成问候语
  • get_timestamp - 获取时间戳

python-mcp-server/server.py - Python MCP 服务器

基于 fast-mcp 的文件操作服务器。

工具:

  • write_file - 写入文件
  • read_file - 读取文件
  • list_files - 列出文件
  • delete_file - 删除文件

可用工具

本地简单工具 (local-tools 使用 JavaScript 实现)

local-tools:calculate    - 数学计算
local-tools:greeting     - 生成问候语
local-tools:get_timestamp - 获取时间戳

高德地图工具 (amap-maps)

amap-maps:amap_search_text  - 关键词搜索
amap-maps:amap_search_around - 周边搜索
amap-maps:amap_weather       - 天气查询
amap-maps:amap_direction      - 路径规划

Python 文件工具 (python-files)

python-files:write_file  - 写入文件
python-files:read_file   - 读取文件
python-files:list_files  - 列出文件
python-files:delete_file - 删除文件

对话示例

You: 帮我算 25 * 4

AI: 🔧 调用工具: local-tools:calculate
     ✅ 通过 local-tools 执行
     计算结果: 25 × 4 = 100

---

You: 创建一个 test.txt 文件,内容是 "Hello MCP"

AI: 🔧 调用工具: python-files:write_file
     ✅ 通过 python-files 执行
     ✅ 文件写入成功: .../output/test.txt

---

You: 搜索北京附近的咖啡馆

AI: 🔧 调用工具: amap-maps:amap_search_text
     ✅ 通过 amap-maps 执行
     找到了 20 家咖啡馆...

配置说明

环境变量 (.env)

变量 说明 示例
API_KEY AI 服务密钥 sk-xxx
API_URL AI 服务端点 https://...
MODEL 使用的模型 qwen-plus
AMAP_KEY 高德地图密钥 your_key

MCP 服务器配置 (mcp.json)

字段 stdio 类型 HTTP 类型
command 启动命令 -
args 命令参数 -
url - 服务地址
description 服务器描述 服务器描述

扩展开发

添加新的 Node.js 工具

  1. 在 node-mcp-server/tools/ 创建工具文件
  2. 在 node-mcp-server/tools/index.js 导出
  3. 重启聊天程序

添加新的 Python 工具

  1. 在 python-mcp-server/server.py 添加 @mcp.tool() 装饰的函数
  2. 重启聊天程序

添加新的 MCP 服务器

在 mcp.json 添加配置:

{
  "my-server": {
    "command": "node",  // 或 "url": "http://..."
    "args": ["path/to/server.js"],
    "description": "我的 MCP 服务器"
  }
}

技术栈

  • Node.js: MCP 客户端和服务器
  • Python: fast-mcp 服务器
  • @modelcontextprotocol/sdk: MCP 官方 SDK
  • fast-mcp: Python MCP 快速开发框架
  • zod: 参数验证

相关文档

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages