graph-excel-mcp
MCP服务器,通过microsoftgraph在SharePoint, OneDrive或Teams上阅读和编辑Excel工作簿,无需浏览器。它是用TypeScript编写的,没有运行时依赖,运行在Node 18或更高版本上。
它是为几个人同时编辑的工作簿构建的:
- 每次写作都是从演练开始的。
- 在写入之前,它根据您读取的版本检查单元格的当前内容,因此它不会覆盖其他人的编辑。
- 写入后,它将读取单元格以确认更改。
安装
Claude代码/任何MCP主机(stdio):
claude mcp add --scope user graph-excel -- npx -y graph-excel-mcp
{ "mcpServers": { "graph-excel": { "command": "npx", "args": ["-y", "graph-excel-mcp"] } } }
克劳德桌面扩展: 下载 graph-excel-mcp-<version>.mcpb 从 最新版本 然后打开它。
Claude插件(Cowork, Claude Code): 安装 plugin/ 这个回购的文件夹。它包含服务器和a graph-excel 技能。
登录
调用 login_status 工具,或运行 npx graph-excel-mcp login,然后输入显示的代码 https://login.microsoft.com/device. 刷新令牌保存在 ~/.graph-excel/token.json 模式为600。集 GRAPH_EXCEL_HOME 把它放在别的地方。
登录使用带有委托作用域的Microsoft Graph PowerShell公共客户端 Files.ReadWrite.All,所以你不需要注册应用程序。如果你的租户阻止用户同意,管理员必须批准该客户端一次。
工作簿的别名
您可以添加别名,而不是每次都粘贴SharePoint URL ~/.graph-excel/workbooks.json (见 workbooks.example.json). 这个 resolve 工具返回 driveId 和 itemId 你需要一个别名。
工具
| 工具 | 它是做什么的 |
|---|---|
login_status | 检查令牌,或启动设备代码登录 |
resolve | 返回驱动器/项目id,最后修改,以及使用范围的工作表 |
read_range | 返回值加a sha256: 每个单元格散列,并根据请求填充 |
write_values | 使用基本检查(expected)和回读验证 |
append_update | 在单元格现有文本下添加或替换“-----update-----”部分,保持原始部分字节相同,并可以用颜色填充行 |
set_fill | 设置或清除单个批处理中一个或多个区域的填充颜色 |
笔记
- 每个调用都在工作簿会话中运行。即使应用了写操作,大型工作簿上的无会话调用也会因504而超时。
- 换行被发送为
\n, Excel将其存储为\r\n. 如果你写\r\n直接地,细胞最终变成了流浪狗_x000D_。
发展
开发需要Node 22.18或更高版本,它运行 .ts 直接来源。
| 命令 | 它是做什么的 |
|---|---|
npm run mcp / npm run login | 运行服务器或终端登录 src/ |
npm run typecheck | 运行 tsc 在严格模式下,没有发射 |
npm test | 运行离线测试:范围解析、更新组合和MCP握手 src/ 和 dist/ |
npm run build | 编译 src/ 来 dist/,也就是npm .mcpb 然后插件运行 |
npm run pack | 构建,然后写入 build/*.mcpb (gitignored)和 plugin/ (承诺) |
布局:
| 路径 | 内容 |
|---|---|
src/graph.ts | Auth和图形客户端 |
src/excel.ts | 工作簿操作 |
src/mcp.ts | 工具和JSON-RPC服务器 |
src/cli.ts | 入口 |
释放
撞 version 在 package.json、运行 npm run pack,提交,然后推入匹配的标签:
git tag v0.3.1 && git push origin v0.3.1
这个 Publish 工作流运行测试,通过可信发布(没有令牌或OTP;附上出处)发布到npm,并使用 .mcpb 附呈。
许可证
麻省理工学院