python开发mcp入门

先把准备工作做好

1:安装uv

官网安装 :https://docs.astral.sh/uv/getting-started/installation/
pip安装: pip install uv

2:安装node

初始化项目

uv init mcp-server-demo
cd mcp-server-demo
uv add "mcp[cli]"

编写代码 mcp_server.py 别叫mcp,因为跟包名冲突了,md。。。。

from mcp.server.fastmcp import FastMCP
from pathlib import Path
import sys
import json

# Create an MCP server
mcp = FastMCP("Demo", debug=True, log_level="DEBUG")

# Add an addition tool
@mcp.tool(name="add", description="计算两数之和")
def add(a: int, b: int) -> int:
    """计算两数之和"""
    return a + b


# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    """Get a personalized greeting"""
    print(f"DEBUG: get_greeting called with name={name}", file=sys.stderr)
    return f"Hello, {name}!"


# Add a prompt
@mcp.prompt()
def greet_user(name: str, style: str = "friendly") -> str:
    """生成一个个性化的问候"""
    styles = {
        "friendly": "Please write a warm, friendly greeting",
        "formal": "Please write a formal, professional greeting",
        "casual": "Please write a casual, relaxed greeting",
    }

    return f"{styles.get(style, styles['friendly'])} for someone named {name}."

# "获取用户桌面的文件列表
@mcp.resource("dir://desktop")
def desktop() -> list[str]:
    """获取用户桌面的文件列表"""
    print("DEBUG: desktop resource called", file=sys.stderr)
    try:
        desktop_path = Path.home() / "Desktop"
        # 检查路径是否存在
        if not desktop_path.exists():
            return [f"错误: 桌面路径不存在 - {desktop_path}"]
        # 返回文件列表
        return [str(f) for f in desktop_path.iterdir()]
    except Exception as e:
        return [f"获取文件列表失败: {str(e)}"]

# 以stdio模式启动MCP服务器
def main() -> None:
    # 处理标准输入的资源请求
     mcp.run()
  

if __name__ == "__main__":
    main()

方式1:启动测试服务--这里需要node环境

mcp dev mcp_server.py

你写的tool、resource、prompt都可以看到

image

方式2:当作自定义mcp添加到cline、trae、CodeBuddy等这种工具里面。别用垃圾trae,只能识别tool,无法识别resource、prompt

uv --directory D:\code\python run mcp_server.py

{
  "mcpServers": {
   "mysql2": {
      "command": "uv",
      "args": [
        "--directory",
        "D:\\code\\python\\",
        "run",
        "mcp_server.py"
      ]
    }
  }
}

image
image

posted @ 2025-09-09 16:55  朝阳1  阅读(107)  评论(0)    收藏  举报