AI代理工具连接协议

Model Context Protocol (MCP)与LangGraph结合,创建可访问外部工具和服务的AI代理。

  • by petereijgermans11
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 petereijgermans11/mcp-tutorial-java-magazine

使用说明

使用LangGraph的MCP(模型上下文协议)

此项目演示了如何使用 模型上下文协议(MCP) 和 LangGraph 创建可以访问外部工具和服务的AI代理。我们使用 MultiServerMCPClient 从 langchain-mcp-adapters 同时连接到多个MCP服务器。

快速开始

使用Poetry设置此项目

  1. 克隆此存储库:

    git clone https://github.com/petereijgermans11/mcp-tutorial-java-magazine.git
    cd mcp-tutorial-java-magazine
    
  2. 安装诗歌:

    # Simplest method (works on Windows/Mac/Linux)
    pip install poetry
    
    # Official installer (recommended)
    # Windows PowerShell:
    powershell -c "(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -"
    
    # Mac/Linux:
    curl -sSL https://install.python-poetry.org | python3 -
    
  3. 配置Poetry以在项目中创建venv:

    poetry config virtualenvs.in-project true
    
  4. 更新锁文件并安装:

    poetry lock
    poetry install
    
  5. 在VS Code中选择Python解释器:

    • 按 Ctrl+Shift+P (或 Cmd+Shift+P 在Mac上)
    • 键入“Python:选择解释器”
    • 选择 .venv 一个来自你的项目
    • 完成!现在可以正常运行Python文件了。

替代方案:如果需要,使用诗歌运行python your_script.py。

添加新包: 诗歌添加包名称 (无需锁定/安装-诗歌添加会自动完成)

为幻灯片设置Slidev

要开始幻灯片放映,请执行以下操作:

MCP架构

MCP的工作原理

MCP(模型上下文协议) 使AI应用程序能够安全地连接到外部工具和数据源。该架构由三个主要部分组成:

1. MCP服务器 🔧

  • 目的:提供特定的工具和能力
  • 例子:数学运算、天气数据、文件操作、数据库访问
  • 在这个项目中:
    • math_server.py -基本数学运算(add, multiply, divide)
    • weather_server.py -天气信息(get_weather, get_forecast)
    • 外部Office Word服务器-文档创建和编辑

2. MCP客户端 🌉

  • 目的:AI应用程序和MCP服务器之间的桥梁
  • 在这个项目中: MultiServerMCPClient 从 langchain-mcp-adapters
  • 其他示例:Claude Desktop(内置MCP客户端,用于文件访问和网络搜索)
  • 主要特点:
    • 同时连接到多个MCP服务器
    • 聚合来自所有连接服务器的工具
    • 为LangGraph代理提供统一接口

3. MCP主机 🤖

  • 目的:使用MCP工具的AI应用程序
  • 在这个项目中:可以调用MCP工具的LangGraph代理
  • 其他示例:
    • 光标 -集成MCP的AI代码编辑器,用于文件操作
    • 克劳德代码 -具有MCP工具访问权限的AI编码助手
    • 可爱的 -使用MCP进行项目管理的AI开发平台
  • 流动:人类问题→ LangGraph代理→ MCP工具→ 响应

项目范例

此存储库包含几个演示MCP集成的示例:

  • 01_langgraph_agent_no_mcp.py -带本地工具的基本LangGraph代理(无MCP)
  • 02_mcp_stdio_local.py -通过stdio传输与本地MCP服务器连接的LangGraph代理
  • 03_mcp_stdio_external_package.py -通过stdio连接外部MCP包的LangGraph代理(包括FastAPI web界面)

资源