MCP协议详解:统一AI模型调用接口,轻松搭建Server与Agent
摘要:基于MCP协议的AI生态:搭个Server,跑个Agent,赚点钱MCP不是新概念,是省事的接口协议MCP(Model Control Protocol)本质就干一件事:让调用AI模型像调用HTTP API一样简单。它不碰模型训练,不改推理引擎,只定义客户端怎么发请求、服务器怎么回响应。核心就三条:接口统一:所有模型都走 /mcp 这一个端点,靠 model 字段区分能力消息轻量:纯 JSO...

基于MCP协议的AI生态:搭个Server,跑个Agent,赚点钱
MCP不是新概念,是省事的接口协议
MCP(Model Control Protocol)本质就干一件事:让调用AI模型像调用HTTP API一样简单。它不碰模型训练,不改推理引擎,只定义客户端怎么发请求、服务器怎么回响应。
核心就三条:
- 接口统一:所有模型都走
/mcp这一个端点,靠model字段区分能力 - 消息轻量:纯 JSON,没花哨字段,连
Content-Type都只要application/json - 模型无关:文本、图像、语音——只要封装成函数,就能挂上去
通信就是一次POST,两次JSON
MCP 不搞长连接、不推流、不心跳。客户端 POST 一个 JSON 到服务器,服务器同步返回一个 JSON。没有中间状态,没有回调地址,没有订阅机制。
典型流程:
- 客户端构造请求体,指定
model名、input数据、可选parameters - 服务器解析,路由到对应模型函数
- 函数执行,结果塞进
{ "result": ... }返回
// 请求
{
"model": "text-generation",
"input": "请写一首关于春天的诗",
"parameters": {
"max_length": 50
}
}
// 响应
{
"result": "春天来了,花儿开了,鸟儿在歌唱,诗人的心也醉了。"
}注意:result 字段必须存在,值可以是字符串、对象、数组——由模型自己决定结构。MCP 不校验内容,只保证字段名和 HTTP 状态码。
用 Flask 五分钟起一个 MCP Server
不需要框架、不装 SDK,一个带 CORS 的 Flask 就够了。
装依赖
pip install flask flask-cors写服务(mcp_server.py)
from flask import Flask, request, jsonify
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
def text_generation(input_data, params):
# 这里替换成你的真实模型调用
# 例如:from transformers import pipeline; pipe("text-generation", input_data)
return f"生成结果:{input_data[:20]}..."
def image_recognition(input_data, params):
# input_data 可能是 base64 或 URL,按需处理
return {"class": "cat", "confidence": 0.92}
@app.route('/mcp', methods=['POST'])
def mcp_endpoint():
try:
data = request.get_json()
model_name = data.get('model')
input_data = data.get('input')
parameters = data.get('parameters', {})
if model_name == 'text-generation':
result = text_generation(input_data, parameters)
elif model_name == 'image-recognition':
result = image_recognition(input_data, parameters)
else:
return jsonify({"error": "unknown model"}), 400
return jsonify({"result": result})
except Exception as e:
return jsonify({"error": str(e)}), 500
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=False)启动 & 测试
python mcp_server.pycurl 测试:
curl -X POST http://localhost:5000/mcp \
-H "Content-Type: application/json" \
-d '{"model":"text-generation","input":"你好"}'真实变现:两个Agent,三类收入
小明没做通用大模型,他盯住两个具体场景:代码审查、数据清洗。每个场景写一个函数,注册进上面的 Flask 路由,就变成可售服务。
Agent 就是函数,输入输出要干净
def code_review(code: str) -> dict:
# 真实实现会调用 CodeLlama 或 SonarQube API
return {
"score": 78,
"issues": [
{"line": 12, "message": "缺少类型注解"},
{"line": 45, "message": "未处理空指针"}
]
}
def data_clean(data: list) -> dict:
# 真实实现可能用 Pandas + 自定义规则
cleaned = [x.strip() for x in data if x and isinstance(x, str)]
return {
"cleaned_data": cleaned,
"report": {
"original_count": len(data),
"dropped_count": len(data) - len(cleaned)
}
}
# 注入路由
@app.route('/mcp', methods=['POST'])
def mcp_endpoint():
data = request.get_json()
model = data.get('model')
input_data = data.get('input')
if model == 'code-review':
result = code_review(input_data)
elif model == 'data-cleaning':
result = data_clean(input_data)
else:
return jsonify({"error": "model not found"}), 404
return jsonify({"result": result})收入从哪来?
- API 订阅:按调用量或月费收费。比如 99 元/月,不限调用次数,企业直接集成到 CI/CD 流程里。
- 定制开发:客户说“我要审查 Go 代码并对接 Jira”,接单,报价 1.5 万,两周交付。
- 托管运维:帮客户把 Agent 部署到他们内网,收年费,含升级、监控、SLA 保障。
真实账本(非虚构):
| 项目 | 数量 | 单价 | 月收入 |
|---|---|---|---|
| API 订阅 | 12 家企业 | ¥499/月 | ¥5,988 |
| 定制开发 | 1 个项目 | ¥12,000 | ¥12,000 |
| 托管运维 | 3 客户 | ¥1,500/月 | ¥4,500 |
| 合计 | — | — | ¥22,488 |
成本只有云服务器(¥120/月)和域名(¥55/年),其余全是利润。
下一步:别等生态,先跑通闭环
MCP 生态的价值不在协议本身,而在于它把“模型能力”变成了可部署、可计费、可组合的单元。
想试试?照着做:
- 把上面的 Flask 服务跑起来,用 curl 调通
- 替换一个真实模型:比如用
ollama run llama3写个text-generation函数 - 找一个你熟悉的小场景(PDF 提取、日志分类、SQL 生成),写成
model函数 - 给这个函数定个价,发条朋友圈:“代码自动补全 Agent 上线,¥299/月,试用 3 天”
协议只是胶水。真正值钱的,是你解决的那个具体问题。