项目简介

'local-workbook-mcp' 是一个基于.NET开发的本地Model Context Protocol (MCP) 服务器,专为Excel工作簿的对话式分析设计。它允许用户通过自然语言与电子表格进行交互,提问、搜索数据、预览表格,甚至在不离开终端的情况下切换不同的工作簿。所有处理都在本地完成,确保数据隐私安全。

主要功能点

  • Excel工作簿分析: 将Excel工作簿的结构和数据转化为MCP资源和工具,供LLM(大型语言模型)应用消费。
  • 数据查询与搜索: 支持自然语言查询,如查找特定数据、搜索跨工作表/表格的行。
  • 工作簿结构概览: 获取工作簿的详细元数据,包括工作表名称、表格名称、列标题和行数。
  • 数据预览: 预览工作表或表格的实际数据行(CSV格式)。
  • 本地优先: 所有数据处理均在本地机器上进行,无需上传敏感文件。
  • 跨平台: 基于.NET 9,支持Windows、Linux和macOS。
  • 终端交互: 提供AS/400风格的命令行界面代理,支持调试日志和工作簿切换。

安装步骤

  1. 安装.NET SDK 9.0+: 访问.NET官方网站下载并安装对应操作系统的SDK。
  2. 安装PowerShell 7+ (可选): 如果您计划使用打包脚本,请安装PowerShell 7及以上版本。
  3. 克隆仓库:
    git clone https://github.com/McFuzzySquirrel/local-workbook-mcp.git
    cd local-workbook-mcp
  4. 构建项目:
    dotnet build
    dotnet test
  5. 创建示例工作簿 (可选):
    pwsh -File scripts/create-sample-workbooks.ps1
    此脚本会在 'test-data/' 目录下生成用于测试的Excel文件,包括 'ProjectTracking.xlsx'、'EmployeeDirectory.xlsx' 和 'BudgetTracker.xlsx'。

服务器配置 (供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' 进行交互式体验:

  1. 启动本地LLM服务器: 确保您的本地大型语言模型服务器(如LM Studio、Ollama)正在运行,并监听在指定端口(例如:'http://localhost:1234/v1')。
  2. 运行SK CLI Agent:
    dotnet run --project src/ExcelMcp.SkAgent -- --workbook "test-data/ProjectTracking.xlsx"
    (请将'test-data/ProjectTracking.xlsx'替换为您自己的Excel文件路径)
  3. 开始对话: 在终端中输入问题,例如:
    • '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请求。

信息

分类

桌面与硬件