Skip to content

第3章 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连接器,覆盖数据库、浏览器、办公软件、开发工具等几乎全部常见场景。

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或桌面应用中。它的核心职责包括:

  1. 工具发现:启动时向每个已配置的Server发送 tools/list 请求,获取可用工具的名称、参数、描述

  2. 意图路由:根据用户输入,AI模型决定调用哪个工具------这一步依赖Tool Schema中的描述信息

  3. 请求构造:将AI的调用意图转化为标准JSON-RPC请求

  4. 结果呈现:接收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通信。它的核心职责包括:

  1. Schema声明:Server启动时向Client注册自己提供的工具清单,每个工具包含名称、参数JSON Schema、文字描述

  2. 请求处理:接收Client发来的 tools/call 请求,解析参数

  3. 工具调用:将解析后的参数映射为对真实工具的操作指令

  4. 结果封装:将真实工具的输出封装为标准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模型学会一种调用方式即可操作所有工具

MCP协议的通信层基于JSON-RPC 2.0规范------一种轻量级的远程过程调用协议。理解其消息格式,有助于调试MCP通信问题。

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可以传递截图、文件等富媒体内容。

不需要响应的单向消息,如进度通知、日志输出:

{
"jsonrpc": "2.0",
"method": "notifications/progress",
"params": {

“progressToken”: “task-123”, “progress”: 50, “total”: 100

}
}

通知没有id字段,Server发送后不期待Client回复。这在长时间运行的任务(如大文件处理)中用于报告进度。

当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在此基础上可以扩展自定义错误码。

当你在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根据每个工具的namedescription字段判断哪个工具最合适。例如,“打开网页”匹配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是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格式的参数定义,声明参数的名称、类型、是否必填

工具发现的完整流程如下:

  1. Client启动,读取mcp.json配置文件,获取所有Server的启动命令

  2. Client逐一启动Server进程,通过stdio/SSE建立连接

  3. Client向每个Server发送tools/list请求

  4. Server返回自己提供的所有工具的Schema声明

  5. Client将所有工具的Schema汇总后注入AI的上下文

  6. AI在后续对话中,根据这些Schema决定何时调用哪个工具

MCP协议支持两种传输层,适用于不同场景:

特性stdioSSE(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。

截至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的平台上使用------这是标准化的真正力量。

市场网址说明
官方注册表https://github.com/modelcontextprotocol/serversMCP协议作者维护的reference servers + community servers列表
Smitheryhttps://smithery.ai最活跃的第三方MCP市场,支持一键安装
MCP.sohttps://mcp.so中文友好的聚合站,按场景分类
PulseMCPhttps://www.pulsemcp.com含使用人数、更新频率排行
Glama MCP Directoryhttps://glama.ai/mcp/servers服务器+客户端两个目录,有评分
Awesome MCP Servershttps://github.com/punkpeye/awesome-mcp-serversGitHub收集向list

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的文件系统与网络访问范围)。

组别MCP名称启动方式主要能力
浏览器组playwrightnpx @playwright/mcp@latest操作Chromium / Firefox / WebKit
浏览器组chrome-devtoolsnpx -y chrome-devtools-mcp@latest调用Chrome DevTools(Lighthouse等)
浏览器组fetchuvx mcp-server-fetch直接抓网页/JSON API
Office组excelnpx –yes @negokaz/excel-mcp-serverExcel读写、表格、格式、截图
Office组worduvx –from office-word-mcp-server word_mcp_serverWord读写、样式、目录、页码
Office组pptuvx –from office-powerpoint-mcp-server ppt_mcp_serverPPT生成、模板、批量改稿
系统组WindowsMCP.NetWindows-MCP.Net.exeWindows原生UI操作(窗口/键鼠)
数据分析组stata-mcpuvx stata-mcp调用本机Stata跑计量回归

这8组MCP覆盖了金融从业者最常见的四类操作:数据采集(浏览器组)、文档处理(Office组)、系统操作(系统组)、数据分析(数据分析组)。后续各节将逐一详解。

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

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、路径、限制参数
disabledtrue时不加载该MCP

理解这些字段的含义,有助于后续排查配置问题。其中env字段特别重要------许多MCP Server需要通过环境变量接收API密钥、安装路径等敏感信息,避免将这些信息硬编码在工具参数中。

在TRAE IDE的Builder模式(Ctrl+U)中输入以下内容:

请为我准备智慧银行课程所需的所有 MCP 服务运行条件:
【1】安装核心依赖
1. 安装 uv:pip install uv
2. 安装 Windows-MCP.Net:dotnet tool install -g Windows-MCP.Net
3. 确认 Node.js >= v20、Python >= 3.10
【2】配置环境变量
1. 设置 STATA_PATH(设置前检查本机是否安装)
2. 设置 EXCEL_MCP_PAGING_CELLS_LIMIT=10000
3. 设置 MCP_STATA_LOGLEVEL=INFO
【3】配置 MCP 服务器
创建配置文件内容如下,请替换 <用户名> 为实际用户名:
(此处粘贴上方 mcp.json 内容)
【4】验证所有服务
1. 测试 fetch 服务能否正常获取网页
2. 测试 excel 服务能否创建表格
3. 测试 playwright 服务能否启动浏览器
4. 输出完整的配置报告和服务状态
请按步骤执行并输出详细的执行日志。
  1. 完全退出TRAE(任务栏右键 → 退出)

  2. 重新打开TRAE

  3. 在Builder模式输入:请用playwright打开百度首页并截图

  4. AI自动调用MCP → 浏览器弹出 → 截图回传 = 配置成功

现象原因解决
找不到npxNode.js未装或未加入PATH重装Node.js,勾选Add to PATH
找不到uvx未装uvpip 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基于微软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的核心能力是调用Lighthouse引擎对网页进行全方位审计。Lighthouse从四个维度评估网页质量:

维度权重关键指标
性能(Performance)首次内容绘制(FCP)、最大内容绘制(LCP)、累积布局偏移(CLS)、首次输入延迟(FID)
可访问性(Accessibility)对比度、Alt文本、ARIA标签、键盘导航
最佳实践(Best Practices)HTTPS使用、安全漏洞、浏览器错误
SEO(搜索引擎优化)标题标签、Meta描述、结构化数据、移动友好性

每个维度的分数范围是0—100分。对于银行官网,通常关注性能和可访问性两个维度------性能影响用户体验和转化率,可访问性则关乎监管合规。

请用 chrome-devtools MCP 完成:
1. 打开 https://www.cmbchina.com(招商银行官网);
2. 截图保存为 figures/cmb_home.png;
3. 对该页面跑 lighthouse_audit,输出"性能/可访问性/最佳实践/SEO"四项分数;
4. 用 100 字中文总结这家银行官网的优缺点。

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提供实时数据。以下是一些典型场景:

  • 汇率数据:中国银行、央行公布的外汇牌价

  • 利率数据: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组包含Excel、Word、PPT三个MCP Server,分别处理电子表格、文字文档和演示文稿。在金融行业,这三类文档构成了日常工作的核心产出物------从数据报表到合规报告,从投研简报到年报演示,Office组MCP可以实现从数据到文档的全链路自动化。

Excel MCP(@negokaz/excel-mcp-server)提供了完整的电子表格操作能力:

能力类别具体功能
文件操作创建/打开/保存/另存为Excel文件
数据读写读取单元格、写入单元格、批量读写区域
格式设置字体、颜色、边框、对齐方式、数字格式
公式计算插入公式、自动计算、引用跨Sheet
图表生成柱状图、饼图、折线图、散点图
Sheet管理新建/重命名/删除/复制Sheet
筛选排序自动筛选、条件筛选、多列排序
任务:让 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(office-word-mcp-server)提供文档创建、样式设置、目录生成、页码插入等能力,可以按照预设模板自动生成符合规范的银行文档。

详见3.5.3节的综合任务------Word与PPT通常配合使用,Word生成完整文档后,PPT提取关键信息生成演示文稿。

投资研究报告的演示文稿需要遵循”结论先行、数据支撑、风险提示”的三段式结构。一份标准的投研PPT应包含:

  1. 封面页:报告标题、机构名称、分析师姓名、日期

  2. 核心观点页:3—5条关键结论,每条不超过20字

  3. 数据支撑页:关键财务指标的表格与图表

  4. 详细分析页:业务亮点、风险因素的展开论述

  5. 风险提示页:投资风险的明确提示(合规要求)

PPT MCP(office-powerpoint-mcp-server)支持基于模板生成PPT、批量修改幻灯片、插入图表等操作,可以快速将Word文档内容转换为演示文稿。

任务:工商银行 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
【整体要求】
- 风格:商务蓝色主题
- 语言:简体中文
- 数据:如无法获取真实数据,请使用合理估算数据并标注"估算数据"

学生练习:每组随机抽一家上市银行,重复流程产出自己的银行简报。

用到: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 grunfeld
2. 使用 summarize 查看关键变量描述统计
【第 2 步】回归分析
1. 基础 OLS 回归:reg roe npl_ratio car loan_growth log(asset), robust
2. 添加控制变量:reg roe npl_ratio car loan_growth log(asset) i.year, robust
3. 固定效应模型(使用 reghdfe):reghdfe roe npl_ratio car loan_growth, absorb(bank_id year) robust
【第 3 步】结果输出
1. 使用 esttab 命令输出三列回归结果到 reports/exp2_l4_reg.txt
2. 撰写 200-300 字分析结论

目前社区存在两个主要的Stata MCP项目,功能定位不同:

特性hanlulong/stata-mcpSepineTam/mcp-for-stata
类型VS Code扩展(localhost HTTP)独立MCP Server + CLI
适用客户端需IDE窗口活动所有MCP客户端
执行方式IDE内嵌via localhost:4000do文件via subprocess
安全机制Command Guard + RAM监控
数据分析CSV/DTA/XLSX/SPSS处理器
安装方式VS Code市场搜索uvx stata-mcp install –all
最佳场景在IDE中编写运行StataAgent驱动分析
项目信息
GitHubhttps://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-streamableStreamable HTTP首选(现代客户端)
http://localhost:4000/mcpSSE旧版兼容
http://localhost:4000/healthHTTP GET健康检查

快捷键

操作MacWin/Linux
运行选中代码Cmd+Shift+EnterCtrl+Shift+Enter
运行整个.do文件Cmd+Shift+DCtrl+Shift+D
停止执行Cmd+Shift+CCtrl+Shift+C
Terminal window
# 一键安装所有客户端
uvx stata-mcp install --all
# 单客户端安装示例
uvx stata-mcp install -c claude
uvx stata-mcp install -c cursor
# 环境检查
uvx stata-mcp doctor
客户端配置方式
Qoder / Claude Desktop"stata-mcp": {"command": "npx", "args": ["-y", "mcp-remote", "http://localhost:4000/mcp-streamable"]}
Claude Codeclaude 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"}}}
Codexcodex 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设置为:

Terminal window
/Applications/Stata/StataMP.app/Contents/MacOS/stata-mp

并确保已安装DeepEcon.stata-mcp扩展(VS Code / Qoder扩展市场搜索安装)。

若无Stata环境,可用Python替代:

import pandas as pd
import 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往往无法完成复杂任务。例如,“生成银行年报简报”需要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协同工作时,调用顺序至关重要。以下是几条实用原则:

  1. 数据先行:Fetch/Playwright等采集类MCP应最先执行,确保后续步骤有数据可用

  2. 处理居中:Excel等数据处理MCP应在采集之后、输出之前执行

  3. 输出在后:Word/PPT等文档生成MCP应在数据处理完成后执行

  4. 中间产物保存:每一步的输出应保存为文件,而非仅存在于AI上下文中------这确保了步骤间的解耦,即使某步失败也可以从中间状态恢复

在AI的实际执行中,这些顺序通常由AI自主判断。但用户可以在提示词中通过编号(【第1步】【第2步】…)显式指定执行顺序,减少AI的决策不确定性。

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(下一章主题)的指导。

#交付物形式
14关每关一段录屏GIF(≤10s) gif/exp2_L1.gif … exp2_L4.gif
2L1 lighthouse报告 + 银行截图reports/exp2_l1.md
3L2 客户分群报表reports/exp2_l2.xlsx + 截图
4L3 银行简报reports/icbc_brief.docx + .pptx
5L4 Stata回归结果 + 结论reports/exp2_l4_reg.txt + 结论
6自画MCP调用流程图(mermaid)figures/exp2_mcp_flow.mmd