Initial import: SharePoint Lists skill
Claude Code skill for SharePoint Lists CRUD via Microsoft Graph (app-only auth): reusable graph.mjs client, sp.mjs CLI, and setup + API reference docs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
39
README.md
Normal file
39
README.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user