swsd-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SWSD_TOKEN | Yes | Your SWSD admin token (JWT). Required. | |
| SWSD_PROFILE | No | Profile to control tool set: triage, agent, knowledge, or full | agent |
| SWSD_BASE_URL | No | Base URL for SWSD API. For EU tenants use https://apieu.samanage.com | https://api.samanage.com |
| SWSD_ENABLE_EXTRAS | No | Comma-separated list of extra tools to enable on top of a profile |
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 | {
"listChanged": true
} |
| logging | {} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| swsd_get_server_infoA | Return the SWSD MCP server's name, version, configured profile, enabled tools, and the SWSD base URL host. Local-only — does not call SWSD. Includes documented SWSD upstream rate limits (the model can reference these without guessing). |
| swsd_health_checkA | Verify connectivity and authentication to SWSD by making a minimal request. Returns ok=true on success, otherwise an error explaining the failure (401 = bad token, 403 = insufficient permission, network error = unreachable). |
| swsd_get_meA | Get the SWSD user record for the token's owner — id, email, name, title, role, department, site, group_ids, and assignment status. Call this first when the request mentions "me", "my", or "I" (e.g. "my tickets", "tickets in my group", "tickets assigned to me"), then pass the returned id/email to assignee_email or requester_email filters on swsd_list_incidents (or use swsd_list_my_incidents which does this in one call). Without this step, "my X" queries cannot be answered correctly. |
| swsd_list_incidentsA | List SWSD incidents with structured filters and pagination. Returns compact summaries (id, name, state, priority, assignee_email, requester_email, category, updated_at) — call swsd_get_incident for the full detail of any one row. Filters use SWSD repeated-key array semantics (multiple values within a filter are OR-ed). NOTE: assignee_email and requester_email are applied CLIENT-SIDE because SWSD /incidents.json silently ignores them server-side (verified 2026-05-08 against the live API). Other filters (state, category, dates, sites, departments, assigned_to_group, query) DO narrow server-side and are passed through. |
| swsd_list_my_incidentsA | List incidents assigned to the authenticated user. Internally calls swsd_get_me to discover the user's email, then calls /incidents.json with the OTHER server-side filters applied (state, priority, etc.) and narrows the response client-side by assignee.email — because SWSD's /incidents.json endpoint silently ignores assignee_email / requester_email filters (verified 2026-05-08 against the live API: a fake email returns the entire tenant). The client-side filter is the only correct way to scope to a specific user. For broader queries use swsd_list_incidents with assigned_to= (group filtering does work server-side). |
| swsd_get_incidentA | Fetch one SWSD incident by numeric ID. Returns the full incident detail as returned by SWSD (passthrough), including custom_fields_values when present. Use swsd_list_incidents first if you only have a name or filter — IDs are not guessable. Pass detail_level: "long" to include comments, attachments, audits, SLA data, and resolution in one call. |
| swsd_list_incident_commentsA | List comments on a SWSD incident. Returns id, body, is_private, author_email, author_name, created_at. Use swsd_add_incident_comment to add a new comment. |
| swsd_list_categoriesA | List SWSD incident/solution categories. Returns id, name, parent_id, immediate children, and default_assignee_id. Categories form a hierarchy (parent_id links). Use this to validate category_name before swsd_create_incident or swsd_update_incident. |
| swsd_list_usersA | List SWSD users. Returns id, name, email, disabled, available_for_assignment, role, site, department, title. Set |
| swsd_list_catalog_itemsA | List catalog items available in SolarWinds Service Desk. Each item represents an offerable service request template (e.g., "New Employee Onboarding", "Software Request") with a defined set of input variables (form fields). Use swsd_get_catalog_item to inspect a single item's variables, then swsd_create_service_request to submit a request. |
| swsd_get_catalog_itemA | Get a single SWSD catalog item by id, including its |
| swsd_add_incident_commentA | Add a comment to a SWSD incident. Set |
| swsd_update_commentA | Update the body of an existing SWSD incident comment. Pass |
| swsd_create_incidentA | Create a new SWSD incident. Required: |
| swsd_update_incidentA | Update an existing SWSD incident. Pass |
| swsd_assign_incidentA | Assign an SWSD incident to an agent by email. Safer wrapper around swsd_update_incident — narrows the agent decision surface to "who gets this ticket." Use swsd_list_users with available_for_assignment_only=true to find valid assignees first. WRITE — does not retry on transient failure. |
| swsd_update_incident_stateA | Transition an SWSD incident to a new state (e.g., "Assigned", "Resolved", "Closed"). Safer wrapper around swsd_update_incident — narrows the agent decision surface. State names are tenant-specific; common ones: "New - Unassigned", "Assigned", "In Progress", "Awaiting Input", "Resolved", "Closed". Call swsd_get_incident first to see the current state. WRITE — does not retry on transient failure. |
| swsd_link_solution_to_incidentA | Attach a knowledge-base solution to an incident. Fetches the incident first, reads its existing linked solutions, appends the new one (preserving others), then PUTs with |
| swsd_create_service_requestA | Submit a SWSD catalog request, creating an incident with |
| swsd_list_sitesA | List SWSD sites (physical office/branch locations). Returns id, name, location code, description, time_zone. Use this to validate site_name before incident write tools. |
| swsd_list_departmentsA | List SWSD departments (organizational divisions). Returns id, name, description. Use this to validate department_name before incident write tools. |
| swsd_list_groupsA | List SWSD groups (assignment teams). Returns id, name, description, disabled, member_count. Useful for understanding team structure when triaging tickets. |
| swsd_list_rolesA | List SWSD roles (permission profiles). Returns id, name, description. Useful for understanding what users can do in SWSD when triaging permission-related tickets. |
| swsd_search_solutionsA | Search SWSD knowledge-base solution articles. Pass |
| swsd_get_solutionA | Fetch one SWSD solution by numeric ID. Returns the full solution as returned by SWSD (passthrough), including both |
| swsd_describe_custom_fieldsA | List the SWSD tenant's custom-field schema. Returns id, name, type (e.g. "Text", "Dropdown", "Date"), required, scope, module, allowed |
| swsd_get_record_auditsA | List the audit log for a SWSD record. Each audit entry captures one change: action ("Update"/"Create"/"Delete"), message ("State changed from New to Assigned"), the user who performed it, and the timestamp. Use this to answer "who changed this ticket?" or "what happened since I last looked?". Cheaper than swsd_get_incident with detail_level=long when you only need the audit history. object_type accepts incidents, problems, changes, releases, solutions, hardwares, other_assets. |
| swsd_list_incident_tasksA | List sub-tasks on a SWSD incident. Returns id, name, description, state ("New" / "In Progress" / "Completed"), completed boolean, position, assignee, due_at, created_at, updated_at. Use swsd_create_incident_task to add a sub-task and swsd_update_task_state to mark one complete. Sub-tasks also appear inline in |
| swsd_create_incident_taskA | Create a new sub-task on a SWSD incident. Required: |
| swsd_update_task_stateA | Mark a SWSD incident sub-task as complete or incomplete. Pass |
| swsd_list_problemsA | List SWSD problems (ITIL problem records) with structured filters and pagination. Returns compact summaries (id, name, state, priority, category, requester, assignee, updated_at) — call swsd_get_problem for the full detail of any one row. Filters use SWSD repeated-key array semantics (multiple values within a filter are OR-ed). Use this when investigating recurring incidents or identifying root causes that span multiple tickets. |
| swsd_get_problemA | Fetch one SWSD problem (ITIL problem record) by id or number. Returns the full problem detail as returned by SWSD (passthrough). Use swsd_list_problems first if you only have a name or filter — IDs are not guessable. Pass detail_level: "long" to include comments, audits, tasks, and time_tracks in one call. |
| swsd_create_problemA | Create a new SWSD problem (ITIL problem record). Required: |
| swsd_list_time_tracksA | List SWSD time entries for an incident, problem, change, or release. Use this before adding/updating time when you need existing work-log context. |
| swsd_log_timeA | Log time against a SWSD incident, problem, change, or release. Required: object_type, id, name, minutes_parsed. WRITE — honors SWSD_WRITE_MODE and does not retry on transient failure. |
| swsd_update_time_trackA | Update an existing SWSD time entry on an incident, problem, change, or release. Pass name and/or minutes_parsed. WRITE — honors SWSD_WRITE_MODE and does not retry on transient failure. |
| swsd_upload_attachmentA | Upload an attachment to a SWSD incident, problem, change, release, solution, hardware asset, other asset, or configuration item. Use content_base64 for hosted/HTTP clients; file_path is allowed only on stdio. WRITE — honors SWSD_WRITE_MODE. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| swsd-incident-list-ui | Incident list view rendered by Apps-capable hosts. |
| swsd-incident-detail-ui | Incident detail view rendered by Apps-capable hosts. |
| swsd-comment-thread-ui | Comment thread view rendered by Apps-capable hosts. |
| swsd-catalog-item-form-ui | Catalog item form rendered by Apps-capable hosts. |
| swsd-solution-detail-ui | Solution detail view rendered by Apps-capable hosts. |
| swsd-custom-fields-ui | Custom fields explorer rendered by Apps-capable hosts. |
| swsd-audit-timeline-ui | Audit timeline view rendered by Apps-capable hosts. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mikimatsub/swsd-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server