第3章 MCP协议
MCP协议理论基础
Section titled “MCP协议理论基础”MCP的诞生背景
Section titled “MCP的诞生背景”在AI大模型快速发展的2023—2024年间,一个核心矛盾日益凸显:大模型拥有强大的推理与生成能力,却无法直接访问外部工具和数据源------它像一位博学但足不出户的学者,无法查阅实时汇率、操作电子表格、驱动浏览器。各AI平台纷纷推出自己的”工具调用”方案,但彼此互不兼容:
-
OpenAI 推出 Function Calling,仅适用于 GPT 系列模型
-
Anthropic 推出 Tool Use,仅适用于 Claude 系列模型
-
各家IDE(Cursor、Windsurf、Copilot)各自定义工具接入方式
-
开发者为每个AI平台重复编写工具适配代码,维护成本极高
2024年11月,Anthropic 正式发布 Model Context Protocol(MCP),一种开放标准,旨在统一”AI模型与外部工具/数据源”之间的通信方式。MCP 的核心理念可以类比于USB接口------在USB出现之前,键盘、鼠标、打印机各有专用接口;USB统一了物理层与协议层后,任意设备只需一根线缆即可连接。
MCP发布后迅速获得行业响应:2025年3月,OpenAI宣布ChatGPT和Agents SDK支持MCP协议;Google Gemini、Microsoft Azure AI Services等平台紧随其后。截至2026年,已有超过1000个开源MCP连接器,覆盖数据库、浏览器、办公软件、开发工具等几乎全部常见场景。
三层架构详解
Section titled “三层架构详解”MCP协议采用经典的三层架构,每一层各司其职,通过标准化接口实现层间解耦:
┌─────────────────────────────────────────────────────────────┐│ 第1层:MCP Client(宿主 IDE) ││ TRAE / Qoder / Cursor / Claude Desktop ││ 职责:接收用户意图 → 决定调用哪个 MCP 工具 │├─────────────────────────────────────────────────────────────┤│ 第2层:MCP Server(工具方进程) ││ 如 mcp-server-fetch / @playwright/mcp / stata-mcp ││ 职责:暴露 tools 列表 → 接收调用请求 → 返回结果 │├─────────────────────────────────────────────────────────────┤│ 第3层:真实工具 / 外部系统 ││ 浏览器 / Excel / Word / Stata / 数据库 / Web API ││ 职责:实际执行操作(打开页面、写入文件、跑回归等) │└─────────────────────────────────────────────────────────────┘↕ JSON-RPC over stdio / SSE下面逐层深入解析:
第1层:MCP Client(宿主进程)
Client 是AI模型的”大本营”,运行在IDE或桌面应用中。它的核心职责包括:
-
工具发现:启动时向每个已配置的Server发送
tools/list请求,获取可用工具的名称、参数、描述 -
意图路由:根据用户输入,AI模型决定调用哪个工具------这一步依赖Tool Schema中的描述信息
-
请求构造:将AI的调用意图转化为标准JSON-RPC请求
-
结果呈现:接收Server返回的结果,嵌入AI的上下文窗口,生成最终回复
常见的Client包括:TRAE、Qoder、Cursor、Claude Desktop、VS Code + Copilot等。用户只需在Client的配置文件(mcp.json)中声明要加载哪些Server,Client便在启动时自动建立连接。
第2层:MCP Server(工具方进程)
Server是连接AI与真实工具的”桥梁”。每个Server是一个独立进程,通过stdin/stdout或HTTP与Client通信。它的核心职责包括:
-
Schema声明:Server启动时向Client注册自己提供的工具清单,每个工具包含名称、参数JSON Schema、文字描述
-
请求处理:接收Client发来的
tools/call请求,解析参数 -
工具调用:将解析后的参数映射为对真实工具的操作指令
-
结果封装:将真实工具的输出封装为标准JSON-RPC响应返回给Client
Server的实现语言不限------Python、TypeScript、Go均可,只要遵循MCP协议规范即可。例如 @playwright/mcp 用TypeScript编写,mcp-server-fetch 用Python编写。
第3层:真实工具/外部系统
这一层是实际执行操作的实体:浏览器引擎(Chromium)、办公软件(Excel/Word/PPT)、统计软件(Stata)、数据库(PostgreSQL)、Web API等。Server通过各自的方式驱动这些工具------例如Playwright Server通过CDP协议驱动Chromium,Excel Server通过Python库openpyxl操作xlsx文件。
核心设计思想:
-
解耦:Client不需要知道工具如何实现,只需知道工具的schema(输入/输出格式)
-
可插拔:新增一个MCP Server只需在mcp.json中加一段配置,无需修改IDE代码
-
标准化:所有Server都用相同的JSON-RPC协议通信,AI模型学会一种调用方式即可操作所有工具
JSON-RPC 2.0通信协议详解
Section titled “JSON-RPC 2.0通信协议详解”MCP协议的通信层基于JSON-RPC 2.0规范------一种轻量级的远程过程调用协议。理解其消息格式,有助于调试MCP通信问题。
请求(Request)
Section titled “请求(Request)”Client向Server发送的调用请求,包含三个必填字段:
{ "jsonrpc": "2.0", "method": "tools/call", "params": {```json"name": "browser_navigate","arguments": {"url": "https://www.cmbchina.com"}}, “id”: 1 }
- `jsonrpc`:固定为`"2.0"`,标识协议版本
- `method`:要调用的方法名,MCP定义了`tools/list`、`tools/call`等标准方法
- `params`:方法参数,包含工具名称和输入参数
- `id`:请求标识符,用于将响应与请求配对
#### 响应(Response)
Server处理完请求后返回的结果:
```json{ "jsonrpc": "2.0", "result": {“content”: [ { “type”: “text”, “text”: “Page loaded: https://www.cmbchina.com” }, { “type”: “image”, “data”: “base64_encoded_image_data…”, “mimeType”: “image/png” } ]
}, "id": 1}响应中的content数组支持多种类型:text(文本)、image(图片)、resource(资源引用)。这一设计使得MCP可以传递截图、文件等富媒体内容。
通知(Notification)
Section titled “通知(Notification)”不需要响应的单向消息,如进度通知、日志输出:
{ "jsonrpc": "2.0", "method": "notifications/progress", "params": {“progressToken”: “task-123”, “progress”: 50, “total”: 100
}}通知没有id字段,Server发送后不期待Client回复。这在长时间运行的任务(如大文件处理)中用于报告进度。
错误处理(Error)
Section titled “错误处理(Error)”当Server无法完成请求时,返回错误响应:
{ "jsonrpc": "2.0", "error": {“code”: -32602, “message”: “Invalid params”, “data”: { “tool”: “browser_navigate”, “missing_param”: “url” }
}, "id": 1}JSON-RPC 2.0定义了标准错误码:-32700(解析错误)、-32600(无效请求)、-32601(方法不存在)、-32602(无效参数)、-32603(内部错误)。MCP在此基础上可以扩展自定义错误码。
一次MCP调用的完整生命周期
Section titled “一次MCP调用的完整生命周期”当你在TRAE中输入「请用playwright打开百度并截图」时,背后发生了什么?
用户输入 → AI 大模型推理↓① AI 识别意图,决定调用 playwright MCP 的 screenshot 工具↓② Client 向 Server 发送 JSON-RPC 请求:{"jsonrpc": "2.0", "method": "tools/call","params": {"name": "browser_screenshot","arguments": {"url": "https://baidu.com"}},"id": 1}↓③ Server 接收请求 → 调用 Chromium 浏览器打开网页 → 截图↓④ Server 返回 JSON-RPC 响应:{"jsonrpc": "2.0", "result": {"content": [{"type": "image","data": "base64..."}]}, "id": 1}↓⑤ Client 将截图展示给用户,AI 继续生成文字回复下面对每一步进行更详细的解释:
步骤①:意图识别与工具选择
AI模型接收到用户输入后,首先在自己的工具清单中搜索匹配的工具。这个清单是在Client启动时通过tools/list请求从各个Server获取的。AI根据每个工具的name和description字段判断哪个工具最合适。例如,“打开网页”匹配browser_navigate,“截图”匹配browser_screenshot。
步骤②:请求构造
AI确定要调用的工具及参数后,Client将调用意图转化为标准JSON-RPC请求。参数值由AI根据用户输入和Tool Schema中的参数定义自动填充。
步骤③:Server端处理
Server收到请求后,首先验证参数是否符合Tool Schema定义------类型是否匹配、必填参数是否齐全。验证通过后,Server将参数映射为对真实工具的操作指令。以Playwright为例,Server调用Chromium的CDP协议打开指定URL的页面,等待加载完成,执行截图操作。
步骤④:结果封装与返回
Server将真实工具的输出封装为JSON-RPC响应。截图操作的结果是一张PNG图片,Server将其进行Base64编码后放入content数组的image类型条目中。
步骤⑤:结果呈现与上下文更新
Client收到响应后,将结果内容注入AI的上下文窗口。对于图片,Client将其显示在对话界面;对于文本,AI将其纳入后续推理的参考信息。此时AI可以继续生成文字回复,解释截图内容或建议下一步操作。
| 概念 | 说明 |
|---|---|
| Tool Schema | 每个MCP Server启动时向Client声明自己有哪些工具(名称、参数、描述),AI据此决定何时调用 |
| JSON-RPC 2.0 | 轻量远程过程调用协议,MCP固定使用此格式;一个请求 = 一个method + params + id |
| stdio / SSE | 传输层:本地MCP用标准输入输出(stdio),远程MCP用Server-Sent Events(SSE) |
| 工具发现 | Client启动时向每个Server发tools/list请求,获取可用工具清单 |
Tool Schema与工具发现机制
Section titled “Tool Schema与工具发现机制”Tool Schema是MCP协议中最重要的元数据结构。每个MCP Server在启动时,会向Client声明自己提供的工具清单,每个工具的声明格式如下:
{ "name": "browser_navigate", "description": "Navigate to a URL in the browser", "inputSchema": {“type”: “object”, “properties”: { “url”: { “type”: “string”, “description”: “The URL to navigate to” } }, “required”: [“url”]
}}其中:
-
name:工具的唯一标识符,Client在调用时使用此名称 -
description:自然语言描述,AI模型据此判断何时该调用此工具------描述的质量直接影响AI的工具选择准确性 -
inputSchema:JSON Schema格式的参数定义,声明参数的名称、类型、是否必填
工具发现的完整流程如下:
-
Client启动,读取
mcp.json配置文件,获取所有Server的启动命令 -
Client逐一启动Server进程,通过stdio/SSE建立连接
-
Client向每个Server发送
tools/list请求 -
Server返回自己提供的所有工具的Schema声明
-
Client将所有工具的Schema汇总后注入AI的上下文
-
AI在后续对话中,根据这些Schema决定何时调用哪个工具
stdio vs SSE传输层对比
Section titled “stdio vs SSE传输层对比”MCP协议支持两种传输层,适用于不同场景:
| 特性 | stdio | SSE(Server-Sent Events) |
|---|---|---|
| 通信方式 | 标准输入/输出流 | HTTP长连接 |
| 适用场景 | 本地MCP Server | 远程MCP Server |
| 启动方式 | Client直接启动Server子进程 | Server独立运行,Client连接URL |
| 跨网络 | 不支持 | 支持 |
| 配置示例 | "command": "npx", "args": [...] | "url": "http://localhost:4000/mcp" |
| 延迟 | 极低(本地IPC) | 较高(网络往返) |
| 安全性 | 本地隔离,天然安全 | 需要认证与加密 |
| 典型应用 | 本机安装的工具MCP | 云端API、远程数据库MCP |
本课程使用的8组MCP均采用stdio传输,因为所有工具都运行在本机。但在企业级应用中,SSE传输更为常见------例如银行内部部署的MCP网关,可以通过SSE将数据库查询能力安全地暴露给AI。
MCP生态全景
Section titled “MCP生态全景”支持MCP的主流平台
Section titled “支持MCP的主流平台”截至2026年,已有超过1000个开源MCP连接器。主流支持平台包括:
-
Anthropic:Claude Desktop、Claude Code
-
OpenAI:ChatGPT、Agents SDK、Responses API
-
Google:Gemini SDK
-
Microsoft:Azure AI Services
-
开发工具:Zed、Replit、Codeium、Sourcegraph
-
国产IDE:腾讯CodeBuddy、通义灵码、字节TraeCN、百度Comate等均已支持MCP协议
这种跨平台支持意味着:你为一个Client编写的MCP Server,无需修改即可在所有支持MCP的平台上使用------这是标准化的真正力量。
常见MCP市场
Section titled “常见MCP市场”| 市场 | 网址 | 说明 |
|---|---|---|
| 官方注册表 | https://github.com/modelcontextprotocol/servers | MCP协议作者维护的reference servers + community servers列表 |
| Smithery | https://smithery.ai | 最活跃的第三方MCP市场,支持一键安装 |
| MCP.so | https://mcp.so | 中文友好的聚合站,按场景分类 |
| PulseMCP | https://www.pulsemcp.com | 含使用人数、更新频率排行 |
| Glama MCP Directory | https://glama.ai/mcp/servers | 服务器+客户端两个目录,有评分 |
| Awesome MCP Servers | https://github.com/punkpeye/awesome-mcp-servers | GitHub收集向list |
MCP生态发展趋势
Section titled “MCP生态发展趋势”MCP生态正在快速演化,以下三个方向值得关注:
1. 标准化深化
MCP协议本身仍在快速迭代。2025年发布了Streamable HTTP传输规范(替代SSE),2026年预计推出OAuth 2.1集成的认证标准。标准化进程由Linux基金会下的MCP工作组推进,确保协议的中立性与开放性。
2. 企业级应用
金融机构对MCP的关注点在于安全性与合规性。企业级MCP网关需要支持:基于角色的访问控制(RBAC)、操作审计日志、敏感数据脱敏、速率限制与配额管理。目前Microsoft Azure AI Services和Amazon Bedrock均提供了企业级MCP托管方案。
3. 安全认证体系
MCP安全模型正在从”本地信任”向”零信任”演进。关键进展包括:Server身份验证(防止恶意Server冒充合法工具)、调用签名(确保AI发出的工具调用未被篡改)、沙箱隔离(限制Server的文件系统与网络访问范围)。
本课程使用的8组MCP全景
Section titled “本课程使用的8组MCP全景”| 组别 | MCP名称 | 启动方式 | 主要能力 |
|---|---|---|---|
| 浏览器组 | playwright | npx @playwright/mcp@latest | 操作Chromium / Firefox / WebKit |
| 浏览器组 | chrome-devtools | npx -y chrome-devtools-mcp@latest | 调用Chrome DevTools(Lighthouse等) |
| 浏览器组 | fetch | uvx mcp-server-fetch | 直接抓网页/JSON API |
| Office组 | excel | npx –yes @negokaz/excel-mcp-server | Excel读写、表格、格式、截图 |
| Office组 | word | uvx –from office-word-mcp-server word_mcp_server | Word读写、样式、目录、页码 |
| Office组 | ppt | uvx –from office-powerpoint-mcp-server ppt_mcp_server | PPT生成、模板、批量改稿 |
| 系统组 | WindowsMCP.Net | Windows-MCP.Net.exe | Windows原生UI操作(窗口/键鼠) |
| 数据分析组 | stata-mcp | uvx stata-mcp | 调用本机Stata跑计量回归 |
这8组MCP覆盖了金融从业者最常见的四类操作:数据采集(浏览器组)、文档处理(Office组)、系统操作(系统组)、数据分析(数据分析组)。后续各节将逐一详解。
MCP配置实操
Section titled “MCP配置实操”找到配置文件路径
Section titled “找到配置文件路径”MCP的配置通过一个JSON文件完成,不同IDE的配置文件路径不同:
Windows(TRAE CN):
按 Win + R,输入 %APPDATA%\Trae CN\User,找到 mcp.json。
完整路径:C:\Users\<你的用户名>\AppData\Roaming\Trae CN\User\mcp.json
macOS(TRAE CN):
/Library/Application Support/Trae CN/User/mcp.json
Qoder对应路径:
-
Windows:
%APPDATA%\Qoder\SharedClientCache\extension\local\mcp.json -
macOS:
/Library/Application Support/Qoder/SharedClientCache/extension/local/mcp.json
课程标准配置
Section titled “课程标准配置”把mcp.json内容替换为下列JSON(与本机讲师机一致):
{ "mcpServers": {“fetch”: {
“command”: “uvx”,
“args”: [“mcp-server-fetch”]
},
“playwright”: {
“command”: “npx”,
“args”: [“@playwright/mcp@latest”]
},
“chrome-devtools”: {
“command”: “npx”,
“args”: [“-y”, “chrome-devtools-mcp@latest”]
},
“excel”: {
“command”: “npx”,
“args”: [“—yes”, “@negokaz/excel-mcp-server”],
“env”: {
“EXCEL_MCP_PAGING_CELLS_LIMIT”: “10000”
}
},
“word”: {
“command”: “uvx”,
“args”: [“—from”, “office-word-mcp-server”, “word_mcp_server”]
},
“ppt”: {
“command”: “uvx”,
“args”: [“—from”, “office-powerpoint-mcp-server”, “ppt_mcp_server”]
},
“WindowsMCP.Net”: {
“command”: “C:<br/>Users
<用户名>
.dotnet
tools
Windows-MCP.Net.exe”,
“args”: []
},
“stata-mcp”: {
“command”: “uvx”,
“args”: [“stata-mcp”],
“env”: {
“STATA_PATH”: “C:<br/>Program Files
Stata18
StataMP-64.exe”,
“MCP_STATA_LOGLEVEL”: “INFO”
}
}
}}macOS Stata路径示例:
"stata-mcp": { "command": "uvx", "args": ["stata-mcp"], "env": {“STATA_PATH”: “/Applications/Stata/StataMP.app/Contents/MacOS/stata-mp”, “MCP_STATA_LOGLEVEL”: “INFO”
}}| 字段 | 含义 |
|---|---|
| mcpServers | 顶层对象,键 = MCP名称(自定义),值 = 启动配置 |
| command | 实际启动二进制(npx / uvx / .exe绝对路径) |
| args | 命令行参数,TRAE启动时按数组顺序拼接 |
| env | 环境变量;放API Key、路径、限制参数 |
| disabled | true时不加载该MCP |
理解这些字段的含义,有助于后续排查配置问题。其中env字段特别重要------许多MCP Server需要通过环境变量接收API密钥、安装路径等敏感信息,避免将这些信息硬编码在工具参数中。
MCP服务运行条件准备提示词
Section titled “MCP服务运行条件准备提示词”在TRAE IDE的Builder模式(Ctrl+U)中输入以下内容:
请为我准备智慧银行课程所需的所有 MCP 服务运行条件:【1】安装核心依赖1. 安装 uv:pip install uv2. 安装 Windows-MCP.Net:dotnet tool install -g Windows-MCP.Net3. 确认 Node.js >= v20、Python >= 3.10【2】配置环境变量1. 设置 STATA_PATH(设置前检查本机是否安装)2. 设置 EXCEL_MCP_PAGING_CELLS_LIMIT=100003. 设置 MCP_STATA_LOGLEVEL=INFO【3】配置 MCP 服务器创建配置文件内容如下,请替换 <用户名> 为实际用户名:(此处粘贴上方 mcp.json 内容)【4】验证所有服务1. 测试 fetch 服务能否正常获取网页2. 测试 excel 服务能否创建表格3. 测试 playwright 服务能否启动浏览器4. 输出完整的配置报告和服务状态请按步骤执行并输出详细的执行日志。-
完全退出TRAE(任务栏右键 → 退出)
-
重新打开TRAE
-
在Builder模式输入:请用playwright打开百度首页并截图
-
AI自动调用MCP → 浏览器弹出 → 截图回传 = 配置成功
配置常见问题
Section titled “配置常见问题”| 现象 | 原因 | 解决 |
|---|---|---|
| 找不到npx | Node.js未装或未加入PATH | 重装Node.js,勾选Add to PATH |
| 找不到uvx | 未装uv | pip install uv或winget安装 |
| MCP工具不出现 | mcp.json语法错误 | 把整段JSON贴给AI,让它检查格式 |
| playwright报错 | 首次运行需下载浏览器内核 | AI会执行npx playwright install,等待 |
| stata-mcp报错 | STATA_PATH不正确 | 改为本机Stata实际安装路径 |
浏览器组MCP:金融网页数据采集
Section titled “浏览器组MCP:金融网页数据采集”浏览器组包含三个MCP Server,分别负责不同的数据采集场景:Playwright MCP提供完整的浏览器自动化能力,Chrome DevTools MCP提供网页质量审计能力,Fetch MCP提供轻量级HTTP请求能力。三者协同,覆盖了金融数据采集的完整需求链。
Playwright MCP详解
Section titled “Playwright MCP详解”工具能力清单
Section titled “工具能力清单”Playwright MCP基于微软Playwright测试框架,可以驱动Chromium、Firefox和WebKit三种浏览器引擎。其核心工具包括:
| 工具名 | 功能 |
|---|---|
browser_navigate | 导航到指定URL |
browser_click | 点击页面元素 |
browser_fill | 填写表单输入框 |
browser_screenshot | 对当前页面截图 |
browser_evaluate | 在页面上下文执行JavaScript |
browser_select_option | 选择下拉菜单选项 |
browser_hover | 鼠标悬停触发交互 |
browser_type | 模拟键盘输入 |
browser_wait | 等待元素出现或页面加载 |
其中最常用的五个工具是navigate(打开页面)、screenshot(截图)、click(点击)、fill(填表)和evaluate(执行JS)。evaluate工具尤为强大------它允许在浏览器上下文中执行任意JavaScript代码,可以提取页面中的动态数据(如AJAX加载的表格内容)。
请用 playwright MCP 完成:1. 打开 https://www.cmbchina.com(招商银行官网);2. 截图保存为 figures/cmb_home.png;3. 对该页面跑 lighthouse_audit,输出"性能/可访问性/最佳实践/SEO"四项分数;4. 用 100 字中文总结这家银行官网的优缺点。学生练习:选择家乡的一家城商行/农商行官网,重复上述4步。
Chrome DevTools MCP
Section titled “Chrome DevTools MCP”Lighthouse审计指标详解
Section titled “Lighthouse审计指标详解”Chrome DevTools MCP的核心能力是调用Lighthouse引擎对网页进行全方位审计。Lighthouse从四个维度评估网页质量:
| 维度 | 权重 | 关键指标 |
|---|---|---|
| 性能(Performance) | 高 | 首次内容绘制(FCP)、最大内容绘制(LCP)、累积布局偏移(CLS)、首次输入延迟(FID) |
| 可访问性(Accessibility) | 高 | 对比度、Alt文本、ARIA标签、键盘导航 |
| 最佳实践(Best Practices) | 中 | HTTPS使用、安全漏洞、浏览器错误 |
| SEO(搜索引擎优化) | 中 | 标题标签、Meta描述、结构化数据、移动友好性 |
每个维度的分数范围是0—100分。对于银行官网,通常关注性能和可访问性两个维度------性能影响用户体验和转化率,可访问性则关乎监管合规。
L1任务提示词
Section titled “L1任务提示词”请用 chrome-devtools MCP 完成:1. 打开 https://www.cmbchina.com(招商银行官网);2. 截图保存为 figures/cmb_home.png;3. 对该页面跑 lighthouse_audit,输出"性能/可访问性/最佳实践/SEO"四项分数;4. 用 100 字中文总结这家银行官网的优缺点。Fetch MCP
Section titled “Fetch MCP”RESTful API概念简述
Section titled “RESTful API概念简述”RESTful API是当今Web服务的主流架构风格。其核心思想是:将一切数据抽象为”资源”,通过HTTP动词(GET/POST/PUT/DELETE)对资源进行操作。理解RESTful API有助于使用Fetch MCP高效获取金融数据。
| HTTP动词 | 操作 | 示例 |
|---|---|---|
| GET | 获取资源 | 获取实时汇率 |
| POST | 创建资源 | 提交订单 |
| PUT | 更新资源 | 修改利率设置 |
| DELETE | 删除资源 | 取消订阅 |
Fetch MCP本质上是AI驱动的HTTP客户端------它可以根据自然语言指令自动构造正确的HTTP请求,并解析返回的JSON/HTML内容。相比Playwright,Fetch更轻量、更快速,但不能处理需要JavaScript渲染的动态页面。
金融API数据获取
Section titled “金融API数据获取”金融行业有大量公开API提供实时数据。以下是一些典型场景:
-
汇率数据:中国银行、央行公布的外汇牌价
-
利率数据:LPR贷款市场报价利率、各期限存款利率
-
公告信息:上市公司公告、银行新闻动态
-
宏观数据:国家统计局GDP、CPI、PMI等数据
拓展任务B:实时汇率/利率数据获取
任务:使用 fetch MCP 调用银行公开 API 获取实时金融数据1. 使用 fetch MCP 访问中国银行外汇牌价页面,提取当日主要货币买入/卖出汇率2. 使用 fetch MCP 获取 LPR 贷款市场报价利率3. 将汇率数据和利率数据整理为 Markdown 表格输出4. 撰写 50 字简评:当前汇率走势对银行外汇业务的影响拓展任务C:手机端 vs PC端对比审计
任务:对比同一银行官网在不同设备上的表现1. 用 playwright 以默认 PC 视口(1920x1080)打开建设银行官网,截图保存2. 用 playwright 设置 iPhone 14 视口(390x844)重新打开同一页面,截图保存3. 分别对两个视口跑 lighthouse 审计,对比性能分数差异4. 撰写 150 字分析报告:该银行响应式设计的优劣势Office组MCP:金融文档自动化
Section titled “Office组MCP:金融文档自动化”Office组包含Excel、Word、PPT三个MCP Server,分别处理电子表格、文字文档和演示文稿。在金融行业,这三类文档构成了日常工作的核心产出物------从数据报表到合规报告,从投研简报到年报演示,Office组MCP可以实现从数据到文档的全链路自动化。
Excel MCP
Section titled “Excel MCP”工具能力清单
Section titled “工具能力清单”Excel MCP(@negokaz/excel-mcp-server)提供了完整的电子表格操作能力:
| 能力类别 | 具体功能 |
|---|---|
| 文件操作 | 创建/打开/保存/另存为Excel文件 |
| 数据读写 | 读取单元格、写入单元格、批量读写区域 |
| 格式设置 | 字体、颜色、边框、对齐方式、数字格式 |
| 公式计算 | 插入公式、自动计算、引用跨Sheet |
| 图表生成 | 柱状图、饼图、折线图、散点图 |
| Sheet管理 | 新建/重命名/删除/复制Sheet |
| 筛选排序 | 自动筛选、条件筛选、多列排序 |
L2任务:销售数据分析
Section titled “L2任务:销售数据分析”任务:让 AI 操作 Excel 完成数据处理【1】数据准备1. 在当前目录创建"销售数据"文件夹2. 创建包含以下内容的 Excel 文件"销售记录.xlsx":- Sheet1 命名为"销售数据"- 表头:日期、产品名称、销售额、数量、客户类型- 至少包含 10 条模拟销售数据(2024 年 1 月数据)【2】Excel 操作任务1. 读取"销售记录.xlsx"文件2. 添加"单价"列(销售额/数量)3. 添加"利润率"列(假设利润率=30%,计算利润额)4. 按客户类型分组汇总销售额5. 筛选出销售额大于 1000 的记录6. 创建新 Sheet"汇总报表",包含各产品总销售额、各客户类型销售占比、平均单价【3】数据可视化1. 在"汇总报表"Sheet 中创建柱状图展示各产品销售额2. 创建饼图展示客户类型占比【4】保存与输出1. 另存为"销售分析报告.xlsx"2. 输出分析报告摘要(Markdown 格式)故障排除:
请诊断 Excel MCP 服务问题:1. 检查 Excel MCP 服务是否已启动2. 测试基本读取功能3. 检查环境变量配置4. 输出详细错误信息拓展任务A:银行客户信用评分分群
构建银行客户信用评分分群模型,包含信用评分计算、风险等级划分、分群分析、可视化输出。
拓展任务B:银行网点绩效KPI仪表盘
构建银行网点绩效KPI仪表盘,包含KPI计算、综合得分排名、仪表盘输出。
Word MCP
Section titled “Word MCP”银行文档标准化需求
Section titled “银行文档标准化需求”银行业是高度监管的行业,文档的格式与内容都有严格规范。常见的标准化文档包括:
-
合规报告:反洗钱报告、内部审计报告、风险管理报告------需要固定的章节结构、签名区域、保密等级标识
-
客户函件:贷款审批通知、账户变更确认、产品推荐信------需要统一的信头、收件人格式、落款
-
内部简报:周度业务简报、市场分析简报------需要标准化的标题层级、图表插入规范、免责声明
Word MCP(office-word-mcp-server)提供文档创建、样式设置、目录生成、页码插入等能力,可以按照预设模板自动生成符合规范的银行文档。
L3 Word+PPT任务提示词
Section titled “L3 Word+PPT任务提示词”详见3.5.3节的综合任务------Word与PPT通常配合使用,Word生成完整文档后,PPT提取关键信息生成演示文稿。
PPT MCP
Section titled “PPT MCP”投研报告演示规范
Section titled “投研报告演示规范”投资研究报告的演示文稿需要遵循”结论先行、数据支撑、风险提示”的三段式结构。一份标准的投研PPT应包含:
-
封面页:报告标题、机构名称、分析师姓名、日期
-
核心观点页:3—5条关键结论,每条不超过20字
-
数据支撑页:关键财务指标的表格与图表
-
详细分析页:业务亮点、风险因素的展开论述
-
风险提示页:投资风险的明确提示(合规要求)
PPT MCP(office-powerpoint-mcp-server)支持基于模板生成PPT、批量修改幻灯片、插入图表等操作,可以快速将Word文档内容转换为演示文稿。
银行年报简报生成任务
Section titled “银行年报简报生成任务”任务:工商银行 2025 年报速读简报请使用 fetch + word + ppt 三个 MCP 服务协同完成以下任务:【第 1 步】抓取年报数据使用 fetch MCP 获取工商银行 2025 年报摘要信息:1. 搜索并访问工商银行 2025 年报官方页面2. 获取关键数据:年度营收、净利润、不良贷款率、ROE、主要业务亮点、主要风险提示3. 将获取的数据整理为结构化信息【第 2 步】生成 Word 文档使用 word MCP 在 reports/ 目录生成 icbc_brief.docx:1. 封面页(标题、副标题、制作人、日期)2. 目录页(自动生成)3. 关键财务指标(表格)4. 业务亮点(>=3 条)5. 风险提示(>=2 条)【第 3 步】生成 PPT 演示文稿使用 ppt MCP 把 docx 内容转换为 5 页 PPT,保存为 reports/icbc_brief.pptx【整体要求】- 风格:商务蓝色主题- 语言:简体中文- 数据:如无法获取真实数据,请使用合理估算数据并标注"估算数据"学生练习:每组随机抽一家上市银行,重复流程产出自己的银行简报。
数据分析组MCP:Stata计量经济学
Section titled “数据分析组MCP:Stata计量经济学”stata-mcp基础回归任务
Section titled “stata-mcp基础回归任务”用到:stata-mcp(3个工具:stata_run_selection / stata_run_file / stata_session)
示范提示词:
任务:商业银行盈利能力影响因素回归分析请使用 stata-mcp 服务完成以下计量分析任务:【数据来源(任选其一)】1. 公开数据集:620 家商业银行财务数据(2007-2024)2. 手动构建:如无外部数据,使用 Stata 生成模拟面板数据【第 1 步】数据准备与探索1. 尝试读入 data/bank_panel.dta;如不存在则使用 webuse grunfeld2. 使用 summarize 查看关键变量描述统计【第 2 步】回归分析1. 基础 OLS 回归:reg roe npl_ratio car loan_growth log(asset), robust2. 添加控制变量:reg roe npl_ratio car loan_growth log(asset) i.year, robust3. 固定效应模型(使用 reghdfe):reghdfe roe npl_ratio car loan_growth, absorb(bank_id year) robust【第 3 步】结果输出1. 使用 esttab 命令输出三列回归结果到 reports/exp2_l4_reg.txt2. 撰写 200-300 字分析结论两种Stata MCP方案对比
Section titled “两种Stata MCP方案对比”目前社区存在两个主要的Stata MCP项目,功能定位不同:
| 特性 | hanlulong/stata-mcp | SepineTam/mcp-for-stata |
|---|---|---|
| 类型 | VS Code扩展(localhost HTTP) | 独立MCP Server + CLI |
| 适用客户端 | 需IDE窗口活动 | 所有MCP客户端 |
| 执行方式 | IDE内嵌via localhost:4000 | do文件via subprocess |
| 安全机制 | — | Command Guard + RAM监控 |
| 数据分析 | — | CSV/DTA/XLSX/SPSS处理器 |
| 安装方式 | VS Code市场搜索 | uvx stata-mcp install –all |
| 最佳场景 | 在IDE中编写运行Stata | Agent驱动分析 |
hanlulong方案详细配置
Section titled “hanlulong方案详细配置”| 项目 | 信息 |
|---|---|
| GitHub | https://github.com/hanlulong/stata-mcp |
| VS Code市场 | DeepEcon.stata-mcp |
| 当前版本 | 0.5.2 |
| 要求 | Stata 17+ / UV包管理器 |
| 平台 | Windows / macOS / Linux |
MCP工具清单(3个工具):
-
stata_run_selection--- 运行代码片段 -
stata_run_file--- 运行.do文件 -
stata_session--- 会话管理(list / destroy)
端点地址:
| 端点 | 协议 | 用途 |
|---|---|---|
| http://localhost:4000/mcp-streamable | Streamable HTTP | 首选(现代客户端) |
| http://localhost:4000/mcp | SSE | 旧版兼容 |
| http://localhost:4000/health | HTTP GET | 健康检查 |
快捷键:
| 操作 | Mac | Win/Linux |
|---|---|---|
| 运行选中代码 | Cmd+Shift+Enter | Ctrl+Shift+Enter |
| 运行整个.do文件 | Cmd+Shift+D | Ctrl+Shift+D |
| 停止执行 | Cmd+Shift+C | Ctrl+Shift+C |
SepineTam方案简介
Section titled “SepineTam方案简介”# 一键安装所有客户端uvx stata-mcp install --all
# 单客户端安装示例uvx stata-mcp install -c claudeuvx stata-mcp install -c cursor
# 环境检查uvx stata-mcp doctor各客户端配置方式
Section titled “各客户端配置方式”| 客户端 | 配置方式 |
|---|---|
| Qoder / Claude Desktop | "stata-mcp": {"command": "npx", "args": ["-y", "mcp-remote", "http://localhost:4000/mcp-streamable"]} |
| Claude Code | claude mcp add --transport http stata-mcp http://localhost:4000/mcp-streamable --scope user |
| Cursor | {"mcpServers": {"stata-mcp": {"url": "http://localhost:4000/mcp-streamable"}}} |
| GitHub Copilot | {"servers": {"stata-mcp": {"type": "http", "url": "http://localhost:4000/mcp-streamable"}}} |
| Codex | codex mcp add stata-mcp --url http://localhost:4000/mcp-streamable |
| Cline | {"mcpServers": {"stata-mcp": {"url": "http://localhost:4000/mcp-streamable"}}} |
| 问题 | 解决方案 |
|---|---|
| 服务未启动 | 检查状态栏是否显示”Stata”;执行curl http://localhost:4000/health |
| 端口冲突 | 修改stata-vscode.mcpServerPort设置 |
| Stata未找到 | 手动设置stata-vscode.stataPath指向安装目录 |
| UV安装失败 | 手动运行curl -LsSf https://astral.sh/uv/install.sh | sh |
| 输出截断 | 调整maxOutputTokens(0 = 无限制) |
| MCP工具未出现 | 重启IDE/客户端(MCP工具列表不会在同一会话中刷新) |
| Copilot未识别 | 确认VS Code >= 1.102且组织Copilot策略已启用MCP |
macOS配置说明
macOS用户需要在mcp.json中将STATA_PATH设置为:
/Applications/Stata/StataMP.app/Contents/MacOS/stata-mp并确保已安装DeepEcon.stata-mcp扩展(VS Code / Qoder扩展市场搜索安装)。
Python替代方案
Section titled “Python替代方案”若无Stata环境,可用Python替代:
import pandas as pdimport statsmodels.formula.api as smf
df = pd.read_stata("data/bank_panel.dta")model = smf.ols("roe ~ npl_ratio + car + loan_growth + np.log(asset)",data=df).fit(cov_type=“cluster”, cov_kwds={“groups”: df[“bank_id”]})
print(model.summary())MCP组合编排与工作流设计
Section titled “MCP组合编排与工作流设计”多MCP协同工作的设计模式
Section titled “多MCP协同工作的设计模式”在实际金融工作中,单一MCP往往无法完成复杂任务。例如,“生成银行年报简报”需要Fetch(数据采集)→ Excel(数据处理)→ Word(文档生成)→ PPT(演示生成)四个MCP的协同。这种多MCP协同可以归纳为三种设计模式:
模式一:流水线模式(Pipeline)
MCP按固定顺序依次执行,前一个MCP的输出作为后一个MCP的输入。这是最常见的模式:
Fetch → Excel → Word → PPT| (采集) | (处理) | (文档) | (演示) |流水线模式的优点是逻辑清晰、易于调试;缺点是灵活性较低,无法根据中间结果动态调整后续步骤。
模式二:并行模式(Parallel)
多个MCP同时执行独立任务,最后汇总结果:
Playwright ──→ 截图 + 审计数据↓ 汇总Fetch ──────→ API数据 → Excel → 综合报告并行模式适用于各子任务互不依赖的场景------例如同时采集多家银行的数据。
模式三:条件分支模式(Conditional)
根据前一步的结果决定后续调用哪个MCP:
Fetch → 数据格式判断├── JSON格式 → 直接解析 → Excel└── HTML格式 → Playwright渲染 → 截图 → OCR → Excel条件分支模式需要AI具备较强的推理能力,能根据中间结果做出正确判断。
工作流编排案例:银行分析全链路
Section titled “工作流编排案例:银行分析全链路”以下是一个典型的银行分析全链路工作流,展示了Fetch→Excel→Word→PPT四MCP协同:
任务描述:为某上市银行自动生成季度经营分析报告。
Step 1 --- 数据采集(Fetch MCP)
使用 fetch MCP 获取以下数据:1. 该银行最新季报关键财务指标(营收、净利润、不良率、拨备覆盖率)2. 同期LPR利率数据3. 行业平均指标(来自银保监会公开数据)Step 2 --- 数据处理(Excel MCP)
使用 Excel MCP 完成以下处理:1. 创建"原始数据"Sheet,存入采集到的所有数据2. 创建"对比分析"Sheet,计算该行与行业平均的偏离度3. 创建"趋势分析"Sheet,生成近4个季度的趋势图表4. 创建"综合评分"Sheet,基于多维度指标计算综合评分Step 3 --- 文档生成(Word MCP)
使用 word MCP 生成分析报告文档:1. 封面:XX银行2025Q1经营分析报告2. 摘要:200字核心结论3. 财务指标分析:引用Excel中的表格和图表4. 同业对比分析:与行业平均的对比5. 风险提示:主要风险点及缓释措施6. 结论与建议:投资建议Step 4 --- 演示生成(PPT MCP)
使用 ppt MCP 生成5页演示文稿:1. 封面页2. 核心指标概览(表格)3. 趋势分析(图表)4. 同业对比(雷达图)5. 结论与建议MCP调用顺序与依赖管理
Section titled “MCP调用顺序与依赖管理”多MCP协同工作时,调用顺序至关重要。以下是几条实用原则:
-
数据先行:Fetch/Playwright等采集类MCP应最先执行,确保后续步骤有数据可用
-
处理居中:Excel等数据处理MCP应在采集之后、输出之前执行
-
输出在后:Word/PPT等文档生成MCP应在数据处理完成后执行
-
中间产物保存:每一步的输出应保存为文件,而非仅存在于AI上下文中------这确保了步骤间的解耦,即使某步失败也可以从中间状态恢复
在AI的实际执行中,这些顺序通常由AI自主判断。但用户可以在提示词中通过编号(【第1步】【第2步】…)显式指定执行顺序,减少AI的决策不确定性。
错误处理与回退策略
Section titled “错误处理与回退策略”MCP调用可能因各种原因失败------网络超时、文件路径错误、工具参数不合法等。以下是推荐的错误处理策略:
| 错误类型 | 常见原因 | 回退策略 |
|---|---|---|
| MCP服务不可用 | 服务未启动或进程崩溃 | 重启服务后重试;若持续失败则跳过该MCP |
| 工具调用超时 | 网络慢或任务耗时过长 | 设置超时阈值;使用分段执行 |
| 参数错误 | AI生成了不合Schema的参数 | 让AI重新检查Tool Schema后重试 |
| 输出为空 | 目标页面无内容/API无数据 | 切换数据源(如Fetch失败换Playwright) |
| 文件操作失败 | 路径不存在/权限不足 | 先创建目录;检查文件权限 |
本章系统介绍了MCP协议的理论基础与实践应用。
在理论层面,MCP是一种开放标准,通过三层架构(Client/Server/Tool)和JSON-RPC 2.0通信协议,实现了AI与外部工具的标准化连接。与传统API调用不同,MCP的关键创新在于将工具选择权交给AI模型------AI根据Tool Schema的描述自主决定调用哪个工具、传入什么参数,用户只需用自然语言描述目标。
在实践层面,本章详细讲解了浏览器组(Playwright/Chrome DevTools/Fetch)、Office组(Excel/Word/PPT)和数据分析组(Stata)共8组MCP的配置与使用。每个MCP都通过具体的金融场景任务进行了演示,从银行官网审计到客户分群报表,从年报简报到计量回归分析。
在编排层面,多MCP协同工作可以采用流水线、并行和条件分支三种模式。关键原则是:数据先行、处理居中、输出在后、中间产物保存。
掌握MCP的核心口诀:「MCP给能力,Skill给方法」------MCP提供工具能力,而如何用好这些工具则需要Skill(下一章主题)的指导。
| # | 交付物 | 形式 |
|---|---|---|
| 1 | 4关每关一段录屏GIF(≤10s) gif/e | xp2_L1.gif … exp2_L4.gif |
| 2 | L1 lighthouse报告 + 银行截图 | reports/exp2_l1.md |
| 3 | L2 客户分群报表 | reports/exp2_l2.xlsx + 截图 |
| 4 | L3 银行简报 | reports/icbc_brief.docx + .pptx |
| 5 | L4 Stata回归结果 + 结论 | reports/exp2_l4_reg.txt + 结论 |
| 6 | 自画MCP调用流程图(mermaid) | figures/exp2_mcp_flow.mmd |