返回市场
python-mcp示例

python-mcp示例

作者:Azure-Samples61 星标更新:2025-10-23

项目介绍

Python MCP 示例

这是一个使用FastMCP展示Model Context Protocol(MCP)实现的演示项目,包括stdio、HTTP传输示例以及与LangChain和Agent Framework的集成。

目录

前置条件

  • Python 3.13或更高版本
  • uv
  • 访问以下任一API:
    • GitHub模型(GitHub令牌)
    • Azure OpenAI(Azure凭证)
    • Ollama(本地安装)
    • OpenAI API(API密钥)

设置

  1. 使用uv安装依赖:
uv sync
  1. 复制.env-sample.env并配置环境变量:
cp .env-sample .env
  1. 编辑.env文件以添加您的API凭证。通过设置API_HOST选择以下提供者之一:
    • github - GitHub模型(需要GITHUB_TOKEN
    • azure - Azure OpenAI(需要Azure凭证)
    • ollama - 本地Ollama实例
    • openai - OpenAI API(需要OPENAI_API_KEY

Python脚本

运行任何脚本:uv run <脚本名称>

  • basic_mcp_http.py - 在8000端口上使用HTTP传输的MCP服务器
  • basic_mcp_stdio.py - 用于VS Code集成的stdio传输MCP服务器
  • langchainv1_mcp_http.py - 集成MCP的LangChain代理
  • langchainv1_m_gh.py - 使用GitHub MCP的LangChain工具过滤演示(需要GITHUB_TOKEN
  • openai_agents_tool_filtering.py - 使用Microsoft Learn MCP的OpenAI Agents SDK工具过滤演示
  • agentframework_mcp_learn.py - 集成MCP的Microsoft Agent Framework

MCP服务器配置

与MCP Inspector一起使用

MCP Inspector是一个用于测试和调试MCP服务器的开发者工具。

注意: 虽然HTTP服务器可以通过Codespaces/Dev Containers进行端口转发,但MCP Inspector和调试器连接的设置并不简单。为了获得最佳开发体验和完整的调试功能,我们建议在本地运行此项目。

对于stdio服务器:

npx @modelcontextprotocol/inspector uv run basic_mcp_stdio.py

对于HTTP服务器:

  1. 启动HTTP服务器:
uv run basic_mcp_http.py
  1. 在另一个终端中运行检查器:
npx @modelcontextprotocol/inspector http://localhost:8000/mcp

检查器提供了一个Web界面来:

  • 查看可用的工具、资源和提示
  • 使用自定义参数测试工具调用
  • 检查服务器响应和错误
  • 调试服务器通信

与GitHub Copilot一起使用

.vscode/mcp.json文件配置了用于GitHub Copilot集成的MCP服务器:

可用服务器:

  • expenses-mcp:用于生产使用的stdio传输服务器
  • expenses-mcp-debug:在5678端口上带有debugpy的stdio服务器
  • expenses-mcp-http:位于http://localhost:8000/mcp的HTTP传输服务器
  • expenses-mcp-http-debug:在5679端口上带有debugpy的stdio服务器

切换服务器:

通过在聊天面板中选择工具图标来配置GitHub Copilot使用的服务器。

调试

调试配置

.vscode/launch.json提供了四个调试配置:

启动配置(带调试启动服务器)

  1. 启动MCP HTTP服务器(调试)

    • 直接启动basic_mcp_http.py并附带调试器
    • 最适合:独立测试和LangChain脚本调试
  2. 启动MCP stdio服务器(调试)

    • 直接启动basic_mcp_stdio.py并附带调试器
    • 最适合:测试stdio通信

连接配置(连接到正在运行的服务器)

  1. 连接到MCP服务器(stdio) - 端口5678

    • 连接到通过mcp.json中的expenses-mcp-debug启动的服务器
    • 最适合:在GitHub Copilot聊天使用期间调试
  2. 连接到MCP服务器(HTTP) - 端口5679

    • 连接到通过mcp.json中的expenses-mcp-http-debug启动的服务器
    • 最适合:在Copilot使用期间调试HTTP服务器

调试工作流程

方案1:启动并调试(独立)

使用此方法进行MCP Inspector或LangChain脚本的调试:

  1. basic_mcp_http.pybasic_mcp_stdio.py中设置断点
  2. Cmd+Shift+D打开“运行和调试”
  3. 选择“启动MCP HTTP服务器(调试)”或“启动MCP stdio服务器(调试)”
  4. F5或点击绿色播放按钮
  5. 连接MCP Inspector或运行您的LangChain脚本来触发断点
    • 对于HTTP:npx @modelcontextprotocol/inspector http://localhost:8000/mcp
    • 对于stdio:npx @modelcontextprotocol/inspector uv run basic_mcp_stdio.py(先不带调试器启动)

方案2:连接到正在运行的服务器(Copilot集成)

  1. 在您的MCP服务器文件中设置断点
  2. 通过mcp.json配置启动调试服务器:
    • 选择expenses-mcp-debugexpenses-mcp-http-debug
  3. Cmd+Shift+D打开“运行和调试”
  4. 选择适当的“连接到MCP服务器”配置
  5. F5连接
  6. 在GitHub Copilot聊天工具中选择正确的费用MCP服务器
  7. 使用GitHub Copilot聊天触发MCP工具
  8. 调试器会在断点处暂停

许可证

MIT