Chatexcel Mcp is an enterprise-grade MCP server built on FastMCP that provides intelligent Excel file processing, data analysis, formula calculation, and visualization capabilities. The server offers 31 specialized tools organized across data reading, processing, validation, visualization, and formula execution, supported by dual Python and Go processing engines with advanced features including Excel formula parsing/compilation/execution, multi-level data quality control, and enterprise-level security with code sandboxing and AST analysis. It solves the problem of complex Excel data handling and analysis by providing a unified, secure, and high-performance interface for automated data processing workflows.
最新更新 (2025-06-19): pandas导入问题完全修复,项目结构优化完成,企业级功能全面就绪
🚀 企业级Excel智能处理与数据分析MCP服务器 - 基于FastMCP构建的高性能数据处理解决方案
chatExcel-mcp 是一个基于 MCP (Model Context Protocol) 的企业级 Excel 智能处理服务器,提供强大的 Excel 文件分析、数据处理、公式计算和可视化功能。
ChatExcel MCP Server 是一个功能强大的模型上下文协议(MCP)服务器,专门为Excel文件处理、数据分析和可视化而设计。项目集成了Python生态系统的最佳数据处理库,并通过Go excelize库提供高性能Excel操作能力。
本项目提供 31个专业MCP工具,覆盖Excel数据处理、分析、验证、公式计算和数据质量控制的完整生命周期。
| 工具名称 | 功能描述 | 主要特性 |
|---|---|---|
read_metadata | CSV文件元数据读取和智能分析 | 编码检测、分隔符识别、数据统计 |
read_excel_metadata | Excel文件元数据读取和完整性验证 | 多工作表分析、智能编码检测 |
excel_read_enhanced | 增强版Excel读取工具 | Go excelize集成、智能参数推荐 |
excel_info_enhanced | 增强版Excel文件信息获取 | 详细文件分析、工作表统计 |
| 工具名称 | 功能描述 | 主要特性 |
|---|---|---|
run_excel_code | Excel代码执行引擎 | 安全沙箱、复杂格式参数支持、✅ pandas导入完全修复 |
run_code | CSV代码执行引擎 | 安全环境、pandas集成、✅ 增强执行环境 |
excel_write_enhanced | 增强版Excel写入工具 | 格式优化、样式支持 |
excel_chart_enhanced | 增强版Excel图表生成 | 多种图表类型、自定义样式 |
excel_performance_comparison | Excel性能对比分析 | Go vs Python性能测试 |
batch_data_verification_tool | 批量数据验证工具 | 并发处理、批量报告 |
| 工具名称 | 功能描述 | 主要特性 |
|---|---|---|
bar_chart_to_html | 交互式柱状图生成 | Chart.js、响应式设计 |
pie_chart_to_html | 交互式饼图生成 | 动画效果、数据标签 |
line_chart_to_html | 交互式折线图生成 | 多维数据、趋势分析 |
| 工具名称 | 功能描述 | 主要特性 |
|---|---|---|
verify_data_integrity | 数据完整性验证和比对核准 | 多种验证模式、详细报告 |
validate_data_quality | 数据质量验证和改进建议 | 质量评分、优化建议 |
comprehensive_data_verification_tool | 综合数据验证和核准工具 | 全面验证、质量评估、比对核准 |
| 工具名称 | 功能描述 | 主要特性 |
|---|---|---|
suggest_excel_read_parameters_tool | Excel读取参数智能推荐 | 结构分析、参数优化 |
detect_excel_file_structure_tool | Excel文件结构检测 | 多级表头、数据区域识别 |
create_excel_read_template_tool | Excel读取代码模板生成 | 智能模板、参数配置 |
| 工具名称 | 功能描述 | 主要特性 |
|---|---|---|
parse_formula | Excel公式解析器 | AST解析、语法分析、安全验证 |
compile_workbook | Excel工作簿编译器 | 公式编译、代码生成、依赖分析 |
execute_formula | Excel公式执行引擎 | 安全执行、上下文支持、结果验证 |
analyze_dependencies | Excel公式依赖分析 | 依赖图生成、循环检测、影响分析 |
validate_formula | Excel公式验证器 | 安全检查、语法验证、风险评估 |
| 工具名称 | 功能描述 | 主要特性 |
|---|---|---|
enhanced_data_quality_check | 增强数据质量检查 | 多级质量检查、综合报告 |
extract_cell_content_advanced | 高级单元格内容提取 | 多类型提取、格式化内容 |
convert_character_formats | 字符格式自动化转换 | 批量转换、规则配置 |
extract_multi_condition_data | 多条件数据提取 | 复杂条件、灵活筛选 |
merge_multiple_tables | 多表格数据合并 | 智能合并、配置化处理 |
clean_excel_data | Excel数据清洗 | 全面清洗、质量提升 |
batch_process_excel_files | 批量Excel文件处理 | 并行处理、统一配置 |
本章节按照用户实际使用场景和数据处理全流程,将31个MCP工具进行分类关联,提供完整的workflow使用指南。
flowchart TD
A[📁 数据源] --> B[🔍 数据探索阶段]
B --> C[📊 数据读取阶段]
C --> D[🔧 数据处理阶段]
D --> E[✅ 数据验证阶段]
E --> F[📈 数据可视化阶段]
F --> G[🧮 公式计算阶段]
G --> H[🔍 质量控制阶段]
H --> I[📤 数据输出阶段]
B --> B1[文件结构检测]
B --> B2[元数据分析]
B --> B3[参数推荐]
C --> C1[智能读取]
C --> C2[编码检测]
C --> C3[模板生成]
D --> D1[代码执行]
D --> D2[数据转换]
D --> D3[批量处理]
E --> E1[完整性验证]
E --> E2[质量检查]
E --> E3[数据比对]
F --> F1[图表生成]
F --> F2[交互可视化]
F --> F3[报告输出]
G --> G1[公式解析]
G --> G2[公式执行]
G --> G3[依赖分析]
H --> H1[数据清洗]
H --> H2[格式转换]
H --> H3[多表合并]
I --> I1[Excel写入]
I --> I2[图表嵌入]
I --> I3[性能对比]
当您拿到一个新的Excel文件时,首先需要了解文件结构、数据特征和最佳读取方式。
| 步骤 | 工具名称 | 使用目的 | 输出结果 |
|---|---|---|---|
| 1️⃣ | excel_info_enhanced | 获取文件基本信息 | 工作表列表、文件大小、格式信息 |
| 2️⃣ | read_excel_metadata | 深度元数据分析 | 数据类型、编码格式、统计信息 |
| 3️⃣ | detect_excel_file_structure_tool | 智能结构检测 | 表头位置、数据区域、合并单元格 |
| 4️⃣ | suggest_excel_read_parameters_tool | 参数智能推荐 | 最佳读取参数配置 |
| 5️⃣ | create_excel_read_template_tool | 生成读取模板 | 可执行的读取代码模板 |
基于探索阶段的分析结果,执行高效、准确的数据读取操作。
| 工具名称 | 适用场景 | 核心优势 | 性能特点 |
|---|---|---|---|
excel_read_enhanced | 标准Excel文件读取 | Go引擎加速、智能参数 | 高性能、大文件支持 |
read_metadata | CSV文件元数据读取 | 编码自动检测、分隔符识别 | 轻量级、快速响应 |
read_excel_metadata | Excel元数据专用 | 多工作表分析、完整性验证 | 全面分析、准确可靠 |
excel_performance_comparison | 性能基准测试 | Python vs Go性能对比 | 性能优化、引擎选择 |
对读取的数据进行清洗、转换、计算和处理操作。
| 处理类型 | 工具名称 | 功能描述 | 安全等级 |
|---|---|---|---|
| 代码执行 | run_excel_code | Excel数据代码执行引擎 | 🔒 沙箱隔离 |
| 代码执行 | run_code | CSV数据代码执行引擎 | 🔒 安全环境 |
| 数据写入 | excel_write_enhanced | 增强版Excel写入工具 | ✅ 格式优化 |
| 图表生成 | excel_chart_enhanced | Excel内嵌图表生成 | 📊 多样式支持 |
| 批量验证 | batch_data_verification_tool | 批量数据验证处理 | ⚡ 并发处理 |
| 性能对比 | excel_performance_comparison | 处理性能基准测试 | 📈 优化建议 |
确保数据质量、完整性和准确性,是数据处理流程中的关键环节。
| 工具名称 | 验证重点 | 输出报告 |
|---|---|---|
verify_data_integrity | 数据完整性、一致性验证 | 详细验证报告、问题定位 |
validate_data_quality | 数据质量评估、改进建议 | 质量评分、优化建议 |
comprehensive_data_verification_tool | 综合验证、全面评估 | 完整验证报告、质量认证 |
| 工具名称 | 专业领域 | 核心功能 |
|---|---|---|
enhanced_data_quality_check | 多级质量检查 | 深度质量分析、综合评估 |
extract_cell_content_advanced | 内容提取分析 | 多类型提取、格式化处理 |
convert_character_formats | 字符格式标准化 | 批量转换、规则配置 |
extract_multi_condition_data | 复杂条件筛选 | 多维度筛选、灵活配置 |
merge_multiple_tables | 多表数据整合 | 智能合并、关系处理 |
clean_excel_data | 数据清洗优化 | 全面清洗、质量提升 |
batch_process_excel_files | 批量文件处理 | 并行处理、统一标准 |
将处理后的数据转换为直观的图表和交互式可视化报告。
| 图表类型 | 工具名称 | 适用场景 | 技术特性 |
|---|---|---|---|
| 柱状图 | bar_chart_to_html | 分类数据对比、趋势分析 | Chart.js、响应式设计 |
| 饼图 | pie_chart_to_html | 占比分析、构成展示 | 动画效果、数据标签 |
| 折线图 | line_chart_to_html | 时间序列、趋势变化 | 多维数据、交互缩放 |
处理复杂的Excel公式、进行高级计算和依赖关系分析。
| 处理阶段 | 工具名称 | 核心功能 | 安全特性 |
|---|---|---|---|
| 解析 | parse_formula | 公式语法分析、AST构建 | 🔒 安全验证、语法检查 |
| 编译 | compile_workbook | 工作簿编译、代码生成 | ⚡ 性能优化、依赖分析 |
| 执行 | execute_formula | 公式安全执行、结果计算 | 🛡️ 沙箱环境、上下文隔离 |
| 分析 | analyze_dependencies | 依赖关系分析、影响评估 | 🔍 循环检测、关系图谱 |
| 验证 | validate_formula | 公式安全验证、风险评估 | ✅ 安全检查、合规验证 |
基于 formulas==1.2.10 库构建的完整Excel公式处理系统,提供从解析到执行的全流程支持。
parse_formula - 公式解析器# 解析Excel公式并获取AST结构
result = parse_formula("=SUM(A1:A10)*2", validate_security=True)
# 返回: 语法树、函数列表、引用单元格、安全状态
compile_workbook - 工作簿编译器# 将Excel文件编译为Python代码或JSON结构
result = compile_workbook("/path/to/file.xlsx", output_format="python")
# 支持格式: 'python', 'json'
execute_formula - 公式执行引擎# 在指定上下文中执行Excel公式
context = '{"A1": 10, "A2": 20}'
result = execute_formula("=A1+A2", context)
# 返回: 计算结果、执行状态、性能指标
analyze_dependencies - 依赖分析器# 分析Excel文件中的公式依赖关系
result = analyze_dependencies("/path/to/file.xlsx")
# 返回: 依赖图、循环检测、影响分析
validate_formula - 公式验证器# 验证公式的安全性和有效性
result = validate_formula("=SUM(A1:A10)")
# 返回: 安全评估、语法检查、风险等级
🔧 关键修复
fallback_enhanced_run_excel_code函数的执行环境pd, pandas, np, numpy)record/目录统一管理🆕 新增模块
enhanced_globals_config.py - 增强的全局配置模块pandas_fix_patch.py - pandas导入修复补丁mcp_pandas_integration.py - MCP服务器集成修复模块🎉 重大更新
🎉 重大更新
| 组件 | 版本要求 | 说明 |
|---|---|---|
| Python | 3.11+ | 推荐使用 Python 3.11 或更高版本 |
| 操作系统 | macOS, Linux, Windows | 全平台支持 |
| 内存 | 4GB+ | 建议8GB以获得更好性能 |
| 磁盘空间 | 1GB+ | 包含依赖和缓存空间 |
| Go | 1.21+ (可选) | 用于高性能Excel处理 |
mcp>=1.9.4, fastmcp>=2.8.0pandas>=1.5.3, numpy>=1.26.4, pandasai>=2.3.0openpyxl>=3.1.5, xlsxwriter>=3.2.5torch>=2.1.0, transformers>=4.39.2, scikit-learn>=1.2.2matplotlib>=3.10.1, seaborn>=0.13.2, plotly>=6.0.1fastapi>=0.115.12, uvicorn>=0.30.6, gradio>=5.23.3本项目已解决以下依赖冲突问题:
pd, pandas, np, numpy)torch==2.1.0 以兼容 torchvision==0.16.0pandasai==2.3.0 并保持 pandas==1.5.3pydantic==2.11.7 以支持MCP和其他现代依赖--trusted-host 参数解决方案record/目录,清理冗余文件如果遇到依赖冲突,请按以下步骤操作:
pip check
python scripts/health_check.py
pip uninstall -y torch torchvision pandasai pandas pydantic
pip install torch==2.1.0 torchvision==0.16.0 --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org
pip install pandasai==2.3.0 --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org
pip install "pydantic>=2.7.2" --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org
pip check
python scripts/health_check.py
### ⚡ 一键部署 (推荐)
```bash
# 1. 克隆项目
git clone https://github.com/chatexcel/chatExcel-mcp.git
cd chatExcel-mcp
# 2. 一键部署(自动安装依赖、配置环境、启动服务)
./start.sh
# 3. 验证部署状态
python scripts/health_check.py
# 1. 创建虚拟环境
python3 -m venv venv
source venv/bin/activate # macOS/Linux
# 或 venv\Scripts\activate # Windows
# 2. 安装依赖
pip install -r requirements.txt --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org
# 3. 启动GO服务 (可选,用于高性能Excel处理)
cd excel-service
go run main.go &
cd ..
# 4. 启动MCP服务器
python server.py
# 检查服务健康状态
curl http://localhost:8080/api/v1/health # GO服务
python scripts/health_check.py # 完整系统检查
# 克隆项目
git clone https://github.com/chatexcel/chatExcel-mcp.git
cd chatExcel-mcp
# 创建虚拟环境
python3 -m venv venv
# 激活虚拟环境
source venv/bin/activate # macOS/Linux
# venv\Scripts\activate # Windows
# 升级pip
pip install --upgrade pip
# 如果遇到SSL证书问题,使用以下命令
pip install -r requirements.txt --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org
# 或者正常安装
pip install -r requirements.txt
# 验证安装
python3 check_dependencies.py
# 运行健康检查脚本
python scripts/health_check.py
# 检查依赖冲突
pip check
# 生成MCP配置文件
python3 generate_mcp_config.py
# 检查环境配置
python3 check_env.py
# 启动标准服务器
python3 server.py
# 或启动增强版服务器(推荐)
python3 enhanced_server.py
# 后台运行
nohup python3 server.py > chatexcel.log 2>&1 &
# 拉取镜像
docker pull chatexcel/mcp-server:latest
# 运行容器
docker run -d \
--name chatexcel-mcp \
-p 8080:8080 \
-v $(pwd)/data:/app/data \
-v $(pwd)/config:/app/config \
chatexcel/mcp-server:latest
# 构建镜像
docker build -t chatexcel-mcp .
# 运行容器
docker run -d \
--name chatexcel-mcp \
-p 8080:8080 \
-v $(pwd)/data:/app/data \
chatexcel-mcp
# 运行健康检查
python3 scripts/health_check.py
# 运行功能测试
python3 test/quick_test.py
# 验证MCP工具
python3 comprehensive_mcp_test.py
# 检查服务状态
curl http://localhost:8080/health
chatExcel-mcp/
├── chatexcel_mcp/ # 主要源代码
│ ├── __init__.py
│ ├── server.py # MCP服务器主文件
│ ├── tools/ # 工具模块
│ │ ├── excel_tools.py # Excel操作工具
│ │ ├── chart_tools.py # 图表生成工具
│ │ └── ai_tools.py # AI分析工具
│ └── utils/ # 工具函数
├── tests/ # 测试文件(已创建)
├── docs/ # 文档
├── examples/ # 示例文件
├── scripts/ # 脚本文件
│ └── health_check.py # 健康检查脚本
├── requirements.txt # 依赖列表(已更新)
├── pyproject.toml # 项目配置(已更新)
└── README.md # 项目说明
项目包含完整的健康检查机制:
# 运行完整健康检查
python scripts/health_check.py
健康检查包括:
当前环境已验证兼容:
在 ~/Library/Application Support/Claude/claude_desktop_config.json 中添加:
{
"mcpServers": {
"chatexcel": {
"command": "python3",
"args": ["/path/to/chatExcel-mcp2.0/server.py"],
"env": {
"PYTHONPATH": "/path/to/chatExcel-mcp2.0"
}
}
}
}
# 生成MCP配置文件
python3 generate_mcp_config.py
# 查看生成的配置
cat mcp_config_absolute.json
创建 .env 文件:
# 服务配置
MCP_SERVER_HOST=localhost
MCP_SERVER_PORT=8080
MCP_LOG_LEVEL=INFO
# Excel处理配置
EXCEL_MAX_FILE_SIZE=100MB
EXCEL_CACHE_ENABLED=true
EXCEL_GO_SERVICE_URL=http://localhost:8081
# 安全配置
CODE_EXECUTION_TIMEOUT=30
MAX_MEMORY_USAGE=1GB
SECURE_MODE=true
# 使用MCP工具读取Excel文件
result = await mcp_client.call_tool(
"read_excel_metadata",
{"file_path": "/path/to/your/file.xlsx"}
)
print(f"工作表数量: {result['sheets_count']}")
print(f"数据行数: {result['total_rows']}")
print(f"编码格式: {result['encoding']}")
# 获取最佳读取参数
params = await mcp_client.call_tool(
"suggest_excel_read_parameters_tool",
{"file_path": "/path/to/complex.xlsx"}
)
# 使用推荐参数读取
data = await mcp_client.call_tool(
"excel_read_enhanced",
{
"file_path": "/path/to/complex.xlsx",
**params["recommended_params"]
}
)
print(f"读取成功,数据形状: {data['shape']}")
# 执行数据分析代码
analysis = await mcp_client.call_tool(
"run_excel_code",
{
"file_path": "/path/to/data.xlsx",
"code": """
# 数据清洗和分析
df_clean = df.dropna()
summary = df_clean.describe()
correlation = df_clean.corr()
# 数据质量检查
missing_data = df.isnull().sum()
duplicate_rows = df.duplicated().sum()
print("=== 数据摘要 ===")
print(summary)
print(f"\n缺失数据: {missing_data.sum()}")
print(f"重复行数: {duplicate_rows}")
"""
}
)
# 生成交互式柱状图
chart = await mcp_client.call_tool(
"bar_chart_to_html",
{
"labels": ["Q1", "Q2", "Q3", "Q4"],
"datasets": [
{
"label": "销售额(万元)",
"data": [120, 150, 180, 200],
"backgroundColor": "rgba(54, 162, 235, 0.6)"
}
],
"title": "2024年季度销售报告",
"options": {
"responsive": True,
"plugins": {
"legend": {"display": True}
}
}
}
)
print(f"图表已生成: {chart['filepath']}")
# 解析Excel公式
formula_result = await mcp_client.call_tool(
"parse_formula",
{
"formula": "=SUM(A1:A10)*0.1+AVERAGE(B1:B10)",
"validate_security": True
}
)
print(f"公式解析成功: {formula_result['is_valid']}")
print(f"引用单元格: {formula_result['references']}")
# 执行公式
execute_result = await mcp_client.call_tool(
"execute_formula",
{
"formula": "=A1+B1",
"context": '{"A1": 10, "B1": 20}'
}
)
print(f"计算结果: {execute_result['result']}")
# 增强数据质量检查
quality_check = await mcp_client.call_tool(
"enhanced_data_quality_check",
{
"file_path": "/path/to/data.xlsx",
"check_types": ["completeness", "consistency", "accuracy"],
"generate_report": True
}
)
print(f"数据质量评分: {quality_check['quality_score']}")
print(f"发现问题: {len(quality_check['issues'])}")
# 批量数据验证
batch_verification = await mcp_client.call_tool(
"batch_data_verification_tool",
{
"file_paths": [
"/path/to/file1.xlsx",
"/path/to/file2.xlsx"
],
"verification_rules": {
"check_duplicates": True,
"validate_formats": True,
"check_completeness": True
}
}
)
print(f"批量验证完成,处理文件数: {batch_verification['processed_count']}")
graph TB
A[MCP Client] --> B[FastMCP Server]
B --> C[Tool Router]
C --> D[Excel Engine]
C --> E[Data Engine]
C --> F[Chart Engine]
D --> G[Python pandas]
D --> H[Go excelize]
D --> I[openpyxl]
E --> J[Data Validator]
E --> K[Code Executor]
E --> L[Cache Manager]
F --> M[Chart.js]
F --> N[Plotly]
F --> O[Matplotlib]
P[Security Layer] --> C
Q[Monitoring] --> B
R[Logging] --> B
chatExcel-mcp/
├── server.py # 主服务器文件(19个MCP工具)
├── enhanced_server.py # 增强版服务器
├── config.py # 配置管理
├── excel_enhanced_tools.py # Excel增强工具
├── excel_smart_tools.py # Excel智能工具
├── data_verification.py # 数据验证引擎
├── comprehensive_data_verification.py # 综合数据验证
├── excel-service/ # Go excelize服务
│ ├── main.go
│ ├── go.mod
│ └── go.sum
├── templates/ # 图表模板
│ ├── barchart_template.html
│ ├── linechart_template.html
│ └── piechart_template.html
├── scripts/ # 运维脚本
│ ├── deploy.py
│ ├── health_check.py
│ └── maintenance.sh
├── config/ # 配置文件
│ ├── runtime.yaml
│ ├── security.json
│ └── system.json
└── tests/ # 测试套件
├── unit/
├── integration/
└── performance/
sequenceDiagram
participant C as Client
participant S as Server
participant E as Excel Engine
participant G as Go Service
participant P as Python Engine
C->>S: 调用excel_read_enhanced
S->>E: 路由到Excel引擎
E->>G: 尝试Go excelize
alt Go服务可用
G-->>E: 返回高性能结果
else Go服务不可用
E->>P: 降级到pandas
P-->>E: 返回标准结果
end
E-->>S: 返回处理结果
S-->>C: 返回最终结果
sequenceDiagram
participant C as Client
participant S as Server
participant V as Validator
participant R as Reporter
C->>S: 调用verify_data_integrity
S->>V: 启动验证引擎
V->>V: 结构验证
V->>V: 数据类型检查
V->>V: 完整性验证
V->>V: 统计分析
V->>R: 生成验证报告
R-->>S: 返回详细报告
S-->>C: 返回验证结果
sequenceDiagram
participant C as Client
participant S as Server
participant SE as Security Engine
participant EX as Executor
participant M as Monitor
C->>S: 调用run_excel_code
S->>SE: 安全检查
SE->>SE: 黑名单过滤
SE->>SE: 语法验证
SE-->>S: 安全通过
S->>EX: 沙箱执行
EX->>M: 监控执行
M->>M: 资源监控
M->>M: 超时检查
EX-->>S: 返回执行结果
S-->>C: 返回最终结果
graph LR
A[请求] --> B{缓存检查}
B -->|命中| C[返回缓存]
B -->|未命中| D[处理请求]
D --> E[更新缓存]
E --> F[返回结果]
G[缓存策略]
G --> H[LRU淘汰]
G --> I[TTL过期]
G --> J[内存限制]
# 并发处理示例
class ConcurrentProcessor:
def __init__(self, max_workers=4):
self.executor = ThreadPoolExecutor(max_workers=max_workers)
self.semaphore = asyncio.Semaphore(max_workers)
async def process_batch(self, tasks):
async with self.semaphore:
futures = [self.executor.submit(task) for task in tasks]
results = await asyncio.gather(*futures)
return results
graph TB
A[用户请求] --> B[输入验证层]
B --> C[权限检查层]
C --> D[代码安全层]
D --> E[执行沙箱层]
E --> F[输出过滤层]
F --> G[审计日志层]
H[安全策略]
H --> I[黑名单过滤]
H --> J[白名单验证]
H --> K[资源限制]
H --> L[超时控制]
graph LR
A[异常发生] --> B{异常类型}
B -->|安全异常| C[安全日志]
B -->|业务异常| D[业务日志]
B -->|系统异常| E[系统日志]
C --> F[告警通知]
D --> G[用户反馈]
E --> H[运维通知]
F --> I[安全响应]
G --> J[错误恢复]
H --> K[系统修复]
# 插件接口定义
class MCPToolPlugin:
def __init__(self, name: str, version: str):
self.name = name
self.version = version
def register_tools(self, mcp_server):
"""注册MCP工具"""
raise NotImplementedError
def initialize(self, config: dict):
"""初始化插件"""
pass
def cleanup(self):
"""清理资源"""
pass
# 插件管理器
class PluginManager:
def __init__(self):
self.plugins = {}
def load_plugin(self, plugin_class, config=None):
plugin = plugin_class()
plugin.initialize(config or {})
self.plugins[plugin.name] = plugin
return plugin
# 动态配置示例
class ConfigManager:
def __init__(self, config_path="config/"):
self.config_path = Path(config_path)
self.configs = {}
self.watchers = {}
def load_config(self, name: str) -> dict:
config_file = self.config_path / f"{name}.yaml"
with open(config_file, 'r') as f:
config = yaml.safe_load(f)
self.configs[name] = config
return config
def watch_config(self, name: str, callback):
"""监控配置文件变化"""
self.watchers[name] = callback
# 健康检查示例
class HealthChecker:
def __init__(self):
self.checks = {
"database": self.check_database,
"cache": self.check_cache,
"disk_space": self.check_disk_space,
"memory": self.check_memory
}
async def run_health_check(self) -> dict:
results = {}
for name, check_func in self.checks.items():
try:
results[name] = await check_func()
except Exception as e:
results[name] = {"status": "error", "error": str(e)}
overall_status = "healthy" if all(
r.get("status") == "healthy" for r in results.values()
) else "unhealthy"
return {
"status": overall_status,
"checks": results,
"timestamp": datetime.utcnow().isoformat()
}
graph TB
A[应用日志] --> B[日志收集器]
C[性能指标] --> D[指标收集器]
E[错误追踪] --> F[错误收集器]
B --> G[日志存储]
D --> H[指标存储]
F --> I[错误存储]
G --> J[日志分析]
H --> K[监控告警]
I --> L[错误分析]
J --> M[运维仪表板]
K --> M
L --> M
# 运行所有测试
python3 -m pytest tests/ -v
# 运行特定测试
python3 comprehensive_mcp_test.py
python3 final_verification.py
# 性能测试
python3 test/performance/benchmark.py
# 服务健康检查
curl http://localhost:8080/health
# 详细诊断
python3 diagnose_mcp_setup.py
# Excel功能验证
python3 demo_excel_features.py
# NumPy和Pandas功能验证
python3 -c "import numpy as np; import pandas as pd; print('✅ 核心依赖正常')"
# Excel智能处理功能测试
python3 test_excel_smart_features.py
# Go服务连接测试
python3 excel_go_client.py --test
# 部署脚本
./scripts/deploy.py --env production
# 健康检查
./scripts/health_check.py --detailed
# 维护脚本
./scripts/maintenance.sh --clean-cache
# 依赖更新
./scripts/update_dependencies.sh
# 清理缓存
python3 cache_manager.py --clean
# 缓存统计
python3 cache_manager.py --stats
# 缓存配置
vim cache_config.json
# 查看实时日志
tail -f logs/chatExcel.log
# 日志分析
python3 scripts/log_analyzer.py --date today
# 日志轮转
logrotate config/logrotate.conf
# 运行全面诊断工具
python3 diagnose_mcp_setup.py
# 检查系统健康状态
python3 scripts/health_check.py --detailed
# 验证所有依赖
python3 check_dependencies.py
问题症状: 服务无法启动或立即退出
# 检查端口占用
lsof -i :8080
# 如果端口被占用,杀死进程或更换端口
kill -9 <PID>
# 检查Python环境
which python3
python3 --version
# 检查依赖完整性
pip check
pip list | grep -E "fastmcp|pandas|openpyxl"
# 查看详细错误日志
python3 server.py --debug
# 或查看日志文件
tail -f chatExcel.log
解决方案:
# 重新安装依赖
pip install --upgrade --force-reinstall -r requirements.txt
# 清理缓存
pip cache purge
python3 -c "import shutil; shutil.rmtree('.encoding_cache', ignore_errors=True)"
# 使用不同端口启动
MCP_SERVER_PORT=8081 python3 server.py
问题症状: 无法读取Excel文件或读取结果异常
# 检查文件权限和格式
ls -la /path/to/file.xlsx
file /path/to/file.xlsx
# 验证文件完整性
python3 -c "import openpyxl; wb=openpyxl.load_workbook('/path/to/file.xlsx'); print('文件正常')"
# 测试基础读取功能
python3 test/simple_test.py /path/to/file.xlsx
解决方案:
# 修复文件权限
chmod 644 /path/to/file.xlsx
# 使用不同的读取引擎
python3 -c "
import pandas as pd
# 尝试不同引擎
for engine in ['openpyxl', 'xlrd']:
try:
df = pd.read_excel('/path/to/file.xlsx', engine=engine)
print(f'{engine} 引擎成功')
break
except Exception as e:
print(f'{engine} 引擎失败: {e}')
"
# 检查编码问题
python3 utils/encoding_detector.py /path/to/file.xlsx
问题症状: Go excelize服务无法连接或响应超时
# 检查Go服务状态
ps aux | grep excel-service
lsof -i :8081
# 测试Go服务连接
curl -v http://localhost:8081/health
telnet localhost 8081
解决方案:
# 重新编译Go服务
cd excel-service
go mod tidy
go build -o excel-service main.go
# 启动Go服务
./excel-service &
# 如果Go不可用,禁用Go服务
export EXCEL_GO_SERVICE_ENABLED=false
python3 server.py
问题症状: 代码执行被阻止或安全检查失败
# 检查安全配置
cat config/security.json
# 测试安全模式
python3 -c "
from security.secure_code_executor import SecureCodeExecutor
executor = SecureCodeExecutor()
result = executor.execute('print(\"Hello World\")')
print(result)
"
解决方案:
# 调整安全配置(谨慎操作)
vim config/security.json
# 临时禁用严格模式(仅用于调试)
export SECURE_MODE=false
python3 server.py
# 检查黑名单配置
python3 -c "from config import SECURITY_CONFIG; print(SECURITY_CONFIG['blacklisted_modules'])"
问题症状: 处理大文件时内存不足或响应缓慢
# 监控内存使用
top -p $(pgrep -f server.py)
# 检查缓存状态
python3 cache_manager.py --stats
# 清理缓存
python3 cache_manager.py --clean
解决方案:
# 调整内存限制
export MAX_MEMORY_USAGE=2GB
export EXCEL_MAX_FILE_SIZE=50MB
# 启用分块处理
export CHUNK_SIZE=10000
python3 server.py
# 优化缓存配置
vim cache_config.json
# 简单功能测试
python3 test/simple_debug.py
# MCP工具测试
python3 comprehensive_mcp_test.py
# 快速验证
python3 test/quick_test.py
# 性能分析
python3 -m cProfile -o profile.stats server.py
python3 -c "import pstats; p=pstats.Stats('profile.stats'); p.sort_stats('cumulative').print_stats(10)"
# 内存分析
python3 -m memory_profiler server.py
# 网络调试
netstat -tulpn | grep :8080
ss -tulpn | grep :8080
# 实时日志监控
tail -f chatExcel.log | grep -E "ERROR|WARNING"
# 日志统计分析
python3 scripts/log_analyzer.py --date today --level ERROR
# 清理旧日志
find . -name "*.log" -mtime +7 -delete
如果以上解决方案无法解决问题,请:
收集诊断信息:
python3 diagnose_mcp_setup.py > diagnosis.txt
python3 --version >> diagnosis.txt
pip list >> diagnosis.txt
创建最小复现示例:
python3 test/create_minimal_test.py
提交Issue: 访问 GitHub Issues 并附上诊断信息
本项目采用 MIT License 开源协议。
我们欢迎社区贡献!请遵循以下步骤:
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)# 代码格式化
black .
# 代码检查
flake8 .
# 类型检查
mypy .
# 安全检查
bandit -r .
感谢以下开源项目的支持:
⭐ 如果这个项目对您有帮助,请给我们一个星标!
com.mcparmory/google-sheets
domdomegg/google-sheets-mcp
henilcalagiya/google-sheets-mcp
cct15/war-dashboard-data
moooonad/mcp-google-sheets-full
io.github.br0ski777/csv-to-json