文章总结: 本文介绍MCP模型协作协议,阐述其通过客户端-服务端架构实现AI模型与外部工具的标准化交互。文章解析核心架构,提供高德地图集成、漏洞扫描等实战案例及安全应用。建议开发者复用社区服务,重视安全配置,合理选择部署模式以提升效率。 综合评分: 85 文章分类: AI安全,安全工具,安全运营,漏洞分析,爬虫
纯享笔记:22/ MCP基础入门及安全应用
原创
heyong
AI安全圈
2026年1月6日 08:24 安徽
★
计划花费20~30篇幅,来做一套人工智能笔记,纯享版。内容涉及的产品细节不一定是最新的,但忠于实验记录,方便网络安全或其他行业的同学快速地了解AI技术,起到短、平、快的作用。
摘要
MCP是一种开放式跨平台协议标准,通过客户端-服务端架构实现AI模型与外部环境的标准化交互,核心解决大模型“能力扩展”与“工具复用”问题。 本文结合最新技术进展,系统梳理MCP的核心概念、技术架构、实战案例及安全领域应用,帮助开发者快速上手MCP开发与部署。
一、MCP核心概述
1.1 定义与核心价值
(1)定义
Model Collaboration Protocol(模型协作协议) ——是一套规范AI模型与外部工具、系统、数据交互的开放式协议,旨在打破不同框架、模型、工具之间的兼容性壁垒,实现“一次开发、多端复用”的工具调用生态。
(2)核心价值
- 标准化接口:统一模型与工具的交互格式,避免重复开发(如LangChain、千问Agent、Cursor可共用同一MCP服务);
- 跨平台兼容:支持云端模型(OpenAI、Anthropic)、国产模型(通义千问、智谱清言、豆包)、本地模型(Llama 4、Qwen3);
- 生态化复用:ModelScope等社区提供海量现成MCP服务(如高德地图、Bing搜索、漏洞扫描),开发者可直接集成;
- 安全可控:权限分级、数据加密、操作审计等特性,以适配企业级隐私需求。
1.2 与相关技术的区别
(1)MCP vs Function Call
| 特性 | MCP(模型协作协议) | Function Call(函数调用) | | — | — | — | | 定位 | 跨平台标准化协议(公共服务) | 模型原生能力(私有函数) | | 复用性 | 支持多模型、多框架共用 | 仅支持特定模型调用(如GPT-4o、Qwen3) | | 开发难度 | 低(基于SDK快速搭建,支持可视化配置) | 中(需手动编写函数逻辑与参数校验) | | 适用场景 | 工具标准化、生态化共享(如公开API服务) | 本地私有工具调用(如企业内部系统对接) |
(2)MCP vs AtoA协议
| 特性 | MCP(模型协作协议) | AtoA(Agent-to-Agent协议) | | — | — | — | | 核心交互对象 | 模型 ↔ 工具/系统 | 智能体 ↔ 智能体 | | 核心目标 | 扩展模型能力(工具调用) | 实现智能体协作(任务分工) | | 生态定位 | 工具市场(类似应用商店) | 协作网络(类似群聊) | | 最新进展 | 支持多模态工具、边缘部署、安全审计 | 推出1.0正式版,支持Agent Card标准化、跨框架协作 |
1.3 社区动态
- 版本更新:MCP 4.0发布,支持流式传输、断点续传、多模态数据交互(文本+图片+日志);
- 国产适配:新增华为云ModelArts、阿里云PAI、百度飞桨等国产平台原生支持;
- 安全增强:内置OAuth2.0授权、数据脱敏传输、操作审计日志,满足等保2.0合规要求;
- 部署优化:支持Docker容器化部署、K8s集群调度、边缘设备轻量化运行(如安全网关);
- 生态扩展:ModelScope社区MCP服务数量突破500+,新增网络安全、工业控制等垂直领域专用服务。
二、核心技术架构与组件
2.1 整体架构
MCP采用经典的“客户端-服务端”架构,核心分为三层:
┌─────────────────┐ ┌─────────────────────────────────┐ ┌─────────────────┐
│ 客户端(Client) │ │ 服务端(Server) │ │ 外部资源(Resource) │
│ - 模型框架(LangChain) │◄────►│ - MCP Server(协议解析、路由) │◄────►│ - 工具(搜索、扫描) │
│ - 智能体(千问Agent) │ │ - 权限管理(认证、授权) │ │ - 系统(SAP、CRM) │
│ - 开发工具(Cursor) │ │ - 数据处理(加密、脱敏) │ │ - 数据(数据库、文件) │
└─────────────────┘ └─────────────────────────────────┘ └─────────────────┘
2.2 核心组件详解
(1)MCP Server(核心组件)
- 功能:协议解析、请求路由、权限校验、数据加密、日志记录;
- 主流实现:FastMCP(轻量级,支持Python/Java)、OpenMCP(开源,支持分布式部署);
- 关键特性:支持HTTP/HTTPS、WebSocket、gRPC等传输协议,2025年新增QUIC协议支持(低延迟)。
(2)Client(客户端)
-
类型:
-
模型框架客户端:LangChain-MCP Adapter、千问Agent-MCP插件;
-
开发工具客户端:Cursor、CherryStudio、VS Code(GitHug Copilot);
-
自定义客户端:基于MCP SDK开发的私有客户端(如企业内部AI平台);
-
核心能力:自动发现MCP服务、生成标准化请求、解析响应结果。
(3)Resource(外部资源)
- 工具类:搜索工具(Bing、百度)、数据采集(Fetch Web)、地理信息(高德地图)、安全工具(漏洞扫描、日志分析);
- 系统类:企业ERP、CRM、SAP、数据库(MySQL、Milvus);
- 数据类:本地文件、云端存储(OSS、S3)、公开API(NVD漏洞库、天气API)。
(4)Memory(记忆模块)
- 短期记忆:存储近期工具调用结果(默认Redis,支持本地缓存);
- 长期记忆:存储历史交互数据(支持Chroma、Milvus向量数据库);
三、环境准备与安装
3.1 环境要求
- Python版本:3.10-3.14(推荐3.12,兼容最新MCP SDK);
- 依赖管理:支持pip、Poetry、Pipenv;
- 网络要求:访问ModelScope社区需联网,本地部署MCP服务可离线运行。
3.2 核心安装命令
# 安装MCP核心SDK
pip install mcp-sdk==4.0.0
# 安装FastMCP(轻量级服务端)
pip install fastmcp==2.1.0
# 安装ModelScope MCP客户端(用于访问社区服务)
pip install modelscope[mcp]==1.16.0
# 安装安全依赖(数据加密、审计日志)
pip install mcp-security==1.0.0
# 安装部署依赖(Docker容器化)
pip install mcp-deploy==0.8.0
3.3 平台注册与API Key申请
(1)ModelScope社区注册
- 访问ModelScope官网,完成实名认证;
- 进入“MCP广场”,选择目标MCP服务(如高德地图MCP);
- 点击“立即连接”,生成专属SSE URL(含个人认证信息)。
(2)高德地图MCP API Key申请
- 访问高德地图开放平台,注册开发者账号;
- 创建应用,选择“Web服务”类型;
- 开通“地图搜索”“路径规划”等接口,获取API Key。
四、实战案例:MCP服务集成与自定义开发
4.1 案例1:集成高德地图MCP实现旅游攻略规划
(1)配置步骤(以Cursor为例)
- 打开Cursor → Settings → MCP → 点击“Add Server”;
- 配置参数:
- Name:高德地图MCP;
- Type:SSE;
- Command:
amap-maps; - Args:
--base-url https://restapi.amap.com/v3 --key ${AMAP_API_KEY}; - Environment:
AMAP_API_KEY=你的高德API Key;
- 保存配置,等待服务状态变为“绿色(可用)”。
(2)使用示例
# 调用高德地图MCP生成青岛一日游攻略
from langchain_community.chat_models import ChatQwen
from langchain_community.tools import MCPTool
# 初始化千问模型
llm = ChatQwen(model="qwen-turbo-2025", temperature=0)
# 加载高德地图MCP工具
amap_tool = MCPTool.from_modelscope("amap-maps")
# 构建任务链
task = """使用高德地图MCP查询青岛必去景点、实时天气、交通路线,生成详细的一日游攻略,包含时间安排、交通方式、景点介绍。"""
# 执行任务
result = llm.invoke(task, tools=[amap_tool])
print(result)
(3)注意事项
- API Key需妥善保管,避免硬编码到代码中(建议使用环境变量或配置文件);
- 限制API调用频率(高德地图个人开发者每日限额5000次);
- 生产环境建议使用代理服务器转发请求,避免直接暴露客户端IP。
4.2 案例2:集成Fetch MCP实现owasp网页内容采集
(1)配置步骤(以CherryStudio为例)
- 打开CherryStudio → 左下角“设置” → MCP服务器 → “添加”;
- 选择“ModelScope MCP”,粘贴从ModelScope获取的Fetch MCP SSE URL;
- 启动服务,确认状态为“已连接”。
(2)使用示例
使用Fetch MCP采集OWASP Top 10 2025官方文档(https://owasp.org/www-project-top-ten/2025/),转换为Markdown格式,并提取高危漏洞类型。
(3)常见问题
- 动态网页采集失败:Fetch MCP仅支持静态网页,动态网页需使用带Selenium的MCP服务(如Selenium-Fetch MCP);
- 爬虫协议限制:部分网站(如百度)通过robots.txt禁止抓取,需提前确认合规性。
4.3 案例3:自定义MCP服务(桌面TXT文件统计工具)
(1)开发步骤
- 基于FastMCP创建服务:
from fastmcp import FastMCP, Tool
from pathlib import Path
import os
# 初始化MCP服务
mcp_server = FastMCP(host="0.0.0.0", port=8000)
# 定义工具1:统计桌面TXT文件数量
@Tool(name="count_desktop_txt_files", description="统计桌面上的TXT文件数量")
def count_desktop_txt_files() -> int:
desktop_path = Path.home() / "Desktop"
txt_files = list(desktop_path.glob("*.txt"))
return len(txt_files)
# 定义工具2:列出桌面TXT文件列表
@Tool(name="list_desktop_txt_files", description="列出桌面上所有TXT文件的路径")
def list_desktop_txt_files() -> list:
desktop_path = Path.home() / "Desktop"
txt_files = list(desktop_path.glob("*.txt"))
return [str(file) for file in txt_files]
# 注册工具到MCP服务
mcp_server.register_tool(count_desktop_txt_files)
mcp_server.register_tool(list_desktop_txt_files)
# 启动服务(支持HTTPS,需配置证书)
mcp_server.start(ssl_cert="cert.pem", ssl_key="key.pem")
- 启动服务:
# 开发模式启动(带调试日志)
mcp dev --file txt_counter.py --debug
# 生产模式启动(后台运行)
nohup mcp start --file txt_counter.py --port 8000 &
- 客户端集成(千问Agent):
from qwen_agent import Agent
from qwen_agent.tools import MCPTool
# 加载自定义MCP服务
custom_mcp = MCPTool(url="https://localhost:8000")
# 初始化千问Agent
agent = Agent(llm="qwen-turbo-2025", tools=[custom_mcp])
# 执行任务
result = agent.run("统计我桌面上的TXT文件数量,并列出具体文件名")
print(result)
(2)部署与共享
- 本地部署:直接运行Python脚本,通过
http://localhost:8000访问; - 公网部署:使用Docker容器化,配置端口映射(如80→8000),并申请SSL证书;
- 生态共享:上传至ModelScope MCP广场,设置访问权限(公开/私有)。
4.4 案例4:AtoA协议与MCP协同实战(天气+篮球活动规划)
(1)场景说明
- Weather Agent:通过高德地图MCP获取天气数据,提供天气查询服务;
- Basketball Agent:接收用户活动规划请求,通过AtoA协议调用Weather Agent,根据天气判断是否开展活动。
(2)核心代码
# 1. 定义Weather Agent(集成高德地图MCP)
from fastmcp import FastMCP
from qwen_agent import Agent
weather_mcp = MCPTool.from_modelscope("amap-weather")
weather_agent = Agent(
role="天气查询助手",
goal="通过MCP获取实时天气,为用户提供活动建议",
tools=[weather_mcp],
a2a_card={ # AtoA协议必需的能力声明卡片
"name": "weather-agent",
"version": "1.0",
"functions": ["query_weather(city: str, date: str)"]
}
)
# 2. 定义Basketball Agent(通过AtoA调用Weather Agent)
basketball_agent = Agent(
role="篮球活动规划助手",
goal="根据天气情况规划篮球活动",
a2a_clients=[weather_agent] # 注册AtoA客户端
)
# 3. 执行用户请求
result = basketball_agent.run("我想5月10号在青岛打篮球,帮我看看是否合适?")
print(result)
五、安全应用
5.1 典型安全MCP服务
| MCP服务名称 | 核心功能 | 适用场景 | | — | — | — | | NVD漏洞查询MCP | 实时查询CVE漏洞详情、CVSS评分、修复建议 | 漏洞应急响应、安全审计 | | 日志分析MCP | 解析Web日志、系统日志,提取异常行为 | 入侵检测、安全监控 | | 端口扫描MCP | 扫描目标网段开放端口、服务版本 | 资产探测、渗透测试 | | 威胁情报MCP | 查询IP/域名的恶意等级、关联攻击组织 | 威胁溯源、钓鱼邮件分析 |
5.2 示例:漏洞应急响应MCP集成
# 集成NVD漏洞查询MCP与端口扫描MCP
from qwen_agent import Agent
from langchain_community.tools import MCPTool
# 加载安全类MCP服务
nvd_mcp = MCPTool.from_modelscope("nvd-vuln-query")
port_scan_mcp = MCPTool.from_modelscope("port-scan")
# 初始化漏洞应急响应Agent
vuln_agent = Agent(
role="漏洞应急响应专家",
goal="探测目标资产漏洞,生成合规修复方案",
tools=[port_scan_mcp, nvd_mcp],
memory={"long_term": "chroma://vuln-memory"} # 长期记忆存储漏洞历史数据
)
# 执行任务
result = vuln_agent.run("探测192.168.1.0/24网段的开放端口,查询对应服务的高危漏洞,生成修复方案(符合OWASP Top 10 2025)")
print(result)
六、趋势研判
- 核心趋势
- 垂直领域MCP爆发:网络安全、工业互联网、医疗健康等领域将出现更多专用MCP服务;
- 低代码/无代码开发:CherryStudio、ModelScope Studio支持可视化配置MCP,无需编写代码;
- 边缘MCP部署:轻量级MCP服务将部署在边缘设备(如安全网关、工业控制器),降低延迟;
- AI原生MCP:支持大模型自动发现、适配MCP服务,无需手动配置。
- 实践建议
- 优先复用现有MCP服务:ModelScope社区已提供大量成熟服务,避免重复开发;
- 重视安全配置:生产环境必须启用HTTPS、权限认证、数据加密,禁止裸奔部署;
- 合理选择部署模式:私有工具采用本地部署,公开工具采用云端MCP服务;
- 优化性能:高频调用的MCP服务启用缓存(如Redis),降低响应延迟;
- 兼容性测试:开发自定义MCP服务时,需兼容主流客户端(LangChain、千问Agent)。
七、总结
MCP作为AI模型与外部环境交互的标准化协议,已成为大模型能力扩展的核心基础设施。对于网络安全领域开发者而言,MCP不仅可以快速集成漏洞查询、日志分析、端口扫描等工具,还能通过AtoA协议实现多智能体协作,大幅提升安全运营效率。
★
以上均为实验匆匆记录,然后AI整理和修订,错误之处,请在文末留言,谢谢! 深入交流请加知识星球【AI安全圈】或者【AI自动化】
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:AI安全圈 heyong《纯享笔记:22/ MCP基础入门及安全应用》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。












评论