mcpField
M
microsoft-excel

microsoft-excel

github.com/acedatacloudDocuments17177 installsUpdated today
Repository

About microsoft-excel

microsoft-excel is a skill for working with live Excel workbooks stored in OneDrive or SharePoint. It uses Microsoft Graph workbook APIs through curl and jq to inspect worksheets and ranges and make edits to cloud workbooks.

Key features

  1. 01Find cloud workbooks by name
  2. 02List workbook worksheets
  3. 03Read used and specified ranges
  4. 04Write values to ranges
  5. 05Append rows to tables

Use cases

  1. 01Inspecting a workbook stored in OneDrive
  2. 02Updating cell values in a range
  3. 03Adding a record to a workbook table

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/acedatacloud/skills --skill microsoft-excel

After installing, type/microsoft-excelin Claude Code to confirm it loaded.

Details

From the project README

Drive live Excel workbooks via the Microsoft Graph workbook API with curl + jq. The user's OAuth bearer token is in $MICROSOFT_EXCEL_TOKEN; every call needs Authorization: Bearer $MICROSOFT_EXCEL_TOKEN. Base URL: https://graph.microsoft.com/v1.0. The workbook API operates on a drive item (an .xlsx in OneDrive/SharePoint), so you need its ITEM_ID.

Failures are {"error":{"code","message"}} — show message verbatim. 401 = token expired (re-install). 403 on a write = the user granted read-only.

G="https://graph.microsoft.com/v1.0"; AUTH="Authorization: Bearer $MICROSOFT_EXCEL_TOKEN"
# Find the workbook by name (then take .id as ITEM_ID)
curl -sS -H "$AUTH" "$G/me/drive/root/search(q='budget.xlsx')" \
  | jq '.value[] | {id, name, webUrl}'
# Worksheets in the workbook
curl -sS -H "$AUTH" "$G/me/drive/items/ITEM_ID/workbook/worksheets" \
  | jq '.value[] | {id, name, position}'

Read & write ranges

ITEM="ITEM_ID"; WS="Sheet1"
# Used range (values + formulas + formats)
curl -sS -H "$AUTH" \
  "$G/me/drive/items/$ITEM/workbook/worksheets/$WS/usedRange" \
  | jq '{address, values: .values}'

# Read a specific range
curl -sS -H "$AUTH" \
  "$G/me/drive/items/$ITEM/workbook/worksheets/$WS/range(address='A1:C5')" | jq '.values'

# Update a range (confirm first). values is a 2-D array matching the address shape.
curl -sS -X PATCH -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"values":[["Q3",1200],["Q4",1580]]}' \
  "$G/me/drive/items/$ITEM/workbook/worksheets/$WS/range(address='A2:B3')" | jq '.address'

Append a row to a table

curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"values":[["2026-06-21","Acme",4200]]}' \
  "$G/me/drive/items/$ITEM/workbook/tables/Table1/rows/add" | jq '.index'

Gotchas

  • This is for cloud workbooks (OneDrive/SharePoint). A local .xlsx the user uploaded into chat is a different job (parse the file directly), not this skill.
  • Range address is a string like Sheet1!A1:C5 or just A1:C5 when scoped to a worksheet; values must be a 2-D array matching its dimensions.
  • For long-running edits Graph supports a workbook session header (workbook-session-id); for a few cells the default sessionless mode is fine.

Comments

Markdown supported