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 天”
協議只是膠水。真正值錢的,是你解決的那個具體問題。