f65cad865dc9f065cd98e354dab3452bc776b193
Drop the Streamable HTTP transport and direct express dependency so the server has no network listener and cannot be reached from web chat — matches the desktop-only use case. Update README/.env.example accordingly. (express remains only as a transitive dep of the MCP SDK; unused.) 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%