MCP協議實戰:手把手教你搭建商業合同解析Agent
摘要:用MCP協議搭個Agent,自動啃下商業合同硬骨頭想用AI自動化處理那些格式雜亂、條款冗長的商業合同?手動復制粘貼公司名、地址、條款到Excel的苦日子該結束了。今天我們就用一個真實的MSC BELGIUM條款片段,手把手教你用MCP協議搭一個能自動解析、提取、驗證合同關鍵信息的智能體。一、痛點:合同里的“臟數據”怎么洗?看看這段標準條款:MSC BELGIUM MEANS MSC BELG...

用MCP協議搭個Agent,自動啃下商業合同硬骨頭
想用AI自動化處理那些格式雜亂、條款冗長的商業合同?手動復制粘貼公司名、地址、條款到Excel的苦日子該結束了。今天我們就用一個真實的MSC BELGIUM條款片段,手把手教你用MCP協議搭一個能自動解析、提取、驗證合同關鍵信息的智能體。
一、痛點:合同里的“臟數據”怎么洗?
看看這段標準條款:
MSC BELGIUM MEANS MSC BELGIUM NV, NOORDERLAAN 127A, 2030 ANTWERP, BELGIUM, INCLUDING ALL ITS BRANCH OFFICES IN BELGIUM.
人工提取很簡單:公司名、地址、國家。但當你面對上百份格式各異的合同(有的地址在前,有的用“即”代替“MEANS”,有的分支機構寫成“及其所有分公司”),手動處理就崩潰了。
MCP協議的價值:它讓AI模型能安全、結構化地調用外部工具。我們的思路是:讓Agent讀取合同文本 → 調用“條款解析插件”提取實體 → 調用“地址驗證API”標準化數據 → 輸出干凈JSON。
二、實戰:開發一個合同解析MCP Server
1. 插件設計思路
我們需要一個MCP Server,提供兩個核心工具:
extract_contract_entities: 接收文本,返回結構化實體validate_address: 調用外部API驗證地址有效性
2. 代碼實現(Python示例)
# contract_parser_server.py
from mcp.server import Server
from mcp.types import Tool, TextContent
import json
import re
server = Server("contract-parser")
@server.tool("extract_contract_entities")
async def extract_entities(text: str) -> TextContent:
"""從合同文本提取公司名、地址、分支機構"""
# 簡單正則匹配(實際項目用NLP模型)
company_pattern = r"([\w\s]+(?:NV|SA|LLC|Ltd)\.?)"
address_pattern = r"(\d+\s+[\w\s]+,\s*\d{4}\s+[\w\s]+,\s*[\w\s]+)"
company = re.search(company_pattern, text)
address = re.search(address_pattern, text)
# 檢測分支機構關鍵詞
has_branches = "branch" in text.lower() or "分公司" in text
result = {
"company_name": company.group(1).strip() if company else None,
"address": address.group(1).strip() if address else None,
"has_branches": has_branches,
"raw_text": text
}
return TextContent(type="text", text=json.dumps(result, ensure_ascii=False))
@server.tool("validate_address")
async def validate_address(address: str) -> TextContent:
"""調用地址驗證API(示例用模擬數據)"""
# 實際項目調用Google Maps/高德API
# 這里模擬驗證邏輯
if "ANTWERP" in address.upper():
validated = {
"original": address,
"standardized": "Noorderlaan 127A, 2030 Antwerpen, Belgium",
"coordinates": {"lat": 51.2601, "lng": 4.4026},
"is_valid": True
}
else:
validated = {"original": address, "is_valid": False, "error": "地址未識別"}
return TextContent(type="text", text=json.dumps(validated, ensure_ascii=False))
if __name__ == "__main__":
server.run()3. 部署步驟
- 安裝依賴:
pip install mcp-server - 啟動Server:
python contract_parser_server.py 在Claude/龍蝦客戶端配置:
{ "mcpServers": { "contract-parser": { "command": "python", "args": ["contract_parser_server.py"] } } }

三、工具集成:讓Agent自己“查戶口”
光提取不夠,關鍵要驗證。我們讓Agent工作流變成:
- 輸入:用戶粘貼合同片段
Agent調用:
- 先調
extract_contract_entities提取原始數據 - 再調
validate_address驗證地址 - 最后調用公司數據庫API(如OpenCorporates)查詢公司狀態
- 先調
- 輸出:完整的結構化數據包
集成公司查詢的代碼擴展:
# 在Server中添加新工具
@server.tool("query_company_database")
async def query_company(company_name: str, country: str) -> TextContent:
"""查詢公司注冊信息"""
# 模擬API調用(實際用requests請求官方商業登記API)
mock_response = {
"company": company_name,
"status": "Active",
"registration_number": "BE0123456789",
"registered_address": "NOORDERLAAN 127A, 2030 ANTWERP",
"last_updated": "2024-11-19"
}
return TextContent(type="text", text=json.dumps(mock_response))四、賺錢場景:這玩意怎么變現?
1. 盡職調查自動化(單客戶年費5-20萬)
- 痛點:律所/投行處理并購案時,需人工核對幾百份合同的主體信息
- 方案:部署合同解析Agent,自動提取所有關聯實體并交叉驗證
- 案例:某深圳跨境并購團隊用類似工具,將3天的人工核對縮短到2小時,錯誤率從15%降至1%
2. 物流信息智能管理(SaaS模式,每月500-3000/用戶)
- 場景:貨代公司每天處理上百份提單、運輸合同
- 功能:自動提取發貨人、收貨人、港口信息,同步到TMS系統
- 數據:上海某貨代公司試用后,單證處理效率提升40%,每月節省1.5個人力成本
3. 合同模板標準化服務(項目制,單次1-5萬)
- 需求:企業法務部需要將歷史合同數據化
- 交付:用MCP Agent批量解析,輸出標準化JSON,導入合同管理系統
- 復制路徑:找到有大量PDF合同的中大型企業,提供“AI合同數字化”解決方案
五、下一步行動清單
技術驗證(今天就能做):
- 復制上面的代碼,本地跑通MCP Server
- 用MSC BELGIUM文本測試,調整正則表達式
場景選擇(本周決定):
- 選一個你熟悉的行業(貨代/律所/貿易公司)
- 找3個真實用戶聊聊他們的合同處理痛點
MVP開發(兩周內):
- 增加PDF解析功能(用PyPDF2)
- 接入一個免費地址驗證API(如OpenStreetMap)
- 打包成可演示的Agent工作流
商業化測試(一個月內):
- 在目標行業社群發案例文章
- 提供免費試用:解析10份合同換用戶反饋
- 定價測試:基礎版999/月,企業定制面議
關鍵點:別追求完美解析率。先解決80%的標準化問題,剩下20%邊緣案例留給人工復核——這才是自動化落地的真實路徑。
附:快速測試命令
# 啟動你的第一個合同解析Agent
git clone https://github.com/your-repo/contract-mcp
cd contract-mcp
pip install -r requirements.txt
python contract_parser_server.py
# 然后在Claude中輸入:“請解析這份合同:MSC BELGIUM MEANS...”