89835d949805605f473fdb6a1aabacd60c304abc
New mcp-server/ exposes SharePoint Lists as MCP tools (test, list_lists, get_columns, list_items, get_item, create/update/delete_item) via the same graph.mjs core. Supports stdio (Claude Desktop/Code/Cowork) and Streamable HTTP (--http). SP_READONLY gates write tools. Adds project .mcp.json and ignores build artifacts. Verified end-to-end live over stdio and HTTP initialize. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-SharepointLists
A Claude Code skill for connecting to Microsoft SharePoint Lists via the Microsoft Graph API, with full read/write (CRUD) over list items using app-only (client-credentials) authentication.
What's here
.claude/skills/sharepoint-lists/
├── SKILL.md # how the skill works + usage
├── .env.example # credential template (copy to .env; .env is git-ignored)
├── scripts/
│ ├── sp.mjs # CLI: test | lists | columns | items | get | create | update | delete
│ └── lib/graph.mjs # reusable, dependency-free Graph client (SharePointListsClient)
└── references/
├── setup.md # Azure AD (Entra) app registration walkthrough
└── graph-api.md # field-type formats + OData query reference
Quick start
-
Create an Entra app registration and grant it a SharePoint Graph permission (
Sites.Selectedpreferred). Seereferences/setup.md. -
Copy
.env.exampleto.envand fill inSP_TENANT_ID,SP_CLIENT_ID,SP_CLIENT_SECRET(optionallySP_SITE_URL). -
Verify connectivity:
cd .claude/skills/sharepoint-lists/scripts node sp.mjs test --site "https://<tenant>.sharepoint.com/sites/<SiteName>"
Security
Credentials live only in .env, which is git-ignored — never commit secrets.
The Graph + auth logic is isolated in scripts/lib/graph.mjs so it can later be
wrapped as a standalone MCP server without a rewrite.
Description
Languages
JavaScript
97.8%
Dockerfile
2.2%