superops-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SUPEROPS_REGION | No | Region: 'us' or 'eu' | us |
| SUPEROPS_API_TOKEN | Yes | Your SuperOps.ai API token | |
| SUPEROPS_SUBDOMAIN | Yes | Your company subdomain |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| resources | {} |
| extensions | {
"io.modelcontextprotocol/ui": {
"mimeTypes": [
"text/html;profile=mcp-app"
]
}
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| superops_navigateA | Discover available SuperOps.ai tools by domain. Returns tool names and descriptions for the selected domain. All tools are callable at any time — this is a help/discovery aid, not a prerequisite. |
| superops_statusB | Show credentials status and available domains |
| superops_test_connectionA | Test the connection to SuperOps.ai API using configured credentials. |
| superops_clients_listB | List clients (accounts) in SuperOps.ai. Results are paginated with page/pageSize. Supplying both stage and status narrows to clients matching both. |
| superops_clients_getA | Get detailed information for a specific client by their account ID. |
| superops_clients_searchA | Search for clients by name or email domain. A client matches if the term appears in either, so searching a domain fragment finds the account that owns it. |
| superops_tickets_listA | List tickets in SuperOps.ai. Results are paginated with page/pageSize. All supplied filters are combined: a ticket must match every one of status, priority, clientId and technicianId that you provide, and within status and priority it may match any of the listed values. |
| superops_tickets_getA | Get detailed information for a specific ticket by its ID. |
| superops_tickets_createB | Create a new ticket in SuperOps.ai. Status, priority, category and subcategory are free-text strings that must match the values configured in your SuperOps tenant. |
| superops_tickets_updateA | Update an existing ticket - change status, priority, assignment, or category. Free-text resolution notes belong in superops_tickets_add_note; only the tenant's configured resolutionCode can be set here. |
| superops_tickets_add_noteA | Add a note to a ticket. Can be internal or public (visible to client). |
| superops_tickets_log_timeB | Log a worklog entry against a ticket. SuperOps records quantity (not a raw minute count) against the service item's unit — typically hours. |
| superops_assets_listA | List assets (endpoints) in SuperOps.ai RMM. Supply any combination of status, platform and clientId; several filters are combined with AND. listInfo.hasMore is true when a further page exists and null (never false) when it does not, so treat null as the end or page against totalCount. |
| superops_assets_getA | Get detailed information for a specific asset: hardware identity (manufacturer, model, serial number), platform and OS version, network details (public IP, primary MAC, gateway, domain), agent version and patch status. SuperOps does not expose CPU, memory or disk figures on the asset record — use superops_custom_query with getAssetSummary or getAssetDiskDetails for those. |
| superops_assets_softwareB | Get the software inventory for a specific asset: name, version, install date, bit version and install path. |
| superops_assets_patchesA | Get patch status and patch details for a specific asset: title, KB numbers, category, severity, approval status and installation status. installationStatus and severity may be combined; they are joined with AND. For a one-word roll-up of the asset's overall patch health instead of the per-patch list, use superops_custom_query with getAssetPatchStatus. |
| superops_technicians_listA | List technicians (agents) in SuperOps.ai, sorted by name. Optionally narrow the list with a search term, matched as a substring against both name and email. SuperOps does not expose an active/inactive flag, ticket counts or last-login times for technicians. Each technician's role comes back as {roleId, name} and their groups as an array of {groupId, name}; designation, businessFunction, team and reportingManager are null unless the tenant assigns them. listInfo.hasMore is true when a further page exists and null when it is not — it is never false, so page against totalCount. Use superops_custom_query for filters beyond a name search. |
| superops_technicians_getA | Get detailed information for a specific technician by their user ID. SuperOps has no single-technician endpoint, so this filters the technician list to that ID. Returns the technician's contact details plus their role as {roleId, name} and their group roster as an array of {groupId, name}; designation, businessFunction, team and reportingManager are null unless the tenant assigns them. Skills, ticket counts and response-time metrics are not available from SuperOps. |
| superops_technicians_groupsA | List technician groups/teams in SuperOps.ai. Returns every group's ID and name — SuperOps exposes no description, member count or member roster for a group, and the endpoint is neither paginated nor filterable. These are the same groups that appear in a technician's groups field, so a group ID from here identifies the group a technician belongs to. |
| superops_technicians_lookupsA | List the roles, teams, designations, business functions and technician groups defined in this SuperOps tenant, each as {id, name}. These are the values a technician's role, team, designation, businessFunction and groups fields refer to. Use this to turn a name a user gave you ("the Sales team", "Admin role") into the ID SuperOps filters on, then pass that ID to superops_custom_query — getTechnicianList accepts a condition on the role and groups attributes. Takes no arguments. |
| superops_custom_queryA | Run a custom GraphQL query against the SuperOps.ai API. For advanced use cases not covered by standard tools. |
| superops_custom_mutationB | Run a custom GraphQL mutation against the SuperOps.ai API. For advanced write operations not covered by standard tools. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| SuperOps Ticket Card | Interactive MCP Apps card rendering a SuperOps.ai ticket |
TDQS
Scored across 22 tools
Most tools target a clearly distinct resource+action (clients_list/get/search, tickets_list/get/create/update, assets_*), and descriptions clarify boundaries well. The only mild overlap is superops_technicians_groups vs superops_technicians_lookups, since both expose group data, but the descriptions explicitly distinguish a group roster from a lookup of role/team/group IDs.
Strong, predictable pattern of superops_<entity>_<action> (clients_list, tickets_create, assets_get, technicians_groups) in consistent snake_case. A few utility tools (status, test_connection, custom_query, custom_mutation, navigate) drop the entity segment, but they remain snake_case and readable.
22 tools is on the heavier side, but they span four distinct domains (clients, tickets, assets, technicians), so roughly 5 per resource family is well-scoped. Each tool serves a genuine operation, and the escape-hatch tools (custom_query/mutation) reduce the need for more granular endpoints.
Tickets have full lifecycle coverage (list, get, create, update, add_note, log_time); assets cover identity, software and patches; technicians cover list/get/groups/lookups. Clients are read-only (no create/update) and there is no ticket delete, but custom_query/custom_mutation provide a workaround for the gaps.