# Claude-SharepointLists A [Claude Code](https://claude.com/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 1. Create an Entra app registration and grant it a SharePoint Graph permission (`Sites.Selected` preferred). See [`references/setup.md`](.claude/skills/sharepoint-lists/references/setup.md). 2. Copy `.env.example` to `.env` and fill in `SP_TENANT_ID`, `SP_CLIENT_ID`, `SP_CLIENT_SECRET` (optionally `SP_SITE_URL`). 3. Verify connectivity: ```bash cd .claude/skills/sharepoint-lists/scripts node sp.mjs test --site "https://.sharepoint.com/sites/" ``` ## 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.