02-mcp-server案例分享-Excel 表格秒变可视化图表 HTML 报告,就这么简单

02-mcp-server案例分享-Excel 表格秒变可视化图表 HTML 报告,就这么简单

1.前言

MCP Server(模型上下文协议服务器)是一种基于模型上下文协议(Model Context Protocol,简称MCP)构建的轻量级服务程序,旨在实现大型语言模型(LLM)与外部资源之间的高效、安全连接。MCP协议由Anthropic公司于2024年11月开源,其核心目标是解决AI应用中数据分散、接口不统一等问题,为开发者提供标准化的接口,使AI模型能够灵活访问本地资源和远程服务,从而提升AI助手的响应质量和工作效率。

MCP Server 的架构与工作原理

MCP Server 采用客户端-服务器(Client-Server)架构,其中客户端(MCP Client)负责与服务器建立连接,发起请求,而服务器端则处理请求并返回响应。这种架构确保了数据交互的高效性与安全性。例如,客户端可以向服务器发送请求,如“查询数据库中的某个记录”或“调用某个API”,而服务器则根据请求类型,调用相应的资源或工具,完成任务并返回结果。

MCP Server 支持动态发现和实时更新机制。例如,当新的资源或工具被添加到服务器时,客户端可以自动感知并使用这些新功能,从而提高系统的灵活性和扩展性

MCP Server 的主要功能

  1. 资源暴露与工具提供
    MCP Server 可以将本地文件、数据库、API等资源作为数据实体暴露给AI模型,同时提供工具功能,帮助AI完成复杂任务,如数据检索、内容生成、实时更新等。例如,它支持对MySQL、PostgreSQL等数据库的查询和操作,也支持对本地文件系统的读写和目录管理。
  2. 会话管理与动态通知
    MCP Server 能够管理客户端与服务器的连接,确保会话的时效性和稳定性,同时通过实时推送机制,将最新的资源信息及时传递给AI模型,以保证数据的准确性和实时性。
  3. 安全性与隐私保护
    MCP Server 采用加密认证和访问控制机制,确保数据传输的安全性,避免敏感信息泄露。例如,它支持本地运行,避免将敏感数据上传至第三方平台,从而保护用户隐私。
  4. 标准化与模块化
    MCP Server 提供了标准化的通信协议,支持两种传输协议(STDIO和SSE),并允许开发者通过插件扩展功能,使其具备灵活性和扩展性。例如,它支持通过HTTP标准POST请求与客户端进行交互,同时支持WebSocket实现实时数据推送。
  5. 多场景应用
    MCP Server 可以应用于多种场景,包括但不限于:
    • 本地资源集成:如文件操作、数据库管理、API调用等。
    • 云服务交互:如与GitHub、Slack、Google Drive等云服务的集成。
    • AI助手扩展:如为ChatGPT等AI助手提供上下文支持和工具调用能力

目前mcp-server发展速度非常快。截止2025年4月26日目前mcp-server在mcp.so市场上已经发展超过10000多个mcp-server

image-20250426134845647

目前各大互联网厂商也陆续实现的MCP-Servers广场了。前端时间给大家介绍过关于《dify案例分享-魔搭+Dify王炸组合!10分钟搭建你的专属 生活小助理》dify案例分享-私有化 MCP 广场搭建与网页小游戏智能体工作流实战

今天带大家一起使用cherry-studio和trae实现excel表格一键生成可视化图表html报告的MCP案例,下面先给大家看一下效果

测试的excel表格数据

image-20250505145037365

cherry-studio

image-20250505144647193
image-20250505144727660

F:\tmp\mcpfiles 有我们的分享报告,我们看一下

image-20250505144839941
image-20250505144907641

看起来生成的html报告还不错,通过简单的excel表格通过几个MCP 实现了一个分析报告。

trae

image-20250505145500897

同样它在我电脑的F:\tmp\mcpfiles目录下生成一个zz_report.html 报告

image-20250505145553956
image-20250505150022601
image-20250505150034881

​ 我们通过2个mcp-client实现了excel表格一键生成可视化图表html报告。那么这个mcp-server用到了哪些工具,如何实现的呢?话不多说下面带大家一起来实现。

2 mcp-server配置

上面的mcp-server其实用到了4个mcp-server.分别是

sequential-thinking

server-filesystem

excel-mcp-server

quickchart-server

trae配置mcp-server

他们的配置在trae非常简单,下面是他们的配置文件

quickchart-server

{"mcpServers":{"quickchart-server":{"command":"npx","args":["-y","@gongrzhe/quickchart-mcp-server"]}}}

excel-mcp-server

{"mcpServers":{"excel-mcp-server":{"command":"npx","args":["--yes","@zhiweixu/excel-mcp-server"],"env":{"LOG_PATH":"F:\\tmp\\mcpfiles","CACHE_MAX_AGE":"1","CACHE_CLEANUP_INTERVAL":"4","LOG_RETENTION_DAYS":"7","LOG_CLEANUP_INTERVAL":"24"}}}}

server-filesystem

{"mcpServers":{"server-filesystem":{"command":"npx","args":["-y","@modelcontextprotocol/server-filesystem","F:\\tmp\\mcpfiles"]}}}

sequential-thinking

{"mcpServers":{"sequential-thinking":{"command":"npx","args":["-y","@modelcontextprotocol/server-sequential-thinking"]}}}

首选我们需要确保电脑上安装了Node.js、uvx 等工具,详细安装可以参考trae帮助文档

https://docs.trae.ai/ide/model-context-protocol?_lang=zh

image-20250505150757834

安装好后,我们在trae配置添加,下面以一个mcp-server介绍一下配置

打开trae,选择mcp (trae建议升级到最新版本)

image-20250505150936693
image-20250505150903896

​ 点击手工配置

image-20250505151012849

在弹出mcp-server配置对话框里面,把我上面的4个mcp-server添加配置

image-20250505151102479

点击确定按钮完成添加配置,稍等片刻,后我们看到变成可用状态,说明trae已经完成了mcp-server安装。

image-20250505151159799

分别将上面4个mcp-server 添加完成即可。

cherry-studio配置mcp-server

cherry-studio的配置和上面的配置类似。

我们打开cherry-studio,找到mcp-server配置

image-20250505151507054

我们可以在右上角使用编辑mcp配置的方式,也是可以手工添加的方式。

image-20250505151637326

添加MCP配置的方式和上面的trae比较类似,都是json文件格式复制一下即可。它多了一个"type": “stdio”, 类型。

另外考虑我电脑上是windows,所以我们command 改成 cmd命令, args 添加 -c 和 npx。这种方式是解决windows 安装npx 不可用的问题。关于这块知识就不做详细展开。

image-20250505151916286

区别的部分我们用红框标注了,其他都和 trae配置一样。

手工添加方式也非常简单,类型选择studio ,命令行 cmd ,参数填写即可

image-20250505152057339

设置完成后,点击右上角保存按钮完成设置。

当cherry-studio MCP-Server 配置都变成绿色就是可以使用状态。

image-20250505152217963

以上步骤就完成了cherry-studio MCP-Server的配置

3.验证及测试

​ 下面我们以cherry-studio 为案例测试。

​ 在使用它之前我们先设置一下提示词。

提示词内容如下

## 角色定位 你是一位顶尖的数据可视化与分析专家,具备卓越的Excel数据处理能力和敏锐的商业洞察力。你精通使用先进的MCP工具(`sequential-thinking`, `server-filesystem`, `excel`, `quickchart-server`)来解读、处理、分析数据,并能基于数据特征和用户需求,智能推荐并生成高质量的可视化图表。最终,你将以专业、美观、符合Apple设计风格的响应式HTML报告,清晰呈现富有洞察力的分析结果。 ## 核心能力### 1. 数据理解与处理 - **工作流程管理 (`sequential-thinking`):** 利用`sequential-thinking` MCP服务规划并执行复杂的分析任务,确保分析过程逻辑清晰、步骤严谨。 - **Excel数据访问 (`excel`):** 使用`excel` MCP服务精确、高效地读取用户提供的Excel文件内容(支持.xlsx, .xlsm, .xltx, .xltm格式),包括工作表名称、单元格数据、公式等。 - **数据预处理:** 识别并专业处理数据结构问题,包括缺失值、异常值、数据类型不一致等,应用适当的清洗和转换技术,确保数据质量满足严谨的分析要求。 - **文件系统交互 (`server-filesystem`):** 通过`server-filesystem` MCP服务安全地访问和管理本地文件系统中的分析所需文件(根目录限定于 `F:\tmp\mcpfiles`)。 ### 2. 智能可视化推荐与生成 - **需求深度分析:** 深入理解用户的显式和隐式目标,结合数据本身的特性,提炼出核心的分析维度和需要关注的关键指标。 - **图表智能推荐:** 基于数据类型(如时间序列、分类、比例、分布、关系等)和分析目的,智能推荐最能有效传达信息的可视化方案。 - **专业图表生成 (`quickchart-server`):** 利用`quickchart-server` MCP服务,根据选定的数据和图表类型,生成清晰、准确、美观且具有信息传递效率的可视化图表(如柱状图、折线图、饼图、散点图、热力图等)。 ### 3. 深度数据分析与洞察提炼 - **探索性数据分析 (EDA):** 对数据进行全面的探索性分析,运用统计方法和可视化手段识别关键模式、趋势、周期性、相关性以及潜在的异常点。 - **洞察总结与提炼:** 超越表面数据,挖掘其背后的业务含义和深层原因,提炼出具有价值的核心洞见,并以简洁、精准、易于理解的语言进行阐述。 - **报告内容撰写:** 基于分析结果,撰写结构清晰、逻辑严谨的数据分析文字报告,包含关键发现、数据解读、趋势预测(如果适用)和切实可行的建议。 ### 4. 精美HTML报告构建与输出 - **内容有机整合:** 将生成的可视化图表与数据分析文字报告无缝集成,确保图文互补,共同服务于分析目标的呈现。 - **Apple风格设计:** 报告视觉设计遵循**Apple设计风格**原则:注重**简洁、清晰、优雅**。使用**卡片式布局**组织内容,确保**充足的留白**;采用**清晰的无衬线字体**(优先使用系统UI字体)、**圆角元素**、**细微阴影**效果和**专业、和谐的色彩搭配**;适当运用**高质量图标**增强信息传达,提升整体专业感和现代感。 - **响应式HTML输出:** 生成单一、完整的HTML文件。确保报告**内容丰富、结构合理、导航清晰、易于阅读**,并在不同设备(桌面、平板、手机)上均具备良好的**响应式**布局和阅读体验。 ## 工作流程1. **需求理解与数据接入:** 接收用户指令和Excel文件路径,使用`excel`工具初步读取数据结构(如工作表名称、列名)。主动向用户确认对分析目标的理解。 2. **数据清洗与准备:** 检查数据质量,进行必要的数据清洗、转换和整理。若发现严重问题,及时向用户反馈。 3. **探索性分析与洞察发掘:** 执行深入的数据分析,识别关键模式、趋势和异常。 4. **可视化方案设计与生成:** 根据分析发现和用户目标,推荐并使用`quickchart-server`生成合适的可视化图表。 5. **分析报告撰写:** 撰写包含核心洞察、图表解读和建议的文字报告。 6. **HTML报告构建与整合:** 使用`filesystem`工具(如果需要创建或写入文件),将文字报告和图表整合成符合Apple设计风格的HTML报告。 7. **结果呈现与迭代:** 向用户展示最终的HTML报告。如有必要,根据用户反馈进行调整和优化,或提出进一步分析的建议。 ## 交互原则 - **主动确认:** 在关键步骤(如确定分析目标、执行复杂操作)前,主动总结你的理解并寻求用户确认,避免方向性错误。 - **透明沟通:** 在分析过程中,若遇到数据歧义、需要做出假设或存在多种分析路径,应向用户清晰说明情况,解释你的判断依据或寻求用户指导。 - **用户为中心:** 始终以帮助用户解决问题、达成目标为核心,提供清晰、准确、有价值的分析结果。 ## 健壮性与错误处理 - **异常情况应对:** 若遇到无法访问文件、文件格式不支持、数据质量问题阻碍分析、MCP工具执行失败等情况,必须立即停止当前无效尝试,清晰地向用户报告具体问题,并尽可能提供错误信息和建议的解决方案(例如,请求用户检查文件路径、格式或提供更清晰的数据)。 - **工具失败处理:** 若特定MCP工具调用失败,尝试理解失败原因。如果可能,尝试替代方案或告知用户该功能暂时无法完成。 ## 数据隐私 - **安全规范:** 在处理用户提供的任何数据时,严格遵守数据隐私和安全规范,仅在完成用户请求的分析任务范围内使用数据,任务完成后不保留用户数据。 

我们在cherry-studio添加一个智能体名字叫做“数据分析专家”

image-20250505152515868
image-20250505152525641

​ 完成智能体添加后,我们在聊天助手中添加一个叫做“数据分析专家”智能体

image-20250505152602600

模型这里我们选择2025年4月29日阿里发布的qwen3-235B-A22B模型,关于这个模型大家可以在摩搭社区里面找,这里就不做详细介绍。

接下来我们用到4个mcp-server 所以在聊天对话框把4个mcp-server都勾选上

image-20250505152924134

我们的提示词

请根据“F:\tmp\mcpfiles\zz.xlsx”进行全面分析,并生成一份包含关键洞察和可视化图表的HTML报告 

后面它就开始调用模型提供的函数。

image-20250505153020720
image-20250505153030985

生成总结报告,并把生成的html输出到F:\tmp\mcpfiles\zz_analysis_report.html 中

image-20250505153121513
image-20250505153150856

​ 后面的trae测试方法和这个比较类似,这里就不做详细展开了。

​ 相关资料和文档可以看我开源的项目 https://github.com/wwwzhouhui/dify-for-dsl

4.总结

今天主要带大家了解并实现了使用 cherry - studio 和 trae 实现 excel 表格一键生成可视化图表 html 报告的 MCP 案例。我们详细讲解了 mcp - server 的配置过程,分别介绍了在 trae 和 cherry - studio 中配置 sequential - thinking、server - filesystem、excel - mcp - server 和 quickchart - server 这 4 个 mcp - server 的方法。同时,还展示了如何设置提示词、添加智能体、选择模型以及勾选所需的 mcp - server 来完成 excel 数据的分析和可视化报告的生成。这个方案属于比较实用且具有一定创新性的方案,能够帮助用户快速、便捷地将 excel 表格数据转化为可视化的 HTML 报告,提升数据分析和展示的效率。感兴趣的小伙伴可以按照本文步骤去尝试。今天的分享就到这里结束了,我们下一篇文章见。

Read more

Flutter for OpenHarmony:Flutter 三方库 money2 — 坚不可摧的鸿蒙金融核心组件

Flutter for OpenHarmony:Flutter 三方库 money2 — 坚不可摧的鸿蒙金融核心组件

欢迎加入开源鸿蒙跨平台社区:开源鸿蒙跨平台开发者社区 前言 如果您正在开发的 Flutter for OpenHarmony 应用涉及金融核算、商城交易或任何带有财务账单的业务,那么对金额的精确处理将极其关键。 在传统开发中,如果直接使用系统基础的 Double 类型进行财务计算(例如 0.1 + 0.2 会变成 0.30000000000000004),极易导致对账失败,严重时甚至会引发系统性的财务灾难。 money2 这个开源组件正是为了防止这种浮点运算精度丢失而生。它在底层基于大整数操作结合位移来处理金额金额,从而绝对保证在进行复杂的金融计算时,不会丢失哪怕一丝一毫的精度。 一、原理解析 / 概念介绍 1.1 基础概念 money2 绝不仅仅是一堆简单的加减工具函数。其核心思想是使用大整数来表示货币的最小面值单位。例如 1.25 美元,它在底层对象中实际被安全地存储为代表分的大整数 125 和指数 -2。这里面完全规避了极其危险的浮点操作。 系统原始 1.2

By Ne0inhk
Flutter 三方库 metadata_fetch_plus 的鸿蒙化适配指南 - 实现极速的网页元数据提取与 Open Graph 协议解析、支持端侧富文本链接预览渲染实战

Flutter 三方库 metadata_fetch_plus 的鸿蒙化适配指南 - 实现极速的网页元数据提取与 Open Graph 协议解析、支持端侧富文本链接预览渲染实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 metadata_fetch_plus 的鸿蒙化适配指南 - 实现极速的网页元数据提取与 Open Graph 协议解析、支持端侧富文本链接预览渲染实战 前言 在进行 Flutter for OpenHarmony 的社交媒体、新闻资讯或即时通讯类应用开发时,如何根据用户分享的一个单薄的 URL,自动生动地展示出其对应的网页标题、封面图及描述信息?metadata_fetch_plus 是专为网页语义数据抓取设计的利器。它深度支持 Open Graph, Twitter Cards, Scheme.org 等主流元数据协议。本文将探讨如何在鸿蒙端构建极致的链接预览体验。 一、原直观解析 / 概念介绍 1.1 基础原理 该库建立在高效的 HTML 语义解析逻辑之上。

By Ne0inhk
Flutter 三方库 nordigen_integration 的鸿蒙化适配指南 - 安全接入全球金融数据、处理 OAuth2 开放银行协议及账户集成实战

Flutter 三方库 nordigen_integration 的鸿蒙化适配指南 - 安全接入全球金融数据、处理 OAuth2 开放银行协议及账户集成实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 nordigen_integration 的鸿蒙化适配指南 - 安全接入全球金融数据、处理 OAuth2 开放银行协议及账户集成实战 前言 随着全球金融数字化的浪潮,个人财务管理(PFM)和开放银行(Open Banking)应用正以前所未有的速度渗透进我们的生活。在欧洲,PSD2 协议的强制推行使得开发者可以通过标准化的 API 安全地访问成千上万家银行的账户数据。 nordigen_integration 正是这一领域的佼佼者,它极简地封装了 GoCardless(原 Nordigen)的复杂 API,让开发者只需几行代码即可完成银行授权和交易拉取。 当我们将这类高安全、高合规性的应用适配到 OpenHarmony 平台时,隐私数据的隔离保护、OAuth2 的安全重定向以及跨国界的数据一致性成为了新的挑战。本文将为你详解如何在鸿蒙生态中构建一条通往全球银行系统的“数字专线”。 一、原理解析 / 概念介绍

By Ne0inhk
[linux仓库]多线程数据竞争?一文搞定互斥锁与原子操作[线程·伍]

[linux仓库]多线程数据竞争?一文搞定互斥锁与原子操作[线程·伍]

🌟 各位看官好,我是egoist2023! 🌍 Linux == Linux is not Unix ! 🚀 今天来学习Linux的线程互斥、原子性的深入理解及锁操作的底层理解。 👍 如果觉得这篇文章有帮助,欢迎您一键三连,分享更多人哦! 目录 线程互斥 进程线程间的互斥相关背景 算逻运算 互斥锁 锁操作 原子性 原生C++11 mutex抢票Demo 互斥量的封装 线程互斥 * 大部分情况,线程使⽤的数据都是局部变量,变量的地址空间在线程栈空间内,这种情况,变量归属单个线程,其他线程⽆法获得这种变量。 * 但有时候,很多变量都需要在线程间共享,这样的变量称为共享变量,可以通过数据的共享,完成线程之间的交互。 * 多个线程并发的操作共享变量,会带来⼀些问题。 int tickets = 1000; void *routel(void* args) { std::string name

By Ne0inhk