目录

MCP 实战:把你的本地服务变成 AI Agent 的工具

为什么 Agent 需要 MCP?

想象你是老板,想雇一个全能的 AI 助手帮你管服务器。问题来了:助手很聪明,但不会开服务器——它看不到你的服务,也没法操作。

MCP(Model Context Protocol)就是给 AI 装上手的标准协议:把本地服务的 API 包装成 AI 能看懂、能调用的工具列表。2025 年 Anthropic 开源后,已经成为 Agent 生态的事实标准。

一个例子:把你的服务接进 MCP

假设你有个 MoviePilot 媒体服务器,想让它变成 AI 能操作的"找片助手"。

第一步:写一个 MCP 服务器(Python 示例)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
from mcp.server.fastmcp import FastMCP

# 创建一个 MCP 服务器,名字叫 "media"
mcp = FastMCP("media")

@mcp.tool()
def search_movie(title: str) -> str:
    """按标题搜索电影,返回片名、年份、评分"""
    # 这里调用 MoviePilot 的 HTTP API
    result = moviepilot_api.search(title)
    return str(result)

if __name__ == "__main__":
    # 用 stdio 模式跑起来,AI 通过标准输入输出调用
    mcp.run()

第二步:给 AI 配置这个工具(Claude Code / Hermes 示例)

1
2
3
4
5
6
7
8
{
  "mcpServers": {
    "media": {
      "command": "python",
      "args": ["mcp_server.py"]
    }
  }
}

第三步:直接跟 AI 说“帮我找一部 2024 年的高分科幻片”——AI 会自动调用 search_movie 工具,而不是瞎编一个答案。

MCP 能做什么?常见能力一览

能力 场景示例 对应 MCP 功能
查数据 查数据库、查天气、查股票 @mcp.tool() 只读工具
改状态 重启服务、发邮件、下单 @mcp.tool() 写操作
读文件 读代码库、读笔记 @mcp.resource() 资源
导航 给 AI 一个"欢迎页"说明 @mcp.prompt() 提示词

开源方案怎么选?

方案 语言 适合场景 GitHub
FastMCP(官方) Python 快速写 MCP 服务,推荐入门 github.com/modelcontextprotocol/python-sdk
MCP SDK (TS) TypeScript Node 生态项目 github.com/modelcontextprotocol/typescript-sdk
MCP Inspector 任意 调试 MCP 服务 随 SDK 附带
mcp-proxy Go 把 REST API 快速转 MCP github.com/sparfenyuk/mcp-proxy

怎么选:项目是 Python 写的 → FastMCP;Node/TS 项目 → TS SDK;只有一个现成 REST API → 直接用 mcp-proxy 包一层,5 分钟搞定。

实战踩坑

  1. stdio vs HTTP 模式:本地单机用 stdio(简单安全);远程/多客户端用 HTTP(需鉴权)
  2. 工具描述要写清楚:AI 靠 """docstring""" 理解工具用途,描述模糊 AI 就不会调用
  3. 参数越少越好:超过 5 个参数的工具,AI 容易传错
  4. 注意权限:给 Agent 的写操作工具,一定要先想清楚它会不会误删东西

下一步

接好 MCP 后,你的 AI 助手就真的"能干活"了。可以试试让它每天自动汇报服务器状态,或者帮你管理订阅——真正的 Agent 自动化从接上工具开始。