MCP(2):编写和测试第一个Server

Python编写的MCP Server,采用 uvx 工具来管理包依赖,参考《UV安装与使用-CSDN博客》安装环境。

1. 初始化项目

先进入工作目录,利用uv初始化项目:

uv init MCPServer1

进入到项目目录,创建虚拟环境,并激活:

uv venv
.venv\Scripts\activate

# 查看python版本
(base) (MCPServer1) PS D:\MCP\MCPServer1> python -V
Python 3.10.9

安装依赖:

uv add mcp[cli]

注意: 需要设置本地镜像加速,否则很慢

2. 定义Server和tool

编辑main.py文件,修改如下:

from mcp.server.fastmcp import FastMCP
from pydantic import Field

# Initialize FastMCP server
mcp = FastMCP("hello-mcp-server", log_level="ERROR")

# 模拟的数据库
user_database = {
    "001": {"name": "张三", "age": 30, "city": "北京"},
    "002": {"name": "李四", "age": 25, "city": "上海"},
    "003": {"name": "王五", "age": 35, "city": "武汉"},
}

@mcp.tool()
async def get_user_info(user_id: str = Field(description="用户ID")) -> str:
    """查询用户信息。当用户需要根据ID查询用户信息时,调用此工具

    Args:
        user_id: 用户ID

    Returns:
        用户信息的字符串描述
    """
    # 从数据库中获取用户信息
    user_info = user_database.get(user_id, None)

    if user_info:
        return f"用户ID:{user_id}\n姓名:{user_info['name']}\n年龄:{user_info['age']}\n城市:{user_info['city']}"
    else:
        return "未找到该用户的信息"

def main():
    print("Hello from mcpserver1!")
    mcp.run()

if __name__ == "__main__":
    main()

3. 使用MCP Inspector本地测试

通过 mcp dev 启动 MCP Inspector,第一次会提示安装:

(base) PS D:\MCP\MCPServer1> mcp dev main.py
Need to install the following packages:
@modelcontextprotocol/inspector@0.8.2
Ok to proceed? (y) 

启动完成后,会有链接。

点击在浏览器中打开:

点击 connect 连接服务,切换到 tools:

点击List Tools,并进行测试:

至此,Server完成了基本测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值