本地赋能AI助手:手把手教你搭建私有MCP服务接入WorkBuddy
一、核心概念:什么是MCP?
二、搭建你的第一个MCP服务:一个加法计算器
1. 环境准备
python --version
2. 安装MCP Python SDK
pip install mcp
3. 编写MCP服务器脚本
# demo_mcp.pyfrom mcp.server.fastmcp import FastMCP# 1. 创建MCP服务实例,为其命名mcp = FastMCP("DemoCalculator")# 2. 使用装饰器定义工具@mcp.tool()def add(a: int, b: int) -> int:"""计算两个整数的和。Args:a: 第一个整数b: 第二个整数"""return a + b# 3. 启动服务(必须指定stdio传输方式,这是与客户端通信的桥梁)if __name__ == "__main__":mcp.run(transport="stdio")
4. (可选)本地测试脚本
pip install "mcp[cli]"mcp dev demo_mcp.py
三、在WorkBuddy中配置你的本地服务


四、进阶实践:接入真实业务(查询本地数据库)
pip install pymysql
import pymysqlimport osfrom mcp.server.fastmcp import FastMCPmcp = FastMCP("LocalDBAssistant")@mcp.tool()def query_users(limit: int = 10) -> str:"""查询用户列表,返回指定数量的用户记录。Args:limit: 需要返回的记录条数,默认为10条。"""# 从环境变量读取敏感信息,更安全db_password = os.getenv("DB_PASSWORD", "default_password") # 优先从环境变量获取conn = pymysql.connect(host='localhost',user='root',password=db_password, # 使用环境变量database='test_db')cursor = conn.cursor()cursor.execute(f"SELECT id, name, email FROM users LIMIT {limit}")results = cursor.fetchall()conn.close()# 将结果格式化为清晰的文本,WorkBuddy会很好地呈现它if not results:return "未找到用户记录。"output_lines = ["查询结果:", "ID | 姓名 | 邮箱", "-"*30]for row in results:output_lines.append(f"{row[0]} | {row[1]} | {row[2]}")return "\n".join(output_lines)if __name__ == "__main__":mcp.run(transport="stdio")
{"DB_PASSWORD": "your_real_database_password_here"}
夜雨聆风
名片关注公众号