Skip to main content
Glama
mikimatsub

swsd-mcp

by mikimatsub

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SWSD_TOKENYesYour SWSD admin token (JWT). Required.
SWSD_PROFILENoProfile to control tool set: triage, agent, knowledge, or fullagent
SWSD_BASE_URLNoBase URL for SWSD API. For EU tenants use https://apieu.samanage.comhttps://api.samanage.com
SWSD_ENABLE_EXTRASNoComma-separated list of extra tools to enable on top of a profile

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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_id> (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 available_for_assignment_only: true to find valid assignees for swsd_assign_incident. Set email to look up one user exactly.

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 variables (the form schema for service requests). Use the variables to know which fields to populate when submitting a service request. Each variable has an id (pass through to the create-service-request tool as custom_field_id), a name, a kind (free_text / drop_down_menu / multi_select / date / user / null), and options (newline-separated allowed values for dropdowns). The full top-level item is passed through for power users (description, category, etc.).

swsd_add_incident_commentA

Add a comment to a SWSD incident. Set is_private: true to make the comment internal-only (default false = visible to the requester). To edit a comment after posting, use swsd_update_comment. WRITE — does not retry on transient failure.

swsd_update_commentA

Update the body of an existing SWSD incident comment. Pass incident_id, comment_id, and the new body. The is_private flag cannot be changed by this tool — to change visibility, delete and re-create. WRITE — does not retry on transient failure.

swsd_create_incidentA

Create a new SWSD incident. Required: name. Strongly recommended: description, requester_email, priority, category_name. The created incident's ID is returned for follow-up calls (swsd_assign_incident, swsd_add_incident_comment, etc.). WRITE — does not retry on transient failure; the agent should verify with swsd_get_incident before retrying. To set tenant-specific custom field values, pass custom_fields: [{name, value}] — call swsd_describe_custom_fields first to discover field names and (for Dropdowns) allowed values. Validated for Text, Dropdown, Number, Checkbox, and Date types.

swsd_update_incidentA

Update an existing SWSD incident. Pass id and any fields to change. Only fields you provide are sent — others stay as-is. For state transitions prefer swsd_update_incident_state (safer wrapper); for assignment prefer swsd_assign_incident; for comments use swsd_add_incident_comment. WRITE — does not retry on transient failure. To set tenant-specific custom field values, pass custom_fields: [{name, value}] — call swsd_describe_custom_fields first to discover field names and (for Dropdowns) allowed values. Validated for Text, Dropdown, Number, Checkbox, and Date types.

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 solution_ids (the SWSD write shape — distinct from the read shape solutions). Idempotent — if the solution is already linked, returns success without modifying the record. WRITE — does not retry on transient failure.

swsd_create_service_requestA

Submit a SWSD catalog request, creating an incident with is_service_request: true (auto-set by SWSD on this endpoint) and the supplied form variable values. Use swsd_list_catalog_items to find the right catalog_item_id and swsd_get_catalog_item to inspect its variables before filling. Each request_variables entry needs custom_field_id (= the catalog item variable's id) and value (stringified to match the variable's kind — for dropdowns, one of the options choices). The created incident's id is returned for follow-up calls (swsd_get_incident, swsd_assign_incident, etc.). WRITE — does not retry on transient failure; the agent should verify with swsd_get_incident before retrying. To set tenant-specific custom field values, pass custom_fields: [{name, value}] — call swsd_describe_custom_fields first to discover field names and (for Dropdowns) allowed values. Validated for Text, Dropdown, Number, Checkbox, and Date types.

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 query for free-text search across titles and descriptions; pass category to filter to a category name. Returns compact summaries with truncated excerpts (240 chars). Use swsd_get_solution for the full HTML body of any one result. NOTE: search is asynchronously indexed — articles created or updated in the last few minutes (sometimes hours) may not appear yet. To verify a just-created article, use swsd_get_solution with the ID returned by swsd_create_solution.

swsd_get_solutionA

Fetch one SWSD solution by numeric ID. Returns the full solution as returned by SWSD (passthrough), including both description (HTML) and description_no_html (plain text) fields, custom_fields_values, comments count, and attachment metadata. Use swsd_search_solutions first if you only have a topic — IDs are not guessable. Pass detail_level: "long" to include attachments, audits, and tags in one call.

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 values for dropdown fields, and help_text. Useful for understanding tenant configuration and documenting integrations. Default returns active fields only — pass active_only: false to see retired ones too. Filter by scope or module to narrow the surface (the tenant may have 100+ fields). v2 NOTE: custom field WRITES are now supported via the custom_fields parameter on swsd_create_incident, swsd_update_incident, swsd_create_solution, and swsd_update_solution. Pass custom_fields: [{name, value}] (name-keyed for portability). Validated field types: Text, Dropdown, Number, Checkbox, Date. Multi_picklist and User-type writes are not yet supported — set those via the SWSD UI.

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_get_incident detail_level: "long".

swsd_create_incident_taskA

Create a new sub-task on a SWSD incident. Required: incident_id, name. Optional: description (plain text or HTML), due_at (ISO 8601), assignee_email. The created task is returned for follow-up calls. WRITE — does not retry on transient failure.

swsd_update_task_stateA

Mark a SWSD incident sub-task as complete or incomplete. Pass completed: true to set the task to "Completed", or completed: false to revert to "New". For finer state control (e.g., "In Progress"), use the SWSD UI directly — this tool is the safer wrapper for the common done/not-done transition. WRITE — idempotent: re-applying the same value is a no-op on SWSD.

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: name. Strongly recommended: description, priority, category. The created problem's id is returned for follow-up calls. Use this when promoting a recurring incident to a problem record so root-cause analysis and known-error tracking can be tied to multiple incidents. WRITE — does not retry on transient failure; the agent should verify with swsd_get_problem before retrying.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
swsd-incident-list-uiIncident list view rendered by Apps-capable hosts.
swsd-incident-detail-uiIncident detail view rendered by Apps-capable hosts.
swsd-comment-thread-uiComment thread view rendered by Apps-capable hosts.
swsd-catalog-item-form-uiCatalog item form rendered by Apps-capable hosts.
swsd-solution-detail-uiSolution detail view rendered by Apps-capable hosts.
swsd-custom-fields-uiCustom fields explorer rendered by Apps-capable hosts.
swsd-audit-timeline-uiAudit timeline view rendered by Apps-capable hosts.

Latest Blog Posts

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