项目简介
'local-workbook-mcp' 是一个基于.NET开发的本地Model Context Protocol (MCP) 服务器,专为Excel工作簿的对话式分析设计。它允许用户通过自然语言与电子表格进行交互,提问、搜索数据、预览表格,甚至在不离开终端的情况下切换不同的工作簿。所有处理都在本地完成,确保数据隐私安全。
主要功能点
- Excel工作簿分析: 将Excel工作簿的结构和数据转化为MCP资源和工具,供LLM(大型语言模型)应用消费。
- 数据查询与搜索: 支持自然语言查询,如查找特定数据、搜索跨工作表/表格的行。
- 工作簿结构概览: 获取工作簿的详细元数据,包括工作表名称、表格名称、列标题和行数。
- 数据预览: 预览工作表或表格的实际数据行(CSV格式)。
- 本地优先: 所有数据处理均在本地机器上进行,无需上传敏感文件。
- 跨平台: 基于.NET 9,支持Windows、Linux和macOS。
- 终端交互: 提供AS/400风格的命令行界面代理,支持调试日志和工作簿切换。
安装步骤
- 安装.NET SDK 9.0+: 访问.NET官方网站下载并安装对应操作系统的SDK。
- 安装PowerShell 7+ (可选): 如果您计划使用打包脚本,请安装PowerShell 7及以上版本。
- 克隆仓库:
git clone https://github.com/McFuzzySquirrel/local-workbook-mcp.git cd local-workbook-mcp - 构建项目:
dotnet build dotnet test - 创建示例工作簿 (可选):
此脚本会在 'test-data/' 目录下生成用于测试的Excel文件,包括 'ProjectTracking.xlsx'、'EmployeeDirectory.xlsx' 和 'BudgetTracker.xlsx'。pwsh -File scripts/create-sample-workbooks.ps1
服务器配置 (供MCP客户端连接参考)
MCP客户端(如VS Code扩展或其他支持MCP协议的LLM应用)需要知道如何启动此MCP服务器并与其通信。以下是一个JSON格式的配置示例,您需要将 'command' 路径替换为 'ExcelMcp.Server.exe' (Windows) 或 'ExcelMcp.Server' (Linux/macOS) 的实际路径。
{ "server": { "name": "excel-workbook-mcp", "type": "stdio", "command": "C:/path/to/local-workbook-mcp/src/ExcelMcp.Server/bin/Debug/net9.0/ExcelMcp.Server.exe", // 上述为Windows示例路径。如果您使用Linux/macOS,请替换为类似 // "/path/to/local-workbook-mcp/src/ExcelMcp.Server/bin/Debug/net9.0/ExcelMcp.Server" 的路径。 "args": [ "--workbook", "D:/Data/sample.xlsx" // 替换为您要分析的Excel工作簿的完整路径。 ] } }
配置信息解释:
- 'name': 服务器的唯一标识符,建议保持 'excel-workbook-mcp'。
- 'type': 通信协议类型,此服务器通过 'stdio' (标准输入/输出) 进行通信。
- 'command': MCP服务器可执行文件的完整路径。例如,在Windows上,可能是在您克隆仓库的 'local-workbook-mcp/src/ExcelMcp.Server/bin/Debug/net9.0/' 目录下的 'ExcelMcp.Server.exe' 文件。
- 'args': 启动MCP服务器时需要传递的命令行参数。
- '--workbook': 这是一个必需的参数,用于指定MCP服务器要加载和分析的Excel工作簿的完整路径。例如,您可以配置为 '"C:/Users/YourUser/Documents/MyData.xlsx"'。
基本使用方法 (通过内置的Semantic Kernel CLI Agent)
推荐使用项目提供的 'Semantic Kernel CLI Agent' 进行交互式体验:
- 启动本地LLM服务器: 确保您的本地大型语言模型服务器(如LM Studio、Ollama)正在运行,并监听在指定端口(例如:'http://localhost:1234/v1')。
- 运行SK CLI Agent:
(请将'test-data/ProjectTracking.xlsx'替换为您自己的Excel文件路径)dotnet run --project src/ExcelMcp.SkAgent -- --workbook "test-data/ProjectTracking.xlsx" - 开始对话: 在终端中输入问题,例如:
- 'what tables exist in this workbook?' (此工作簿中存在哪些表格?)
- 'show me all high priority tasks' (显示所有高优先级任务)
- 'load test-data/EmployeeDirectory.xlsx' (加载新的工作簿)
- 'who works in Engineering?' (谁在工程部门工作?)
- 'exit' (退出应用程序)
直接运行MCP服务器 (供其他MCP客户端连接)
如果您想将此MCP服务器集成到其他兼容MCP协议的客户端应用中,可以独立运行服务器:
dotnet run --project src/ExcelMcp.Server -- --workbook "D:/Data/sample.xlsx"
此命令将启动MCP服务器,并通过标准输入/输出通道等待MCP客户端的JSON-RPC请求。
信息
分类
桌面与硬件