MCP Server
@burdenoff/workspaces-mcp is the official Model Context Protocol server for Burdenoff Workspaces. It lets AI clients such as Claude Desktop, Claude Code, Cursor and VS Code work with your workspaces: members and projects, files, tags, conversations, notifications, scheduled jobs, integrations and more. It calls the same GraphQL gateways as the Workspaces app, with your session, so the same permissions apply.
- Transports: stdio (default) and streamable HTTP
- Sign-in: device code, email and password, API key, or headless tokens
- Safety: tools that destroy data run only when the call passes
confirm: true
Install
npm install -g @burdenoff/workspaces-mcp
# or run it on demand
npx -y @burdenoff/workspaces-mcp
Node.js 24.11 or newer (or Bun 1.3.14 or newer).
Connect a client
Claude Desktop, Cursor and most MCP clients read a mcpServers block:
{
"mcpServers": {
"workspaces": {
"command": "npx",
"args": ["-y", "@burdenoff/workspaces-mcp"]
}
}
}
With Claude Code:
claude mcp add workspaces -- npx -y @burdenoff/workspaces-mcp
Sign in
Ask the assistant to sign you in, or call the tools yourself:
workspaces_auth_loginstarts a device-code sign-in and returns a URL and a code. Open the URL, approve, then callworkspaces_auth_complete.workspaces_auth_sign_intakes an email and password instead, andworkspaces_auth_login_with_api_keytakes an API key.workspaces_auth_workspaceslists the workspaces you belong to.workspaces_auth_select_workspacebinds one. Every workspace tool then acts on that workspace.
The session is stored in ~/.config/workspaces-mcp/ with owner-only permissions. workspaces_auth_status shows the current session and workspaces_auth_logout clears it.
Headless use (CI, servers)
Pass the session through the environment instead of signing in:
| Variable | Meaning |
|---|---|
WORKSPACES_ACCESS_TOKEN | User access token |
WORKSPACES_WORKSPACE_TOKEN | Workspace token for the bound workspace |
WORKSPACES_WORKSPACE_ID | Workspace to bind |
WORKSPACES_ORGANIZATION_ID | Organization of that workspace |
WORKSPACES_API_KEY | API key, instead of tokens |
WORKSPACES_WORKSPACE_ENDPOINT | Workspace gateway (default https://graphqlworkspaces.burdenoff.com/workspaces/graphql) |
WORKSPACES_GLOBAL_ENDPOINT | Global gateway (default https://graphql.burdenoff.com/global/graphql) |
What the server exposes
Tools
About 340 tools, each prefixed workspaces_:
| Area | Examples |
|---|---|
| Session | auth_login, auth_complete, auth_status, auth_select_workspace, profile, sessions, MFA, API keys |
| Workspaces | workspace_current, workspace_list, workspace_get, workspace_create, workspace_update |
| People | workspace_members_list, workspace_members_add, groups_*, organizations_* |
| Projects | workspace_projects_list, workspace_projects_get, workspace_projects_create |
| Activity | workspace_activity (audit trail) |
| Files | files_browse, files_list, files_get, files_download, files_upload_initiate and files_upload_complete, files_share, files_share_revoke |
| Tags | tags_vocabularies_list, tags_list, tags_create, tags_assign, tags_entity_list |
| Conversations | conversations_list, conversations_search, conversations_messages_list, conversations_messages_send, threads, reactions, drafts |
| Notifications | notifications_* |
| Automation | scheduler_*, integrations_*, channels_*, export_* |
| Account | billing_*, support_*, security_*, devportal_*, rbac_*, tours_* |
File contents never travel through the MCP connection. Downloads return a short-lived presigned URL, and uploads return presigned URLs to PUT the bytes to.
Resources
workspaces://workspace/guide: how a workspace is organised and which tools operate on each part.workspaces://workspace/current: the workspace this session is bound to.
Prompts
workspaces-workspace-orient: pick a workspace and summarise its members, projects, files and recent activity.workspaces-workspace-find-file: find a file by name, type or tag, and optionally share it.workspaces-workspace-digest: summarise recent activity, unread conversations and new files.
Security model
- The server acts as you. The gateways enforce the same role-based access as the app, so a tool can only read or change what you can.
- Tools that delete, remove, revoke or otherwise destroy data are marked
destructiveHintand refuse to run unless the call includesconfirm: true. Your client should ask you before it confirms. - In HTTP mode the server listens on
127.0.0.1unless you change it.
HTTP transport
workspaces-mcp --http # http://127.0.0.1:3000
workspaces-mcp --http --port 3101
Related
- CLI Reference: the
workspacescommand for scripts and terminals. - Node SDK and Python SDK: typed clients for your own code.
- Authentication: sessions, workspace tokens and API keys.