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
- Open the workspace switcher / user menu → Account (or go to
/{workspace}/account). - Connected apps — MCP clients you already authorized (revoke anytime).
- Connect an MCP client — install commands for Claude Code, Cursor, Codex, and Grok Build.
The server URL is always:
https://<your-api-host>/v1/mcpExample (local portless): https://api.solutiondesk.localhost/v1/mcp
Example (dev cloud): https://api.dev.solutiondesk.io/v1/mcp

Connect a client
Claude Code
claude mcp add --transport http solutiondesk https://<api-host>/v1/mcpThen 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 solutiondeskLogin opens a browser to authorize with your SolutionDesk account.
Grok Build
grok mcp add --transport http solutiondesk https://<api-host>/v1/mcpAuthorize 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
| Tool | Purpose |
|---|---|
list_workspaces | Workspaces you can access (slugs for other tools) |
list_tickets | Tickets in a workspace |
get_ticket | One ticket by id |
list_comments | Conversation oldest-first (includes internal notes) |
list_members | Staff roster + isYou for “assign to me” |
Writes
| Tool | Purpose |
|---|---|
create_ticket | Create a ticket (type/priority/status defaults from workspace config) |
add_comment | Reply; internal: true = staff-only note |
set_ticket_status | Move status (must be a configured status key) |
assign_ticket | Full replacement of assignees (empty array unassigns) |
create_company | Create 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)
- Never leak internal notes.
list_commentsreturns both public replies andinternal: truenotes. Only quote internal content in anotheradd_commentthat is also internal. - Tenant isolation. Every tool is scoped to workspaces you belong to — no cross-tenant shortcuts.
- Visibility. Prefer
internaltickets 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.
Related
- Settings → API keys — host SaaS server-to-server (not the same as MCP)
- Staff vs portal end-user