
Microsoft Sharepoint
Let a solo builder’s agent read and manage SharePoint sites, lists, files, and folders through Membrane instead of hand-rolling Microsoft Graph auth.
Overview
Microsoft SharePoint is an agent skill for the Build phase that connects coding agents to SharePoint sites, lists, and files via the Membrane CLI and managed auth.
Install
npx skills add https://github.com/membranedev/application-skills --skill microsoft-sharepointWhat is this skill?
- Membrane CLI handles login, tenant binding, and credential refresh for Microsoft SharePoint
- Entity model covers Site → List → ListItem, plus File, Folder, and User operations
- MIT-licensed skill pointing at official SharePoint dev docs and Membrane’s application-skills repo
- Free-tier Membrane account supported; requires network access for live calls
- npm global install of @membranehq/cli@latest as the documented entry path
- Membrane application-skills metadata version 1.0
- MIT license
Adoption & trust: 1.3k installs on skills.sh; 178 GitHub stars; 1/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need your agent to touch live SharePoint data but do not want to own Microsoft identity, token refresh, and Graph wiring yourself.
Who is it for?
Indie builders shipping agent workflows or internal tools where SharePoint is already the document and list backbone and Membrane is acceptable as the integration layer.
Skip if: Greenfield products with no Microsoft 365 footprint, air-gapped environments without network access, or teams that must call Graph directly without a Membrane account.
When should I use this skill?
Use when the user wants to interact with Microsoft Sharepoint data.
What do I get? / Deliverables
After setup, your agent can run Membrane SharePoint actions with refreshed credentials so you focus on integration logic instead of auth plumbing.
- Authenticated Membrane session for the SharePoint tenant
- Executable Membrane CLI actions against sites, lists, files, and folders
Recommended Skills
Journey fit
SharePoint access is an integration you wire while building internal tools, agents, or workflows that touch org document stores. Membrane CLI actions map to SharePoint entities (sites, lists, items, files)—classic third-party SaaS integration work in Build.
How it compares
A Membrane-wrapped SharePoint skill package, not a self-hosted MCP server or a one-off Graph SDK snippet in your repo.
Common Questions / FAQ
Who is microsoft-sharepoint for?
Solo and small-team builders using Claude Code, Cursor, or similar agents who already rely on SharePoint and want Membrane to own authentication and API calls.
When should I use microsoft-sharepoint?
Use it during Build integrations when the user asks to interact with SharePoint data—sites, lists, list items, files, or folders—or when you are wiring document sync into an agent or SaaS feature.
Is microsoft-sharepoint safe to install?
Review the Security Audits panel on this Prism page for upstream audit signals; the skill requires network access, a Membrane account, and npm global CLI install—treat tenant credentials like production secrets.
SKILL.md
READMESKILL.md - Microsoft Sharepoint
# Microsoft Sharepoint Microsoft SharePoint is a web-based collaboration and document management platform. It's primarily used by organizations of all sizes to store, organize, share, and access information from any device. Think of it as a central repository for files and a tool for team collaboration. Official docs: https://learn.microsoft.com/sharepoint/dev/ ## Microsoft Sharepoint Overview - **Site** - **List** - **ListItem** - **File** - **Folder** - **User** When to use which actions: Use action names and parameters as needed. ## Working with Microsoft Sharepoint This skill uses the Membrane CLI to interact with Microsoft Sharepoint. Membrane handles authentication and credentials refresh automatically — so you can focus on the integration logic rather than auth plumbing. ### Install the CLI Install the Membrane CLI so you can run `membrane` from the terminal: ```bash npm install -g @membranehq/cli@latest ``` ### Authentication ```bash membrane login --tenant --clientName=<agentType> ``` This will either open a browser for authentication or print an authorization URL to the console, depending on whether interactive mode is available. **Headless environments:** The command will print an authorization URL. Ask the user to open it in a browser. When they see a code after completing login, finish with: ```bash membrane login complete <code> ``` Add `--json` to any command for machine-readable JSON output. **Agent Types** : claude, openclaw, codex, warp, windsurf, etc. Those will be used to adjust tooling to be used best with your harness ### Connecting to Microsoft Sharepoint Use `membrane connection ensure` to find or create a connection by app URL or domain: ```bash membrane connection ensure "https://microsoft.sharepoint.com/" --json ``` The user completes authentication in the browser. The output contains the new connection id. This is the fastest way to get a connection. The URL is normalized to a domain and matched against known apps. If no app is found, one is created and a connector is built automatically. If the returned connection has `state: "READY"`, skip to **Step 2**. #### 1b. Wait for the connection to be ready If the connection is in `BUILDING` state, poll until it's ready: ```bash npx @membranehq/cli connection get <id> --wait --json ``` The `--wait` flag long-polls (up to `--timeout` seconds, default 30) until the state changes. Keep polling until `state` is no longer `BUILDING`. The resulting state tells you what to do next: - **`READY`** — connection is fully set up. Skip to **Step 2**. - **`CLIENT_ACTION_REQUIRED`** — the user or agent needs to do something. The `clientAction` object describes the required action: - `clientAction.type` — the kind of action needed: - `"connect"` — user needs to authenticate (OAuth, API key, etc.). This covers initial authentication and re-authentication for disconnected connections. - `"provide-input"` — more information is needed (e.g. which app to connect to). - `clientAction.description` — human-readable explanation of what's needed. - `clientAction.uiUrl` (optional) — URL to a pre-built UI where the user can complete the action. Show this to the user when present. - `clientAction.agentInstructions` (optional) — instructions for the AI agent on how to proceed programmatically. After the user completes the action (e.g. authenticates in the browser), poll again with `membrane connection get <id> --json` to check if the state moved to `READY`. - **`CONFIGURATI