MCP server for SuperOps unified PSA+RMM β clients, tickets, assets, and more.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
MCP server for Claude that provides tools to interact with the SuperOps.ai PSA/RMM platform using their GraphQL API.
Operator note β GitHub Packages authentication. This package is published to the
@wyre-aiscope on GitHub Packages, which requires an authentication token on every install (GitHub Packages has no anonymous reads, even for public packages). Create a GitHub Personal Access Token with theread:packagesscope and supply it to the cloud builder:
- Cloudflare Workers β set a build variable named
NODE_AUTH_TOKENto your PAT.- DigitalOcean App Platform β set a build-time secret named
GITHUB_TOKENto your PAT.For local installs, run
export NODE_AUTH_TOKEN=$(gh auth token)beforenpm install.
window.__BRAND__ injection or MCP_BRAND_* env varssuperops_tickets_get renders as an interactive card in MCP Apps hosts
(Claude Desktop/web) with an in-card "Add note" round-trip via
superops_tickets_add_note that always posts internal-only notes
(isPublic: false); plain-JSON behavior is unchanged in other hosts.
The card is neutral by default and brandable via window.__BRAND__ injection
or MCP_BRAND_* env vars (MCP_BRAND_NAME, MCP_BRAND_LOGO_URL,
MCP_BRAND_PRIMARY_COLOR, MCP_BRAND_ACCENT_COLOR, MCP_BRAND_BG,
MCP_BRAND_TEXT) β no rebuild needed.
Set the following environment variables:
Add to your claude_desktop_config.json:
superops_navigate - Navigate to a domainsuperops_back - Return to main menusuperops_test_connection - Test API connectivitysuperops_clients_list - List clients with filterssuperops_clients_get - Get client detailssuperops_clients_search - Search clients by namesuperops_tickets_list - List tickets with filterssuperops_tickets_get - Get ticket detailssuperops_tickets_create - Create a new ticketsuperops_tickets_update - Update ticket status/assignmentsuperops_tickets_add_note - Add note to ticketsuperops_tickets_log_time - Log time on ticketsuperops_assets_list - List assets/endpointssuperops_assets_get - Get asset detailssuperops_assets_software - Get software inventorysuperops_assets_patches - Get patch statussuperops_technicians_list - List technicianssuperops_technicians_get - Get technician detailssuperops_technicians_groups - List technician groupssuperops_custom_query - Run custom GraphQL querysuperops_custom_mutation - Run custom GraphQL mutationSuperOps.ai API has a rate limit of 800 requests per minute per API token.
SuperOps uses page-based pagination, not cursors. List tools take page
(1-indexed, default 1) and pageSize (default 50, max 100), and return a
listInfo block with page, pageSize, totalCount and hasMore.
hasMore is tri-state: true when another page exists, null β never
false β when it does not. Loop on hasMore === true, or page off
totalCount; looping until hasMore === false never terminates.
Filters are condition clauses of { attribute, operator, value }, and they
compose β { joinOperator: "and" | "or", operands: [ β¦ ] } nests recursively.
Operators verified against a live tenant:
| Operator | Value |
|---|---|
is, isNot, contains, notContains, startsWith, endsWith | string |
includes, notIncludes | array |
equals and in are rejected by the API. includes matches a value whole
while contains matches a substring β filtering an OS platform with
includes: ["Windows"] matches nothing, because SuperOps stores
"Microsoft Windows 10 Pro".
Two things to know, because neither reports an error:
software) rather than a path into it
(software.name) also returns zero rows silently.Use superops_custom_query for filter semantics the standard tools don't
express.
schema/superops.graphql is a vendored copy of the SuperOps GraphQL schema:
Prefer introspection, and note the committed schema is already the introspected
one. The published docs declare 276 types / 76 queries / 63 mutations where the
live API reports 404 / 116 / 83, omit deprecations entirely, and declare two
types that do not exist live (FieldType, TicketType) β validating against
those would pass documents the API rejects.
src/domains/graphql-schema.test.ts validates every GraphQL document in src/
against it on each npm test, so a query referencing a field SuperOps does not
define fails in CI rather than at runtime. Regenerate the schema after a
SuperOps API change and re-run the tests.
Apache-2.0
For issues and feature requests, please visit the GitHub repository.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/superops-2)<a href="https://allmcps.com/mcp/superops-2"><img src="https://allmcps.com/api/badge/superops-2?style=directory" alt="SuperOps on AllMCPs" /></a>