SolutionDeskDocs

MCP for agents

Connect Claude, Cursor, Codex, or Grok so AI agents work tickets like staff.

SolutionDesk exposes a staff-facing MCP server (Model Context Protocol). Agents act with your staff identity — same tenant isolation and visibility rules as the dashboard.

You configure this under Account (not Settings): connect clients and review authorized apps.

Where it lives

  1. Open the workspace switcher / user menu → Account (or go to /{workspace}/account).
  2. Connected apps — MCP clients you already authorized (revoke anytime).
  3. Connect an MCP client — install commands for Claude Code, Cursor, Codex, and Grok Build.

The server URL is always:

https://<your-api-host>/v1/mcp

Example (local portless): https://api.solutiondesk.localhost/v1/mcp
Example (dev cloud): https://api.dev.solutiondesk.io/v1/mcp

Account page with MCP help

Connect a client

Claude Code

claude mcp add --transport http solutiondesk https://<api-host>/v1/mcp

Then in Claude run /mcp, sign in, and approve access.

Cursor

Merge into ~/.cursor/mcp.json (or project .cursor/mcp.json):

{
  "mcpServers": {
    "solutiondesk": {
      "url": "https://<api-host>/v1/mcp"
    }
  }
}

Reload MCP in Cursor settings.

Codex

codex mcp add solutiondesk --url https://<api-host>/v1/mcp
codex mcp login solutiondesk

Login opens a browser to authorize with your SolutionDesk account.

Grok Build

grok mcp add --transport http solutiondesk https://<api-host>/v1/mcp

Authorize from /mcps if the client does not open a browser automatically.

What agents can do

Tools take a workspace slug (from list_workspaces) on every call.

Reads

ToolPurpose
list_workspacesWorkspaces you can access (slugs for other tools)
list_ticketsTickets in a workspace
get_ticketOne ticket by id
list_commentsConversation oldest-first (includes internal notes)
list_membersStaff roster + isYou for “assign to me”

Writes

ToolPurpose
create_ticketCreate a ticket (type/priority/status defaults from workspace config)
add_commentReply; internal: true = staff-only note
set_ticket_statusMove status (must be a configured status key)
assign_ticketFull replacement of assignees (empty array unassigns)
create_companyCreate an end-customer company by host externalId

Writes show up live on the dashboard the same way UI mutations do.

Golden rules for agents (and humans who prompt them)

  1. Never leak internal notes. list_comments returns both public replies and internal: true notes. Only quote internal content in another add_comment that is also internal.
  2. Tenant isolation. Every tool is scoped to workspaces you belong to — no cross-tenant shortcuts.
  3. Visibility. Prefer internal tickets until you intentionally share with the customer company.

Revoke access

On Account → Connected apps, revoke a client. That drops its OAuth grant; the agent must re-authorize to work again.

On this page