Secure SharePoint file operations and Office document intelligence via Microsoft Graph API — certificate auth, Sites.Selected, read/write Word (mammoth), Excel (exceljs), PowerPoint (jszip), PDF (pdf-parse).
Scanned 9/5/2026
Install to Claude Code
npx -y skills add dvcrn/openclaw-skills-marketplace --skill sharepoint-by-altf1be --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Sharepoint By Altf1be?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/dvcrn-sharepoint-by-altf1be)More formats (shields.io, HTML) on the badges page.
---
name: sharepoint-by-altf1be
description: "Secure SharePoint file operations and Office document intelligence via Microsoft Graph API — certificate auth, Sites.Selected, read/write Word (mammoth), Excel (exceljs), PowerPoint (jszip), PDF (pdf-parse)."
homepage: https://github.com/ALT-F1-OpenClaw/openclaw-skill-sharepoint
---
# SharePoint by @altf1be
Interact with SharePoint document libraries via Microsoft Graph API using certificate-based authentication.
## Setup
1. Create an Entra app with `Sites.Selected` permission and certificate auth
2. Grant site-level write access via Microsoft Graph PowerShell
3. Set environment variables (or create `.env` in `{baseDir}`):
```
SP_TENANT_ID=your-azure-tenant-id
SP_CLIENT_ID=your-app-client-id
SP_CERT_PATH=/path/to/certificate.pem
SP_SITE_ID=your-sharepoint-site-id
SP_DRIVE_ID=optional-specific-drive-id
```
4. Install dependencies: `cd {baseDir} && npm install`
## Commands
### File operations
```bash
# Show site and drive info
node {baseDir}/scripts/sharepoint.mjs info
# List files in library root
node {baseDir}/scripts/sharepoint.mjs list
# List files in a subfolder
node {baseDir}/scripts/sharepoint.mjs list --path "Meeting Notes/2026"
# Read file content (extracts text from Office formats)
node {baseDir}/scripts/sharepoint.mjs read --path "Report.docx"
# Upload a file
node {baseDir}/scripts/sharepoint.mjs upload --local ./report.docx --remote "Reports/Q1-2026.docx"
# Search for files
node {baseDir}/scripts/sharepoint.mjs search --query "quarterly review"
# Create folder
node {baseDir}/scripts/sharepoint.mjs mkdir --path "Meeting Notes/2026"
# Delete (requires --confirm flag)
node {baseDir}/scripts/sharepoint.mjs delete --path "Drafts/old-file.txt" --confirm
```
### Coauthoring (checkout/checkin)
```bash
# Safe edit: checkout → upload modified file → checkin (recommended)
node {baseDir}/scripts/sharepoint.mjs edit --path "Report.docx" --local ./modified.docx --comment "Updated summary"
# Check out a file (lock for exclusive editing)
node {baseDir}/scripts/sharepoint.mjs checkout --path "Report.docx"
# Check in a file (unlock + publish)
node {baseDir}/scripts/sharepoint.mjs checkin --path "Report.docx" --comment "Reviewed and approved"
# Get an edit link to open in Office Online
node {baseDir}/scripts/sharepoint.mjs edit-link --path "Report.docx"
```
## Supported Office formats
The `read` command extracts text content from:
- `.docx` → full text extraction via mammoth
- `.xlsx` → sheet names + cell data via exceljs
- `.pptx` → slide text extraction via jszip
- `.pdf` → text extraction via pdf-parse
- `.txt` / `.md` → raw content
Output is plain text suitable for AI processing (summarization, reformatting, action item extraction).
## Dependencies
- `@azure/identity` — certificate-based Azure AD authentication
- `@microsoft/microsoft-graph-client` — Microsoft Graph API client
- `mammoth` — Word document text extraction
- `exceljs` — Excel spreadsheet parsing
- `jszip` — PowerPoint XML extraction
- `pdf-parse` — PDF text extraction
- `commander` — CLI framework
- `dotenv` — environment variable loading
## Security
- Certificate auth only (no client secrets, no passwords)
- `Sites.Selected` permission (access limited to one SharePoint site)
- Path traversal prevention: `../` is rejected
- Delete requires explicit `--confirm` flag
- No tokens or secrets printed to stdout
- File size limit: configurable max (default 50MB)
## Full setup guide
For complete setup from scratch (Entra app, certificate, Sites.Selected, Key Vault):
See the [GitHub repository](https://github.com/ALT-F1-OpenClaw/openclaw-skill-sharepoint) README.
## Author
Abdelkrim BOUJRAF — [ALT-F1 SRL](https://www.alt-f1.be), Brussels 🇧🇪
X: [@altf1be](https://x.com/altf1be)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!