Rollout provides a Model Context Protocol (MCP) server that lets AI assistants like Claude Code work inside your workspace. An assistant connected over MCP can read and manage tasks, projects, objectives, documents, workflows, and more — always acting as you, inside one workspace.

Quick setup for Claude Code

1. Add the MCP server

Add Rollout to your Claude Code MCP configuration — ~/.claude.json for all projects, or .claude/mcp.json inside a project:

JSON
{
  "mcpServers": {
    "rollout": {
      "type": "http",
      "url": "https://your-rollout-instance.com/mcp"
    }
  }
}

Replace your-rollout-instance.com with your Rollout URL (or localhost:4000 for local development).

2. Authenticate

Run /mcp in Claude Code and pick the Rollout server to start authentication. Claude Code:

  1. Registers itself with Rollout automatically
  2. Opens your browser to Rollout's Authorize Application page, which shows the application name, the permissions it requested, and the workspace access will be granted in
  3. Waits for you to click Authorize (or Deny)

After you authorize, the browser redirects back to Claude Code and the connection is ready.

Note: access is granted for the workspace you are signed into when you approve. Switch workspaces before authorizing if you need a different one.

3. Start using it

Ask Claude Code in plain language:

List my open tasks
Show the Website Redesign project
Create a task to review the PR

Authentication

Rollout uses OAuth 2.1 with PKCE. This means:

  • No passwords stored in your Claude Code config
  • Access tokens expire after 1 hour and are refreshed automatically; refresh tokens expire after 30 days
  • Scopes limit what the assistant can do
  • Everything runs as you — an MCP client can never see or change more than your own membership allows

OAuth scopes

When authorizing, you see which scopes are requested:

Scope Description
read View tasks, projects, documents, workflows, and other workspace data. The default when a client requests no scopes.
write Create and update tasks, projects, documents, workflows, records, and other resources
admin Team/member administration and workspace-wide dashboard sharing/assignment, on top of write. Domain actions also require your current workspace role or team authority.

Revoking access

There is no in-app page for managing authorized MCP clients yet. To stop an assistant's access:

  • Remove the Rollout server from the client's MCP configuration — without a refreshed token, access ends when the current access token expires (at most 1 hour)
  • MCP clients can revoke their own tokens at the standard /oauth/revoke endpoint

Available tools

Reading and discovery

These tools work with the read scope and never change data:

Tool Description
query Precise, filtered reads over any data source: Task, Project, Objective, KeyResult, Milestone, Workflow, WorkflowRun, WorkflowStepRun, Document, EntityRecord, Metric, Team, Activity, ResourceRef, ResourceLink, Connection, and Attachment. Supports filters, sorting, grouping, and pagination.
search Semantic + text search across tasks, projects, documents, objectives, records, and attachments
get_workspace_context Your identity plus the workspace vocabulary: task statuses and types, projects, teams, custom record schemas, and the per-source query grammar
list_node_types Catalog of available workflow node types
list_channels Messaging channels you can see (direct messages are never exposed)
list_saved_views Saved views you can read in a collection
describe_view_assets Query vocabulary and context rules for query-only Saved Views
describe_chart_capabilities Aggregate sources, fields, functions, time buckets, tenant-visible metric names/kinds, and chart/stat spec shapes
describe_dashboard_capabilities Page-authorable widget catalog, defaults, config schemas, and grid contract
validate_dashboard Dry-run and canonicalize a complete dashboard composition without saving
list_dashboards Paginate visible Page-backed dashboards, inspect one applied composition, or discover caller-owned archives for recovery
validate_saved_view Dry-run a saved view revision without saving anything
get_attachment_url Short-lived download URL and metadata for an attachment

Tasks and planning

Write tools require the write scope:

Tool Description
create_task / update_task Create and update tasks, with batch support, fuzzy project matching, and relative dates
delete_task Archive (soft-delete) or restore tasks, with batch support
create_project / update_project Create and update projects
create_milestone / update_milestone Create and update milestones
create_objective / update_objective Create and update objectives (OKRs)
create_key_result / update_key_result Create and update key results
objective_link Link a milestone or project as a weighted contributor to an objective

Workflows

Tool Description
create_workflow / update_workflow Create and update workflows; archive and restore via archived
execute_workflow Trigger a workflow run
workflow_operations Draft graph edits, Publish/Restore and Running/Paused controls, and run control (including bulk cancel/retry). Lifecycle responses separate current_release_id / production_source from execution_status.
delete_workflow Discard a never-published pending Draft, or permanently delete an archived workflow

Documents and records

Tool Description
create_document / update_document Create and update documents (rich-text JSON or Markdown content)
create_entity_record / update_entity_record Create and patch custom records
manage_entity_schema / manage_entity_field Define custom record types and their fields

Collaboration and organization

Tool Description
create_activity Add structured activities to resources (currently comments)
resource_link Link internal resources, external resources, and URLs to each other
list_labels / manage_label / manage_label_group Read and administer labels and label groups
create_saved_view / update_saved_view / delete_saved_view Create, revise, and archive saved views
manage_task_status / manage_task_type Administer the workspace's task status and type sets

Dashboards

Dashboards are Pages with immutable applied widget revisions. Saved Views are reusable query presentations that a Table widget may reference; they are not dashboard layouts.

Tool Description
create_dashboard Create a private dashboard and atomically apply its first widget revision
update_dashboard Rename, update Page settings, archive, or restore a dashboard with optimistic locking
dashboard_operations Atomically add, update, move, duplicate, or remove widgets against an expected revision
manage_dashboard_access Share with a team/workspace and set or unset default/required dashboard assignments. Team actions require write plus team authority; workspace actions require admin plus workspace-admin authority.

Recommended flow: describe_dashboard_capabilitiesdescribe_chart_capabilities when using Chart/Stat → validate_dashboardcreate_dashboard. Re-read with list_dashboards before conflict-safe updates. List reads are bounded (limit, offset); use archived:true to find caller-owned archived dashboards and their restore lock versions.

For a Metric chart, select a returned metric_definitions entry and persist its recommended_bucket_fn; get_workspace_context(include:["query_sources"]) also exposes tenant-scoped Metric name values. For custom-record aggregates, copy the selected EntityRecord source's canonical required_query so the executor loads that schema's custom fields.

MCP can create, revise, share, assign, archive, and restore dashboards. Publishing a Page to a public URL remains an owner/admin action in the web UI because public data/form bindings require a separate security review. Dashboard authoring is capped at 100 widgets and a 1 MiB encoded composition document.

Administration

These require the admin scope:

Tool Description
manage_team Create, update, and delete teams; add and remove members
manage_member Invite, update roles, deactivate, and remove workspace members

Configuration

Read-only mode

For safer AI access, self-hosted deployments can enable read-only mode, which removes all write tools from the server:

BASH
export ROLLOUT_MCP_READ_ONLY=true

The value is read when the application starts, including from a prebuilt release, so changing it requires a restart but not an image rebuild. Accepted true values are true, 1, yes, and on; accepted false values are false, 0, no, and off. Any other value stops startup instead of silently exposing write tools.

Read-only mode removes write tools from MCP discovery and dispatch. OAuth authorization remains an independent boundary: writable deployments still require each write tool's write or admin scope and domain authorization.

Rate limits

Limit Default
MCP requests 100 per minute per user
Client registration (/oauth/register) 10 per minute per IP
Token requests (/oauth/token) 30 per 15 minutes per IP
Token revocation (/oauth/revoke) 30 per 15 minutes per IP

Requests over a limit receive 429 Too Many Requests with a Retry-After header. MCP responses include x-ratelimit-limit and x-ratelimit-remaining headers.

Troubleshooting

"Authentication successful, but reconnection failed"

This usually means Claude Code has stale credentials. Try:

  1. Remove any hardcoded Authorization headers from your MCP config
  2. Restart Claude Code
  3. Run /mcp again to re-authenticate

"Invalid or expired token"

Your access token has expired and couldn't be refreshed. Run /mcp to re-authenticate.

"Unauthorized" errors

Make sure:

  1. You've authorized the MCP client in your browser
  2. Your token has the required scope for the operation (e.g. write for creating tasks)
  3. You're an active member of the workspace you authorized

"Session not found"

After a Rollout server restart, clients holding an old session get a 404 and must reinitialize. Most clients do this automatically; if yours doesn't, restart it.

"Too many requests"

You hit a rate limit. Wait the number of seconds in the Retry-After header and try again.

For other MCP clients

Rollout implements standard OAuth 2.1 with these discovery endpoints:

Endpoint Purpose
/.well-known/oauth-protected-resource RFC 9728 resource metadata
/.well-known/oauth-protected-resource/mcp Same document, path-aware form (RFC 9728 §3.1)
/.well-known/oauth-authorization-server RFC 8414 authorization server metadata
/oauth/register RFC 7591 dynamic client registration
/oauth/authorize Authorization endpoint
/oauth/token Token endpoint
/oauth/revoke Token revocation endpoint

The server supports the authorization_code and refresh_token grant types, PKCE with S256, and public clients (no client secret). Any MCP client that supports OAuth 2.1 with dynamic client registration should work automatically.

Redirect URIs may be HTTPS, a loopback callback (http://127.0.0.1:PORT/…, http://localhost:PORT/…), or a private-use scheme owned by a desktop client (com.raycast-x:/oauth, vscode://…). Schemes that name a code-execution target — javascript, data, file, vbscript — are rejected.