MCP入门(基于Python)
Python版本要求• 推荐Python 3.10+(最低3.8)• 验证环境:python --version# 创建虚拟环境# 安装核心库验证安装:mcp version 应返回1.5.0+版本。
主要参考资料:
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') # 使用标准输入输出通信
- 工具注册:@mcp.tool()装饰器将函数注册为MCP工具
- 注释规范:函数文档字符串需清晰描述功能,大模型通过此理解工具用途
- 类型注解:强制要求参数和返回值的类型声明(如-> 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()

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