AtlasWork, planned itself.

The AI-native, all-in-one work platform. Tasks, projects, CRM, contracts, and analytics in one calm workspace.

All systems operational
  • SOC 2 II
  • ISO 27001
  • HIPAA
  • GDPR

Product

  • Overview
  • PDF tools
  • Diagram tools
  • People & HR
  • Integrations
  • Marketplace
  • Pricing

Resources

  • Guides
  • Glossary
  • Compare
  • Docs
  • API reference
  • Support
  • Changelog
  • Status

Company

  • About
  • Careers
  • Press
  • Contact

Legal & trust

  • Trust center
  • Security
  • Privacy
  • Terms
  • DPA
  • GDPR
  • SLA
  • Refunds
  • Google API data
Atlas, a product by wrxstack.com·© 2026 wrxstack·All rights reserved
PrivacyTermsSecurityStatus
Skip to documentation
Docs
Back to Atlas

Start here

  • Overview

Developer

  • REST API guide
  • Authentication
  • API reference
  • MCP (AI agents)
  • SDKs
  • Quick actions

Webhooks

  • Overview
  • Quickstart
  • Events
  • Payloads and headers
  • Security and signing
  • Delivery and retries
  • Managing via API

Connect

  • Connectors
  • Integrations

Product

  • Collaboration and chat

Reference

  • Glossary
  • Keyboard shortcuts
  • Module reference

Model Context Protocol

Connect AI agents to Atlas with MCP

Atlas ships an enterprise-grade Model Context Protocol server: 1683 tools, 5 prompt templates, structured logging, retry-with-backoff, request timeout, graceful shutdown, and in-process metrics. Works with Claude Desktop, Cursor, Cline, Continue, and any other MCP host.

Mint API token
Live from /.well-known/atlas-mcp.json@atlas/mcp-server@0.3.0/1683 tools/5 prompts/transports: stdio, sse

Setup in 60 seconds - no clone, no build

The default config below uses npx -y @atlas/mcp-server. Your MCP host fetches the package from npm on first launch and caches it: no manual install, no build step, no hardcoded paths. The same config works across dev, staging, and prod machines and across teammates. Prefer a pre-installed binary? Run npm install -g @atlas/mcp-server once, then swap the command for atlas-mcp-server.

What is MCP?

Model Context Protocol is an open standard for connecting AI assistants to external tools and data. The host (Claude, Cursor, Cline, Continue) speaks JSON-RPC over stdio or SSE; servers like Atlas expose a typed catalogue of tool calls the model can invoke. The same Atlas server works in every host: set it up once per device and you get it everywhere.


Core concepts

MCP servers expose three kinds of capability. Atlas leans heavily on tools, ships a set of ready-made prompts, and treats its REST surface as the resource layer.

Tools

Typed actions the model can call, each with a name, a required scope, and a JSON input. Creating a task, reading a project, running a report. This is where almost all of the work happens. The full catalogue is below.

Resources

Read-only context the host can attach to a conversation. Atlas exposes its data through the REST API and the OpenAPI descriptor, so any resource a tool returns maps back to a documented endpoint you can inspect.

Prompts

Reusable multi-step recipes the host surfaces in its prompt picker. Pick one and the host inserts the whole workflow for you. Atlas ships several out of the box, listed further down this page.

How a tool call works

You never invoke a tool by hand. You describe what you want in plain language, the host model picks the matching tool, fills its input from your request, and calls it over JSON-RPC. Atlas checks the PAT scope, runs the underlying REST call, and returns a typed result the model reads back to you.

Say "Add a task: review the Q3 forecast, due Friday, in the Atlas project." The host resolves that to the atlas_create_task tool and sends an input like this:

json
{
  "tool": "atlas_create_task",
  "input": {
    "title": "Review the Q3 forecast",
    "projectId": "prj_atlas",
    "dueDate": "2026-07-10",
    "priority": "HIGH"
  }
}

Atlas returns the created task:

json
{
  "id": "tsk_a1b2c3",
  "title": "Review the Q3 forecast",
  "status": "todo",
  "priority": "HIGH",
  "dueDate": "2026-07-10",
  "projectId": "prj_atlas",
  "url": "https://app.atlas.example/tasks/tsk_a1b2c3"
}

Exact fields per tool follow the REST contract. See the REST API reference for the full request and response schema behind each tool.


Two ways to connect

Every Atlas MCP setup is one of two shapes. Pick the hosted URL for a zero-install connection over HTTP, or run the server locally for full control and offline / stdio-only hosts. Both expose the same tools; the hosted URL accepts either a Personal Access Token or an OAuth login.

Recommended

No install

Hosted URL

Connect by URL, authenticated with a Personal Access Token or an OAuth login. Nothing to install, always on the deployed server.

  • Zero install - paste one URL, then sign in or paste a token
  • PAT or OAuth - the same endpoint accepts either credential
  • Best for claude.ai, Cursor, and remote-capable hosts
Connect over HTTP

npx / stdio

Local install

Run the server on your machine with npx -y @atlas/mcp-server. Full control, works offline.

  • Full control - runs in your own environment
  • Works offline and behind strict networks
  • Required for stdio-only hosts like Claude Desktop
Set up locally

Not sure? Start hosted. It is the fastest path for claude.ai and Cursor, and you can switch to the local server any time without changing your token.


Local install (npx)

Run the server on your own machine. Three steps: mint a scoped token, drop the generated config into your host, and smoke-test the connection.

  1. 1

    Mint a Personal Access Token

    The MCP server authenticates as you, scoped to whatever the agent is allowed to do. Open Settings, API access and click New token. Pick the narrowest scope set that fits the workload; start with tasks:read and projects:read if the agent only needs to read. The token starts with atlas_pat_ and is shown once, so copy it now.

  2. 2

    Configure your AI client

    Pick the host you use. The block below is generated from the live server descriptor: copy it, replace the placeholder token, save the config file, and fully quit and relaunch the host.

    The reference MCP host. Drop the JSON below into the config, replace the placeholder PAT, then fully quit + relaunch Claude Desktop (Cmd+Q on macOS - closing the window is not enough).

    macOS: ~/Library/Application Support/Claude/claude_desktop_config.json · Windows: %APPDATA%\Claude\claude_desktop_config.json

    json
    {
      "mcpServers": {
        "atlas": {
          "command": "npx",
          "args": [
            "-y",
            "@atlas/mcp-server"
          ],
          "env": {
            "ATLAS_API_KEY": "atlas_pat_REPLACE_WITH_YOUR_TOKEN",
            "ATLAS_API_URL": "https://api-atlas.wrxstack.com"
          }
        }
      }
    }
  3. 3

    Try it

    After restarting the host, the Atlas tools appear in its tool tray. Try one of these prompts to confirm the connection:

    • "Run the atlas_health_check tool." The PAT needs projects:read because the tool verifies auth with /v1/projects?limit=1.
    • "List my open Atlas tasks."
    • "Create an Atlas task: review the Q3 forecast, due Friday."

Hosted URL (no install)

Prefer not to run anything locally? Point a remote-capable MCP client straight at the Atlas-hosted endpoint and authenticate with your own Personal Access Token. No npx, no npm, no local process.

Endpoint URL - Streamable HTTP transport

https://api-atlas.wrxstack.com/mcp

Auth: the endpoint accepts either a Personal Access Token or an OAuth 2.0 access token as a bearer in the Authorization header - the caller chooses. A PAT starts with atlas_pat_ and carries the exact scopes you granted it. Need one? Mint a token. Prefer a browser sign-in with no token to copy? Use the OAuth path below. Full flow details live in the Authentication guide.

Which clients support the hosted URL?

Remote / HTTP hosts connect directly: claude.ai and Cursor. Stdio-only hosts like Claude Desktop reach it through the mcp-remote bridge below, or use the local install instead.

Connect with OAuth (claude.ai, no token to paste)

If your host speaks OAuth (claude.ai does), you never copy a credential at all. Add the endpoint URL as a custom connector and click connect - Claude discovers the Atlas authorization server, opens the Atlas sign-in and consent screen, and you approve the scopes in your browser:

  1. 1Open Settings, then Connectors, and click Add custom connector.
  2. 2Paste the endpoint URL above into the URL field and leave the token blank.
  3. 3Click Connect. Claude reads /.well-known/oauth-protected-resource and finds the Atlas authorization server.
  4. 4Sign in to Atlas in the window that opens and approve the scopes the connector requests.
  5. 5You are redirected back and the Atlas tools appear. Atlas refreshes the short-lived access token for you.

Revoke access any time by disconnecting the connector, or from Settings, then Developer. See the OAuth 2.0 flow for what happens under the hood.

claude.ai (with a Personal Access Token)

Prefer a token? Add Atlas as a custom connector - no config file, all in the UI:

  1. 1Open Settings, then Connectors.
  2. 2Click Add custom connector.
  3. 3Paste the endpoint URL above into the URL field.
  4. 4Set the authorization token to your Atlas PAT (starts with atlas_pat_).
  5. 5Save. Claude connects over HTTP and lists the Atlas tools once the handshake succeeds.

Cursor

Add the block below to ~/.cursor/mcp.json (or your project's .cursor/mcp.json), replace the placeholder token, and restart Cursor.

json
{
  "mcpServers": {
    "atlas": {
      "url": "https://api-atlas.wrxstack.com/mcp",
      "headers": {
        "Authorization": "Bearer atlas_pat_REPLACE_WITH_YOUR_TOKEN"
      }
    }
  }
}

Claude Desktop / stdio-only hosts

Claude Desktop speaks stdio, so it reaches the hosted URL through the mcp-remote bridge - a tiny local proxy that forwards to the remote endpoint with your bearer token. Drop this into claude_desktop_config.json, then fully quit and relaunch (Cmd+Q on macOS):

json
{
  "mcpServers": {
    "atlas": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api-atlas.wrxstack.com/mcp",
        "--header",
        "Authorization: Bearer atlas_pat_REPLACE_WITH_YOUR_TOKEN"
      ]
    }
  }
}

Any stdio-only host can run the same bridge directly:

bash
npx -y mcp-remote https://api-atlas.wrxstack.com/mcp \
  --header "Authorization: Bearer atlas_pat_REPLACE_WITH_YOUR_TOKEN"

Prefer no bridge? The local install runs the native stdio server and needs no proxy.

Same security as the REST API

The hosted endpoint validates your credential - PAT or OAuth access token - on every request and forwards it to the same /v1 API. Scopes, tenant isolation, rate limits, and IP allowlists all apply unchanged. Revoke a PAT in Settings, API access, or an OAuth token or app in Settings, Developer, to cut off access instantly. Only normal-user tools are ever exposed here; Super Admin tools are not reachable from this endpoint.

One-click prompt templates

MCP-aware hosts surface these in their prompt picker. Pick one and the host inserts the multi-step workflow for you, no need to memorize the recipe.

PromptWhat it does
atlas_daily_standupGenerate today's standup brief: tasks completed yesterday, in progress today, and blockers - for the calling user.
atlas_sprint_reviewSummarise a project's last sprint: what shipped, what slipped, top risks, and a one-paragraph narrative.
atlas_backlog_groomingTriage a project's untriaged tasks: priority + due date suggestions based on title heuristics, plus duplicates flagged.
atlas_inbox_zeroWalk me through inbox-zero: list overdue + due-today tasks and ask one short triage question per item.
atlas_create_project_with_templateWalk me through standing up a new project: ask for name + 3-5 milestones, then create the project + tasks.

Tools the server exposes (1683)

Each tool is a typed JSON-RPC call. The host model decides when to call which tool; you do not need to memorize the names. Scopes are checked on every call; missing a scope returns the API 403 insufficient_scope verbatim.

Reading a tool entry

Each entry shows the tool name (the JSON-RPC method the model calls), the PAT scope it requires, what it does, and an example phrase you can say to trigger it. Scope a token to just what you see here and the agent gets exactly those tools, nothing more. Search by name, scope, or module, or jump straight to a module below.
1683

Jump to a module

/
  • Client Delivery19
  • Client Onboarding8
  • Tasks98
  • Projects147
  • Portfolios2
  • Governance74
  • Admin51
  • Access38
  • People45
  • Notifications21
  • Activity1
  • CRM140
  • Contracts65
  • Agreements46
  • PDF Studio87
  • HR Core63
  • HR Engagement21
  • HR Payroll40
  • HR Hiring34
  • HR Performance8
  • HR Admin42
  • Self-Service40
  • Personal Productivity39
  • Goals15
  • Focus4
  • Workload26
  • Themes5
  • Voice3
  • Meetings36
  • Booking25
  • Service Operations32
  • Data Export4
  • Search5
  • Runtime13
  • Docs8
  • Sync2
  • Knowledge Base22
  • Automations17
  • Bulk4
  • Compliance8
  • Billing6
  • Email18
  • Changelog33
  • Agents32
  • Workspaces7
  • Reports18
  • Insights10
  • Intelligence5
  • Comments2
  • Growth2
  • Connectors51
  • Privacy2
  • Status Page16
  • Calendar9
  • Forms6
  • Chat11
  • Huddles6
  • Boards26
  • Diagrams48
  • Whiteboards7
  • eSign10

Read one engagement and the registers that describe it: the risk log, the deliverables, what is owed by the client, the plan and its critical path, the workstreams, the governed meetings, the open threads and the stakeholder map. The write surface is deliberately two tools, raising a change request and logging a risk, because both record a decision somebody has already taken. Approving a change, issuing a status report and signing anything off are absent on purpose, and the commercial position is not exposed at all.

  • atlas_get_client_delivery_vocabularyclient-delivery:read

    The vocabularies this workspace uses: the follow-up rules with their kind, subject and default lead time, and the kinds, statuses and channels a follow-up can carry. Read this before writing to the module, so the values you send are ones the workspace actually accepts rather than a copy that drifted a release ago.

    "What follow-up kinds and statuses does this workspace accept?"

  • atlas_engagement_listclient-delivery:read

    List engagements with optional state, account, partner and free-text filters. Each row carries the reference, client, lifecycle state, health rating, dates and contract value. Use this to answer "what are we delivering" or "which engagements are red".

    "Which engagements are amber or red right now?"

  • atlas_engagement_getclient-delivery:read

    Read one engagement: its reference, client, lifecycle state, the seven health ratings, dates, contract value and approved change value. The contract value and the approved change are separate figures; the total is their sum.

    "Show me the Northwind transformation engagement."

  • atlas_engagement_readinessclient-delivery:read

    Answer "why can this engagement not start yet". Returns every blocker at once: an acceptance decision not taken or expired, a screening check outstanding or lapsed, a legal instrument not executed, or a quality review still owed. An empty list means nothing is blocking it.

    "Can the Northwind engagement start yet?"

  • atlas_engagement_raid_listclient-delivery:read

    Read the risk, assumption, issue, dependency and decision register for one engagement, with scores and heat bands. Use this to answer "what is going wrong" or "what are the severe risks".

    "What are the severe risks on Northwind?"

  • atlas_engagement_deliverable_listclient-delivery:read

    Read the deliverable register for one engagement: what the firm owes the client, and which review gate each piece is sitting at. Use this to answer "what is late" or "what is waiting on the client".

    "What deliverables are late on Northwind?"

  • atlas_engagement_info_request_listclient-delivery:read

    Read the information request list for one engagement: what has been asked of the client, what has come back, and what is overdue or blocking the plan. Use this to answer "what are we waiting on".

    "What are we waiting on the client for?"

  • atlas_engagement_planclient-delivery:read

    Read the plan for one engagement: every row of the work breakdown structure with its dates, percent complete, critical-path flag and float. Use this to answer "what is on the critical path" or "what slipped".

    "What is on the critical path for Northwind?"

  • atlas_engagement_workstream_listclient-delivery:read

    Read the workstreams of one engagement, each with its own traffic light and progress. Use this to answer "which part of the work is in trouble" rather than judging the engagement as a whole.

    "Which workstream is in trouble?"

  • atlas_engagement_meeting_listclient-delivery:read

    Read the governed meetings of one engagement, with quorum and the state of their minutes. Quorum has three states and they differ: not evaluated is not the same as not met.

    "Which minutes are still unapproved?"

  • atlas_engagement_thread_listclient-delivery:read

    Read the open questions, blockers and escalations on one engagement, including which side each is waiting on. Use this to answer "what is unanswered".

    "What questions are unanswered on Northwind?"

  • atlas_engagement_stakeholder_listclient-delivery:read

    Read the stakeholder map of one engagement: who matters on the client side, how they feel about the work, and who is overdue a conversation.

    "Who are we overdue a conversation with?"

  • atlas_engagement_change_listclient-delivery:read

    Read the change register for one engagement: every change request with its type, status, schedule impact in days and cost impact.

    "What changes have been raised on Northwind?"

  • atlas_engagement_change_driftclient-delivery:read

    Cumulative drift from approved changes, measured against the ORIGINAL baseline rather than the current one. This is the number that catches ten changes each comfortably under the approval threshold whose sum has moved the engagement thirty percent from what was signed.

    "How far has Northwind drifted from its baseline?"

  • atlas_engagement_status_reportsclient-delivery:read

    Read the status report history for one engagement, with each report period, the seven health ratings and whether it was issued.

    "Show me the last status report for Northwind."

  • atlas_engagement_storylineclient-delivery:read

    How far the deck actually is. Returns each section with its status and a progress summary counting evidenced pages rather than a completion percentage: a page counts as evidenced only when it has an answer written on it and a completed analysis behind it.

    "What is the storyline for the Northwind deck?"

  • atlas_engagement_hypothesis_treeclient-delivery:read

    The hypothesis tree with its advisory violations. The violation worth acting on is a concluded leaf with no completed analysis behind it, which is a conclusion with no evidence.

    "Which hypotheses are still untested?"

  • atlas_engagement_raise_changeclient-delivery:create

    Raise a change request against an engagement. It is created as a draft with no impact assessed and no approvers, which is deliberate: assessing the impact and deciding the change belong to people. Use this to capture that a change has been requested, not to approve one.

    "Raise a change request for the extra migration run."

  • atlas_engagement_log_raidclient-delivery:create

    Log a risk, assumption, issue, dependency or decision on an engagement register. An issue has already happened, so its probability is always recorded as certain regardless of what is passed.

    "Log a risk that the data migration window may not hold."


Environment variables

Every option the MCP server reads at boot. Pass them in the host config env block or export them in your shell.

VariableDefaultPurpose
ATLAS_API_KEYrequiredPersonal Access Token (atlas_pat_...).
ATLAS_API_URLhttps://api-atlas.wrxstack.comAtlas API base URL. Override for self-hosted Atlas.
ATLAS_MCP_LOG_LEVELinfoStructured-logger threshold. One of debug, info, warn, error.
ATLAS_MCP_REQUEST_TIMEOUT_MS30000Per-request HTTP timeout against the Atlas API. Bump for slow networks; the agent surfaces a typed timeout error.
PORT8765 (SSE only)Bind port for the hosted SSE transport.

Discovery endpoint

The Atlas API publishes a static descriptor so MCP-aware clients can auto-discover the canonical npm package, its version, and the full tool catalog. This page is rendered from the same descriptor, so it is the single source of truth.

bash
curl https://api-atlas.wrxstack.com/.well-known/atlas-mcp.json

Want the full REST surface? See the OpenAPI 3.1 spec or the Redoc reference.


Security model

Every call is authenticated, scope-gated, rate-limited, and audit-logged. Normal-user MCP uses PAT-scoped tools only. Platform-operator MCP is documented separately for authorized Super Admins and is never configured from this page.

  • PAT-only auth. The MCP server has no ambient credentials; it forwards the token from ATLAS_API_KEY on every call. Revoke a PAT and the agent loses access immediately.
  • Scope enforcement. Each tool maps to one required scope (listed above). A PAT without that scope fails with 403 insufficient_scope and the missing scope is named in the body.
  • Idempotency. Write tools (create_task, create_project) send an Idempotency-Key so a retried tool call does not create duplicates within 24h.
  • Audit log. Every PAT mutation is recorded under Activity with the actor, the tool name, and the affected resource.
  • Hosted SSE auth. The SSE transport requires `Authorization: Bearer <ATLAS_MCP_SERVER_AUTH_TOKEN>`; Atlas API calls still use the env-supplied PAT. Platform-operator MCP uses an isolated transport, credential, and route outside this normal-user surface; that bearer must differ from ATLAS_MCP_SERVER_AUTH_TOKEN, and startup fails when they match. Keep bearer tokens separate from PATs and run hosted SSE behind your normal private-network controls.

Troubleshooting

The host says "atlas" is connected but no tools appear.
Restart the host process completely (most hosts only re-scan MCP servers on cold start). On macOS Claude Desktop, that means quitting from the menu bar (Cmd+Q); the dock icon close-window button is not enough.
Claude Desktop on macOS shows "spawn npx ENOENT" in the logs.
The macOS GUI does not inherit your shell PATH, so "npx" is not resolvable. Either install Node via the official .pkg installer (which adds /usr/local/bin to the system PATH) or use the absolute path: command: "/opt/homebrew/bin/npx" (adjust to wherever which npx prints in your shell).
Every call returns "401 Unauthorized".
The token is missing, expired, or revoked. Mint a fresh one at Settings, API access, update ATLAS_API_KEY, and restart the host.
Reads succeed but writes fail with 403 insufficient_scope.
The PAT was minted with read-only scopes. Mint a new token with tasks:write and projects:write added.
Updates fail intermittently with 409 Conflict.
The task changed since the agent last read it. The agent should re-read the task (it will get the new version), then retry the update with the fresh ifMatchVersion. Most hosts handle this automatically.
I am self-hosting Atlas. How do I point the MCP server at my deployment?
Set ATLAS_API_URL to your API base URL (e.g. https://atlas.acme.internal) in the env block of the host config. The MCP server uses that for every REST call.

On this page

  • What is MCP?
  • Core concepts
  • Two ways to connect
  • Local install (npx)
  • Hosted URL (no install)
  • Prompt templates
  • Tools (1683)
  • Environment variables
  • Discovery endpoint
  • Security model
  • Troubleshooting