Token导航 LogoToken导航

MCP Server · 地图位置

Multi Server MCP Architecture

一个演示项目,展示如何创建和使用多个模型上下文协议(MCP)服务器,结合LangChain和Google的Gemini AI模型,实现数学运算和基于位置的天气查询功能。

stdio官方级别未说明来源级核验工具 3
数学运算位置天气Python

快速开始

作者 / 组织
naakaarafr
提供方
naakaarafr

工具数量

3

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Multi Server MCP Architecture 属于地图位置类 MCP Server,公开资料标注 3 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 API Key。

分类

地图位置

传输方式

stdio

认证方式

API Key

部署方式

公开资料未说明

安装与配置

安装命令

pip install langchain-mcp-adapters langgraph langchain-google-genai python-dotenv mcp

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 3 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

多服务器MCP架构

一个演示项目,展示如何使用LangChain和谷歌的Gemini AI模型创建和使用多个模型上下文协议(MCP)服务器。该项目实现了两个MCP服务器——一个用于算术运算的数学服务器和一个用于基于位置的天气查询的天气服务器。

概述

该项目展示了:

  • 使用FastMCP创建MCP服务器
  • 将多个MCP服务器连接到单个客户端
  • 使用不同的传输协议(stdio和HTTP)
  • 将MCP工具与LangChain代理集成
  • 利用谷歌的Gemini 2.0 Flash模型进行人工智能响应

建筑

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   client.py     │    │   mathserver.py  │    │ weatherserver.py│
│                 │    │                  │    │                 │
│ ┌─────────────┐ │    │ ┌──────────────┐ │    │ ┌─────────────┐ │
│ │ LangChain   │ │    │ │ FastMCP      │ │    │ │ FastMCP     │ │
│ │ Agent       │ │    │ │ Math Tools   │ │    │ │ Weather API │ │
│ │             │◄┼────┼►│ - add()      │ │    │ │ - get_weather│ │
│ │ Gemini 2.0  │ │    │ │ - multiply() │ │    │ │             │ │
│ │ Flash       │ │    │ └──────────────┘ │    │ └─────────────┘ │
│ └─────────────┘ │    │                  │    │                 │
└─────────────────┘    │ Transport: stdio │    │ Transport: HTTP │
                       └──────────────────┘    └─────────────────┘

先决条件

  • Python 3.8+
  • Gemini的Google API密钥
  • 必需的Python包(请参阅安装)

安装

  1. 克隆存储库:
git clone https://github.com/naakaarafr/Multi-Server-MCP-Architecture.git
cd Multi-Server-MCP-Architecture
  1. 安装所需的软件包:
pip install langchain-mcp-adapters langgraph langchain-google-genai python-dotenv mcp
  1. 设置环境变量:

创建一个 .env 项目根目录中的文件:

GOOGLE_API_KEY=your_google_api_key_here

获取Google API密钥:

项目结构

Multi-Server-MCP-Architecture/
│
├── client.py           # Main client that connects to MCP servers
├── mathserver.py       # MCP server for math operations
├── weatherserver.py    # MCP server for weather queries
├── .env               # Environment variables (Google API key)
├── LICENSE            # MIT License
└── README.md          # This file

文件描述

客户端.py

主要客户端应用程序:

  • 配置并连接到多个MCP服务器
  • 使用Gemini 2.0 Flash设置LangChain代理
  • 通过示例查询演示工具用法
  • 处理每台服务器的不同传输协议

数学服务器.py

提供数学运算的简单MCP服务器:

  • add(a, b):将两个整数相加
  • multiply(a, b):将两个整数相乘
  • 使用stdio传输进行通信

weatherserver.py

模拟天气MCP服务器:

  • get_weather(location):返回某个位置的天气信息
  • 使用HTTP传输进行通信
  • 返回用于演示的模拟响应

用法

启动服务器

数学服务器(stdio传输)由客户端自动启动。对于天气服务器,您有两个选项:

选项1:让客户处理 (如果使用兼容的MCP客户端): 客户端将尝试自动启动天气服务器。

选项2:手动启动 (推荐):

# In a separate terminal
python weatherserver.py

运行客户端

python client.py

客户将:

  1. 连接到两个MCP服务器
  2. 执行一个数学查询:“什么是(3+5)x 12?”
  3. 执行一个天气查询:“加利福尼亚州的天气怎么样?”
  4. 显示结果

期望输出

Math response: To calculate (3 + 5) x 12, I need to first add 3 and 5, then multiply by 12.

First: 3 + 5 = 8
Then: 8 × 12 = 96

Therefore, (3 + 5) x 12 = 96

Weather response: According to the weather service, it's always raining in California.

传输协议

本项目演示了两种MCP传输协议:

STDIO传输(mathserver.py)

  • 通过标准输入/输出进行通信
  • 适用于本地基于流程的服务器
  • 由客户端自动管理

HTTP传输(weatherserver.py)

  • 通过HTTP请求进行通信
  • 适用于基于网络的服务器
  • 需要手动启动服务器或进行服务管理

定制

添加新的数学运算

要向数学服务器添加新的数学运算,请执行以下操作:

@mcp.tool()
def subtract(a: int, b: int) -> int:
    """Subtract b from a"""
    return a - b

@mcp.tool()
def divide(a: float, b: float) -> float:
    """Divide a by b"""
    if b == 0:
        raise ValueError("Cannot divide by zero")
    return a / b

创建真实天气集成

用真正的API替换mock weather函数:

import requests

@mcp.tool()
async def get_weather(location: str) -> str:
    """Get real weather data for a location"""
    api_key = "your_weather_api_key"
    url = f"http://api.openweathermap.org/data/2.5/weather?q={location}&appid={api_key}"
    
    response = requests.get(url)
    data = response.json()
    
    if response.status_code == 200:
        temp = data['main']['temp'] - 273.15  # Convert from Kelvin to Celsius
        description = data['weather'][0]['description']
        return f"Weather in {location}: {temp:.1f}°C, {description}"
    else:
        return f"Could not get weather for {location}"

添加更多服务器

要添加其他MCP服务器,请更新客户端配置:

client = MultiServerMCPClient({
    "math": {
        "command": "python",
        "args": ["mathserver.py"],
        "transport": "stdio",
    },
    "weather": {
        "url": "http://localhost:8000/mcp",
        "transport": "streamable_http",
    },
    "newserver": {
        "command": "python",
        "args": ["newserver.py"],
        "transport": "stdio",
    }
})

故障排除

常见问题

  1. Google API密钥错误:

- 确保您的 .env 文件包含有效 GOOGLE_API_KEY - 检查API密钥是否具有必要的权限

  1. 气象服务器连接失败:

- 确保天气服务器正在运行 http://localhost:8000/mcp - 检查端口冲突

  1. 未找到数学服务器:

- 确保 mathserver.py 与位于同一目录中 client.py - 检查文件权限

  1. 模块导入错误:

- 验证是否安装了所有必需的软件包 - 检查Python版本兼容性

调试模式

要启用更详细的日志记录,请将以下内容添加到您的客户端:

import logging
logging.basicConfig(level=logging.DEBUG)

贡献

为该项目做出贡献:

  1. 分叉存储库
  2. 创建要素分支
  3. 添加您的改进
  4. 彻底测试
  5. 提交拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

仓库

github:

资源

后续步骤

考虑通过以下方式扩展此项目:

  • 向服务器添加身份验证
  • 实现错误处理和重试逻辑
  • 为客户端创建web界面
  • 添加更复杂的工具和服务器
  • 实施服务器健康检查和监控

工具与能力

工具数量

3

资源数量

0

提示词数量

0

能力标签

MCP服务器Python本地部署LangChain集成GeminiAI数学运算天气查询

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

地址与坐标转换

把地址转成经纬度,或按坐标反查位置。

路线与距离

算行程时间、规划多点路线。

天气与出行

查天气和预警,按条件安排行程。

选择建议

值得选的地方

  • 只提供 3 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 需要自备API Key,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在地图位置场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到API Key的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Multi Server MCP Architecture

MCP World · 本页

3stdio有1 个2026-05-17
Baidu Maps

MCP World

10stdio有1 个2026-05-17
MCP Server C2f246e3

MCP World

20stdio有1 个2026-05-17
OpenStreetMap MCP Server

MCP.so

12stdio有3 个2026-05-17
Google Maps (google-maps-aa2563d3)

MCP World

7未说明未标注1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Multi Server MCP Architecture 怎么安装?

公开资料给出的安装命令是 pip install langchain-mcp-adapters langgraph langchain-google-genai python-dotenv mcp,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Multi Server MCP Architecture 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Multi Server MCP Architecture 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Multi Server MCP Architecture 需要 API Key 吗?

公开资料标注的认证方式是API Key,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Multi Server MCP Architecture 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP