MCP服务器与LangGraph集成

一个集成了LangGraph的MCP服务器,提供网络搜索、文本处理、骰子滚动和笑话生成等功能,适用于智能工作流编排。

  • by kchia
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 kchia/AIE8-MCP-Session

使用说明

AI创客空间:第13次会议的MCP会议资料库

这个项目展示了一个集成了LangGraph的MCP(模型上下文协议)服务器,利用Tavily API实现网页搜索功能以及其他有用工具。

项目概述

MCP服务器提供了多种工具,并与LangGraph应用程序集成,以实现智能工作流编排。

先决条件

  • Python 3.13 或更高版本
  • 有效的Tavily API密钥
  • 一个有效的OpenAI API密钥

⚠️Windows 注意事项:⚠️

你需要在这个(设备/系统)上安装它 Windows 你操作系统的一侧。

这将需要获取两个适用于PowerShell的命令行界面(CLI)工具,您可以按照以下步骤操作:

  • winget install astral-sh.uv
  • winget install --id Git.Git -e --source winget

安装完这些命令行界面(CLI)工具后,请打开Cursor 转换为Windows。

然后,您可以在Cursor终端中使用以下命令克隆该仓库:

git clone https://AI-Maker-Space/AIE8-MCP-Session.git

之后,您可以继续按照步骤2进行。在......下面

安装

  1. 克隆仓库:

    git clone <repository-url>
    cd <repository-directory>
    
  2. 配置环境变量: 复制 .env.sample 到 .env 并添加您的API密钥:

    TAVILY_API_KEY=your_tavily_api_key_here
    OPENAI_API_KEY=your_openai_api_key_here
    
  3. 设置环境:

    uv run python setup_env.py
    

运行MCP服务器

要启动MCP服务器,您需要在Cursor中的MCP配置文件里添加以下内容:

注:要访问您的MCP配置,您可以使用命令面板(CMD/CTRL+SHIFT+P),然后选择“视图:打开MCP设置”,并用以下JSON数据替换其中的内容。

{
    "mcpServers":  {
        "mcp-server": {
            "command" : "uv",
            "args" : ["--directory", "/PATH/TO/REPOSITORY", "run", "server.py"]
        }
    }
}

服务器将启动并通过标准输入/输出监听命令。

活动:

🏗️ 活动#1:✅ 已完成

选择一个你喜欢使用的API,并为其构建一个MCP服务器!

MCP服务器功能:

  • 使用Tavily API进行网页搜索
  • 使用自定义标记的骰子滚动
  • 文本处理工具
  • 随机老爸笑话

🏗️ 活动#2:✅ 已完成

构建一个简单的LangGraph应用程序,与您的MCP服务器进行交互。

简单解决方案:

  • langgraph_simple_final.py - 完整的LangGraph应用程序
  • setup_env.py - 环境设置辅助脚本
  • SIMPLE_SOLUTION.md - 完整的文件资料

快速入门:

# 1. Set up environment
uv run python setup_env.py

# 2. Add your OpenAI API key to .env file
# 3. Run the application
uv run python langgraph_simple_final.py

# Or run interactive mode
uv run python langgraph_simple_final.py --interactive

特点:

  • ✅ 单一文件解决方案 - 所有内容都在一个Python文件中
  • ✅ 由大型语言模型(LLM)驱动 使用OpenAI GPT-4o-mini及API密钥
  • ✅ 所有MCP工具均已集成 - 网络搜索,掷骰子,文本处理,讲笑话
  • ✅ 自动工具选择 - 大语言模型(LLM)根据输入选择合适的工具
  • ✅ 交互模式 - 与系统进行实时对话
  • ✅ 类型安全的状态管理 - 使用 TypedDict 以提高可靠性

建筑:

  • 处理用户输入的单一LangGraph节点
  • 直接MCP函数导入(无需处理子进程复杂性)
  • LangChain工具绑定,实现无缝集成
  • OpenAI API集成以实现智能回复

用法

LangGraph应用程序为所有MCP服务器工具提供了一个智能界面。只需运行该应用程序并要求它:

  • 在网上搜索信息
  • 使用自定义标记掷骰子
  • 处理文本(大写、小写、反转等)
  • 告诉你个笑话

大型语言模型(LLM)将自动选择合适的工具,并根据您的请求提供智能回复。

附加文件

测试

  • test_server.py - MCP服务器的综合测试脚本
    • 直接测试所有MCP功能
    • 通过子进程通信测试MCP服务器
    • 运行于: uv run python test_server.py

高级功能

  • dice_roller_numpy.py - 使用NumPy的高级骰子掷骰工具
    • 在处理大量骰子时性能更佳
    • 卷材的统计分析
    • 支持复杂记号(例如,“3d8+2”,“1d20-1”)
    • 与以下一起运行: uv run python dice_roller_numpy.py

项目结构

AIE8-MCP-Session/
├── langgraph_simple_final.py    # Main LangGraph application
├── setup_env.py                 # Environment setup helper
├── server.py                    # MCP server (Activity #1)
├── dice_roller.py              # Basic dice rolling utility
├── dice_roller_numpy.py        # Advanced NumPy dice roller
├── test_server.py              # Test script for MCP server
├── pyproject.toml              # Dependencies
├── README.md                   # Main documentation
├── SIMPLE_SOLUTION.md          # Simple solution guide
└── uv.lock                     # Lock file