Python-MCPInspector调试V2 (Python)
Python-MCPInspector调试V2 (Python)文章目录Python-MCPInspector调试V2 (Python)前置要求快速开始项目结构已注册的能力Tools工具Resources资源Prompts提示词模板使用 Inspector 调试接入 Claude Desktop生产环境注意事项全量代码2026-07-29-基于 Model Context Protocol (MCP) 的演示服务端Python 版支持 Tools、Resources、Prompts 三大核心能力。MCPInspector调试参考https://blog.csdn.net/2301_77717148/article/details/147881127当前代码github代码仓库地址https://gitee.com/enzoism/python_mcp_inspector前置要求Python ≥ 3.10pip ≥ 21快速开始# 1. 进入项目目录cdmcp-demo-server-py# 2. 创建虚拟环境推荐python-mvenv .venvsource.venv/bin/activate# Linux/macOS# .venv\Scripts\activate # Windows# 3. 安装依赖pipinstall-rrequirements.txt# 或pipinstallmcp# 4. 运行服务python src/server.py项目结构mcp-demo-server-py/ ├── pyproject.toml # 项目配置可选用于打包 ├── requirements.txt # 依赖列表 ├── src/ │ └── server.py # MCP 服务端主代码 └── README.md # 说明文档已注册的能力Tools工具工具名描述参数get_weather获取指定城市天气city: strcalculate安全计算数学表达式expression: strget_current_time获取当前系统时间无Resources资源资源名URI描述app_settingsconfig://app/settings应用配置信息JSONreadmefile://docs/readme项目说明文档Prompts提示词模板模板名描述参数code_review代码审查code,languageerror_analysis错误分析error,context使用 Inspector 调试npx modelcontextprotocol/inspector python src/server.py接入 Claude Desktop在 Claude Desktop 配置文件~/Library/Application Support/Claude/claude_desktop_config.json中添加{mcpServers:{demo-server-py:{command:python,args:[/absolute/path/to/mcp-demo-server-py/src/server.py]}}}注意使用绝对路径且确保 Python 环境已安装mcp包。生产环境注意事项安全性严格校验所有入参限制文件读取目录禁用eval等危险方法性能优化所有工具函数使用async避免阻塞事件循环可维护性工具、资源描述清晰具体完善错误提示版本兼容依托 SDK 自动完成协议版本协商全量代码 MCP Demo Server (Python) 基于 mcp Python SDK 实现支持 Tools、Resources、Prompts 三大核心能力。 frommcp.server.fastmcpimportFastMCP# 初始化 MCP 服务实例mcpFastMCP(demo-server)# # 1. 注册工具能力天气查询、数学计算、时间获取# mcp.tool()asyncdefget_weather(city:str)-str:获取指定城市的当前天气信息 Args: city: 城市名称如 北京 mock_data{北京:{temp:22°C,weather:晴,humidity:45%},上海:{temp:25°C,weather:多云,humidity:60%},深圳:{temp:28°C,weather:阵雨,humidity:80%},}datamock_data.get(city)ifdata:returnf城市:{city}\n温度:{data[temp]}\n天气:{data[weather]}\n湿度:{data[humidity]}returnf未找到城市 {city} 的天气数据mcp.tool()asyncdefcalculate(expression:str)-str:安全地计算数学表达式 Args: expression: 数学表达式如 2 3 * 4 allowed_charsset(0123456789-*/().% )ifnotall(cinallowed_charsforcinexpression):return错误表达式包含不允许的字符try:# 使用受限的 eval 环境只允许数学运算resulteval(expression,{__builtins__:{}},{})returnstr(result)exceptExceptionase:returnf计算错误{e}mcp.tool()asyncdefget_current_time()-str:获取当前系统时间fromdatetimeimportdatetime nowdatetime.now()returnnow.strftime(%Y-%m-%d %H:%M:%S)# # 2. 注册资源能力应用配置读取、本地文件读取# mcp.resource(config://app/settings)asyncdefapp_settings()-str:获取应用配置信息importjson config{app_name:Demo MCP Server,version:1.0.0,features:{weather:True,calculator:True,file_reader:True},max_file_size_mb:10,}returnjson.dumps(config,indent2,ensure_asciiFalse)mcp.resource(file://docs/readme)asyncdefreadme()-str:项目说明文档return这是一个基于 MCP 协议的演示服务端Python版支持天气查询、数学计算、代码审查等功能。# # 3. 注册提示词模板代码审查、错误分析# mcp.prompt()defcode_review(code:str,language:strpython)-str:代码审查提示词 Args: code: 待审查的代码 language: 编程语言默认为 python return(f请对以下{language}代码进行审查f从代码质量、潜在Bug、性能、安全性、最佳实践五个维度给出评价和优化建议\nf{language}\n{code}\n)mcp.prompt()deferror_analysis(error:str,context:str)-str:错误分析提示词 Args: error: 错误信息或堆栈跟踪 context: 相关上下文代码 promptf请分析以下错误信息给出可能的原因和解决方案\n\n错误信息\n\n{error}\nifcontext:promptf\n\n相关代码\n\n{context}\nreturnprompt# # 启动服务采用 stdio 本地传输模式# if__name____main__:mcp.run(transportstdio)**