MCP_Server的创建

1.安装uv工具
1.1 uv命令使用
  • uv python list 查看所有的已安装的python软件包
  • uv python install 3.13 --install-dir “E://…” 安装指定版本到指定目录
  • PS E:\project2025\mcp_server> uv init . -p 3.13 在项目目录中初始化mcp_server
  • uv add “mcp[cli]” 安装mcp软件包
  • E:\project2025\brooal_mcp_demo> uv init . --package -p 3.13 打包项目以供上传,命名要唯一brooal_mcp_demo
  • E:\project2025\brooal_mcp_demo> uv publish --token pypi-AgEIcHlwa…InIA 通过pypi给的API token发布pypi
  • pip install brooal-mcp-demo 安装发布的项目
2.创建MCP服务
2.1 编写main.py文件
# server.py
from mcp.server.fastmcp import FastMCP

# Create an MCP server
mcp = FastMCP("Demo")


# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers""" //这里的文字用来告诉大模型这个函数的作用
    return a + b


# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    """Get a personalized greeting"""
    return f"Hello, {name}!"

if __name__ == "__main__":
    mcp.run(transport='stdio') //这是指定mcp的协议stdio
2.2 将MCP_Server改成SSE协议

将 mcp.run(transport=‘stdio’) 中的studio改成sse: mcp.run(transport=‘sse’),启动本地程序运行,使用AI客户端远程调用本地的mcp服务

复制运行端口:http://127.0.0.1:8000

2.3 将MCP_Server改成StreamableHttp协议

将 mcp.run(transport=‘stdio’) 中的studio改成StreamableHttp: mcp.run(transport=‘streamable-http’),启动本地程序运行,使用AI客户端远程调用本地的mcp服务,后续和SSE相同

3.AI客户端连接mcp服务
3.1 CherryStudio

模型选择:右下角设置->模型服务->硅基流动->点击这里获取密钥->注册账号->点击API密钥>新建API密钥,复制密钥到模型服务的API密钥中

在这里插入图片描述

  • 打开左下角设置按钮

  • 点击MCP服务器,如果右上角导航栏有红色三角形警告需要先安装CherryStudio内置的uv

  • 点击添加服务器->快速创建

  • 类型选择“标准输入/输出(stdio)”->命令填写

    填写uv(包管理源:默认)

    参数:

    --directory
    E:\project2025\mcp_server(mcp服务项目的地址)
    run
    main.py(mcp中的main.py)
    

    若使用pypi中的mcp_server项目,填写uvx

    参数:

    brooal-mcp-demo(即上传到pypi的包名)
    
  • 若使用的是sse协议,类型选择sse,URL填写部署的MCP服务 :http://127.0.0.1:8000/sse

  • 若使用的是Streamable Http协议,类型选择StreamableHttp,URL填写部署的MCP服务 :http://127.0.0.1:8000/mcp

    stdio和sse的区别

    stdio:将MCP_Server下载到本地,然后本地运行

    sse:MCP_Server服务单独部署,AI客户端通过SSE远程调用

    Streamable Http:原理和SSE相同

  • 保存

  • 点击对话界面,选择MCP服务器
    在这里插入图片描述

  • 开始对话,大模型选择使用MCP服务进行计算

4.MCP_Server服务发布
4.1 Studio协议,打包成python包,上传到PyPi上,使用uvx命令下载包后本地运行:
  • 创建pypi账户获取API token

  • 创建本地项目目录(命名唯一):brooal_mcp_demo,使用uv命令打包:uv init . --package -p 3.13

  • 本地项目编写brooal_mcp_demo/src/init.py文件内容:

    # server.py
    from mcp.server.fastmcp import FastMCP
    
    # Create an MCP server
    mcp = FastMCP("Demo")
    
    
    # Add an addition tool
    @mcp.tool()
    def add(a: int, b: int) -> int:
        """Add two numbers"""
        return a + b
    
    
    # Add a dynamic greeting resource
    @mcp.resource("greeting://{name}")
    def get_greeting(name: str) -> str:
        """Get a personalized greeting"""
        return f"Hello, {name}!"
    
    # 这里不使用__name__ = "__main__"
    def main() -> None:
            mcp.run(transport='stdio')//指定为stdio形式
    
  • 项目地址下,使用token上传项目到pypi:uv publish --token pypi-AgaWFfbn…InIA

  • 上传成功,使用uvx通过包名brooal-mcp-demo,即可下载到本地运行

4.2 SSE协议,部署到云服务器上,暴露出公网链接供其他人使用
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐