使用说明
🤖 服务器MCP-具有数学和天气工具的Langgraph代理
🎯 教育目标 :本项目旨在演示如何使用协议 MCP(模型上下文协议) 要将IA代理连接到外部工具,请使用两种类型的传输:
stdio和streamable_http.
基于AI代理的项目 LangChain, LangGraph 和协议 MCP(模型上下文协议),通过MCP服务器将Groq LLM模型连接到外部工具,并通过 朗匠 和 浪伏.
MCP怎么样?
乐 模型上下文协议 是一个开放标准,允许LLM以结构化方式与外部工具(MCP服务器)通信。它定义了代理如何发现、调用和接收远程工具的结果,无论使用何种语言或平台。
本项目说明了两种MCP通信模式:
|运输|用例124本项目中的示例|
|---|---|---|
| stdio |本地工具,由客户启动| mathserver.py |
| streamable_http |远程工具,独立服务器| weather.py |
📁 项目结构
Server_mcp/
├── src/
│ ├── client.py # Agent principal (LangGraph + Groq)
│ ├── mathserver.py # Serveur MCP — outils mathématiques (stdio)
│ └── weather.py # Serveur MCP — outil météo (streamable_http)
├── .env # Clés API (non versionné)
├── .env.example # Modèle de variables d'environnement
├── .gitignore
├── .python-version
├── .venv/
├── pyproject.toml # Configuration du projet
├── requitements.txt
├── uv.lock
└── README.md
⚙️ 先决条件
- Python 3.11+(参见
.python-version) - 紫外线 -软件包管理器(推荐)
- 一个帐户 格罗克 对于LLM API密钥
- 一个帐户 朗匠 pour le追踪
- 一个帐户 浪伏 为了可观察性
🚀 安装
与 uv (推荐)
cd Server_mcp
uv sync
与 pip 经典的
cd Server_mcp
python -m venv .venv
source .venv/bin/activate # Sur Windows : .venv\Scripts\activate
pip install -r requitements.txt
配置环境变量
复制文件 .env.example 并填写以下值:
cp .env.example .env
内容 .env :
# LLM
GROQ_API_KEY=votre_clé_groq_ici
# LangSmith (tracing & évaluation)
LANGCHAIN_TRACING_V2=true
LANGCHAIN_API_KEY=votre_clé_langsmith_ici
LANGCHAIN_PROJECT=server_mcp
# Langfuse (observabilité & analytics)
LANGFUSE_PUBLIC_KEY=votre_clé_publique_langfuse_ici
LANGFUSE_SECRET_KEY=votre_clé_secrète_langfuse_ici
LANGFUSE_HOST=https://cloud.langfuse.com
🧩 建筑
本项目使用两种类型的MCP传输:
| 文件 | 传输 | 启动 |
|---|---|---|
src/mathserver.py |
stdio |
通过客户端自动 |
src/weather.py |
streamable_http |
端口8000手册 |
src/client.py
├── MultiServerMCPClient
│ ├── math (stdio) → src/mathserver.py
│ └── weather (http) → src/weather.py :8000
├── ChatGroq (openai/gpt-oss-120b)
├── create_agent (LangChain)
├── LangSmith ──────────────────────→ smith.langchain.com
└── Langfuse ──────────────────────→ cloud.langfuse.com
📊 可观察性
朗匠
自动跟踪所有代理调用、MCP工具调用和模型响应。可访问 smith.langchain.com 在项目下 server_mcp.
浪伏
提供有关LLM响应的成本、延迟和质量的详细分析。可访问 cloud.langfuse.com.
🛠️ 可用工具
数学服务器(src/mathserver.py)
| 工具 | 描述 | 设置 |
|---|---|---|
add |
加上两个数字 | a: float, b: float |
subtract |
减去两个数字 | a: float, b: float |
天气服务器(src/weather.py)
| 工具 | 描述 | 设置 |
|---|---|---|
get_weather |
返回城市的天气 | location: str |
▶️ 启动项目
步骤1-启动天气服务器(终端1)
source .venv/bin/activate
python src/weather.py
服务器启动于 http://127.0.0.1:8000/mcp
步骤2-启动代理客户端(终端2)
source .venv/bin/activate
python src/client.py
预期结果
Les outils disponibles: ['add', 'subtract', 'get_weather']
La réponse à votre question: (4+5) = 9 et (54-50) = 4
🐛 常见错误
| 错误 | 原因 | 解决方案 |
|---|---|---|
Missing 'transport' key |
Clé transport 配置中不存在 |
添加 "transport": "stdio" 或 "streamable_http" |
SyntaxError: forgot a comma |
print("texte" variable) |
添加逗号: print("texte", variable) |
object dict can't be used in await |
利用率 .invoke() au lieu de .ainvoke() |
替换为 await agent.ainvoke(...) |
streamable-http 无法识别 |
破折号而不是下划线 streamable_http |
|
GitHub推送被阻止 .env 提交密钥 |
撤销密钥,删除 .env Git历史 |
📚 使用的技术
- LangChain -框架法学硕士
- LangGraph -代理人重新行动
- langchain mcp适配器 -MCP集成
- FastMCP -创建MCP服务器
- 格罗克 -超快LLM推理
- 朗匠 -LLM渠道的跟踪和评估
- 浪伏 -可观察性与分析LLM
- 紫外线 -现代软件包管理器
- python dotenv-环境变量的定义
👤 作者
BANE Seydina Mouhamet
