40 lines
1.6 KiB
Markdown
40 lines
1.6 KiB
Markdown
|
|
# 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://<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.
|