主要参考资料:
Python实现一个简单的MCP: https://blog.csdn.net/qq_52964132/article/details/147058313?fromshare=blogdetail&sharetype=blogdetail&sharerId=147058313&sharerefer=PC&sharesource=qq_40773212&sharefrom=from_link
MCP,让 AI 再次伟大: https://www.bilibili.com/video/BV1TqXWYnEiw/?spm_id_from=333.337.search-card.all.click&vd_source=ef5b6d43cf1d4ed823db3e9133e97d2d
bilibili-mcp-server: https://github.com/huccihuang/bilibili-mcp-server

简介

在这里插入图片描述

环境准备

Python版本要求
• 推荐Python 3.10+(最低3.8)
• 验证环境:python --version

# 创建虚拟环境
python -m venv mcp-env
source mcp-env/bin/activate  # Linux/Mac
.\mcp-env\Scripts\activate  # Windows

# 安装核心库
pip install mcp mcp[cli]

验证安装:mcp version 应返回1.5.0+版本

基础代码

import os
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("FileSystem")  # 服务名称

@mcp.tool()
def get_desktop_files() -> list:
    """获取当前用户的桌面文件列表(支持Windows/macOS/Linux)"""
    return os.listdir(os.path.expanduser("~/Desktop"))

if __name__ == "__main__":
    mcp.run(transport='stdio')  # 使用标准输入输出通信
  1. 工具注册:@mcp.tool()装饰器将函数注册为MCP工具
  2. 注释规范:函数文档字符串需清晰描述功能,大模型通过此理解工具用途
  3. 类型注解:强制要求参数和返回值的类型声明(如-> list)

进阶功能实现

  • 多工具集成
@mcp.tool()
def calculator(a: float, b: float, operator: str) -> float:
    """执行基础数学运算(支持+-*/)
    
    Args:
        operator: 运算符,必须是'+','-','*','/'之一
    """
    if operator == '+': return a + b
    elif operator == '-': return a - b
    elif operator == '*': return a * b
    elif operator == '/': return a / b
    else: raise ValueError("无效运算符")
  • 资源访问
@mcp.resource("config://app_settings")
def get_app_config() -> dict:
    """获取应用程序配置"""
    return {"theme": "dark", "language": "zh-CN"}
  • 安全控制
@mcp.tool(permissions=["read:/Desktop"])
def safe_file_reader(filename: str) -> str:
    """带权限检查的文件读取工具"""
    desktop_path = os.path.expanduser("~/Desktop")
    target = os.path.join(desktop_path, filename)
    if not os.path.exists(target):
        raise FileNotFoundError("文件不存在")
    return open(target).read()
Logo

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。

更多推荐