Model Context Protocol (MCP) 是AI Agent连接外部工具的标准协议。Claude、ChatGPT、Cursor、Windsurf都已支持MCP。本文从零教你构建MCP Server。
MCP是AI模型的「USB接口」——任何支持MCP的工具都能直接接入任何支持MCP的AI。
MCP Server暴露三类能力:
mkdir my-mcp-server && cd my-mcp-server
python -m venv venv
source venv/bin/activate
pip install mcp
# server.py
from mcp.server import Server
from mcp.types import Tool, TextContent
import mcp.server.stdio
server = Server("my-server")
@server.list_tools()
async def list_tools() -> list[Tool]:
return [
Tool(
name="hello",
description="向某人打招呼",
inputSchema={
"type": "object",
"properties": {
"name": {"type": "string", "description": "姓名"}
},
"required": ["name"]
}
)
]
@server.call_tool()
async def call_tool(name: str, arguments: dict):
if name == "hello":
return [TextContent(type="text", text=f"你好,{arguments['name']}!👋")]
raise ValueError(f"未知工具: {name}")
async def main():
async with mcp.server.stdio.stdio_server() as (read, write):
await server.run(read, write, server.create_initialization_options())
if __name__ == "__main__":
import asyncio
asyncio.run(main())
npx @modelcontextprotocol/inspector python server.py
// ~/.claude/settings.json
{
"mcpServers": {
"my-server": {
"command": "python",
"args": ["server.py"],
"cwd": "/path/to/my-mcp-server"
}
}
}
我们已经开发了两个MCP工具: