InvGate Service Desk

io.github.tracegazerPublished by GitHub account tracegazerv0.2.0Updated Oct 24, 2026

InvGate Service Desk MCP: 96 tools/11 domains, 3-tier access (none/support/full), OTel.

Overview

AI-generated overview

MCP server for InvGate Service Desk that lets an assistant query incidents, users, knowledge base articles, assets and time entries, and optionally write…

What you can do
  • Query incidents: get ticket details, list by status, agent or customer, and inspect approvals
  • Look up users and groups, and find people by email or phone
  • Search and browse the knowledge base, and create or update articles when writes are enabled
  • Inspect catalog data, custom fields, organization structure, assets and CI relationships
  • View time tracking entries, automation triggers, workflows and breaking news announcements
  • Create, update, reassign and comment on tickets, and log time, only under an opt-in write profile
When to use it
Useful when an assistant should answer questions about an InvGate Service Desk instance, such as ticket status, customer history, known-article lookups or asset links, without leaving the chat. Opt into a write profile only if you want the assistant to act on tickets or articles.
Requirements
Runs locally over stdio, via uvx, pip, or a prebuilt Claude Desktop bundle. Needs INVGATE_BASE_URL for the instance and INVGATE_API_TOKEN, obtained from the instance's API settings. Optional TOML config at ~/.config/invgate-service-desk-mcp/config.toml; optional OpenTelemetry export.
Before you install
The API token grants access to real service desk data and is sent via HTTP Basic. Write mode is off by default; INVGATE_WRITE_PROFILE set to support or full lets the agent create, modify and delete real content, and tickets can only be cancelled, not deleted. The sse and streamable-http transports have no built-in authentication. Optional telemetry sends traces, metrics and logs to an OTLP backend.

Installation

In SourceWeft

  1. Open InvGate Service Desk in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

invgate-service-desk-mcp

[CI] [PyPI] [Python] [License: MIT] [MCP Registry] [Smithery]

A Model Context Protocol server for InvGate Service Desk / Service Management.

Give your AI assistant full access to your InvGate Service Desk — query incidents, look up users, search the knowledge base, check assets, and manage tickets — all through natural language.

96 tools across 11 domains. Read-only by default, with optional write operations behind explicit opt-in.

Install in one click

The easiest way to use this server with Claude Desktop (and other MCPB-compatible clients) is the prebuilt bundle:

➡️ Download invgate-service-desk.mcpb — then double-click it. Claude Desktop opens the installer, prompts for your InvGate base URL and API token, and you're done. No Python, no npx/uvx, no config files.

The .mcpb is attached to every GitHub Release and mirrored on Smithery. Prefer a package manager or container? See Quick start below.

What can it do?

DomainToolsExamples
Catalog5List priorities, statuses, incident types, categories (with search), sources
Incidents34Get ticket details, list by status/agent/customer, create & update tickets, reassign, comment, manage approvals
Users & Groups7Look up users, find by email/phone, list group members
Knowledge Base10Search articles, browse categories, create & update articles
Custom Fields9List field definitions, get options (list/tree), fields by category
Organization11Helpdesks, levels, locations, company structure
Assets / CIs6Find assets linked to incidents, CI relationships
Time Tracking4View logged hours, log new time entries
Triggers2List automation rules and their executions
Workflows3Inspect workflow fields, processes, and field values
Breaking News5View announcements, statuses, types

63 read-only tools work out of the box. 33 write tools (incidents, KB, time tracking) activate only when you explicitly opt in.

Quick start

1. Install

bash
pip install invgate-service-desk-mcp

Or run without installing (requires uv):

bash
uvx invgate-service-desk-mcp

2. Connect to Claude Desktop

Add this to your claude_desktop_config.json:

jsonc
{  "mcpServers": {    "invgate": {      "command": "uvx",      "args": ["invgate-service-desk-mcp"],      "env": {        "INVGATE_BASE_URL": "https://acme.sd.cloud.invgate.net",        "INVGATE_API_TOKEN": "your-api-token"      }    }  }}

Restart Claude Desktop. That's it — start asking about your tickets.

Using pip install instead of uvx
jsonc
{  "mcpServers": {    "invgate": {      "command": "invgate-service-desk-mcp",      "env": {        "INVGATE_BASE_URL": "https://acme.sd.cloud.invgate.net",        "INVGATE_API_TOKEN": "your-api-token"      }    }  }}
Enabling write operations

By default the server is read-only. Opt into writes with INVGATE_WRITE_PROFILE:

ProfileReadsWrites
none (default)everythingnothing
supporteverythingincidents (tickets, comments, reassign, approve) + time tracking
fulleverythingincidents + time tracking + Knowledge Base
jsonc
{  "mcpServers": {    "invgate": {      "command": "uvx",      "args": ["invgate-service-desk-mcp"],      "env": {        "INVGATE_BASE_URL": "https://acme.sd.cloud.invgate.net",        "INVGATE_API_TOKEN": "your-api-token",        "INVGATE_WRITE_PROFILE": "support"      }    }  }}

Compatibility: the legacy INVGATE_ENABLE_WRITES=1 still works and maps to full. If both are set, the profile wins and a warning is printed to stderr. Note: support deliberately keeps the Knowledge Base read-only. An invalid profile name fails fast at startup.

Warning: write mode lets the connected agent create, modify, and delete real content through your InvGate credential. There is no API to delete a ticket — created tickets can only be cancelled, not removed.

3. Get your API token

In your InvGate Service Desk instance: Settings > Integrations > API (or ask your admin). The server authenticates via HTTP Basic with username api and your token as the password.

Configuration

Configuration resolves in this order (highest priority first):

  1. Environment variables (always win)
  2. TOML config at ~/.config/invgate-service-desk-mcp/config.toml
Env varTOML keyDescription
INVGATE_BASE_URLbase_urlInstance URL, e.g. https://acme.sd.cloud.invgate.net
INVGATE_API_TOKENapi_tokenAPI token (HTTP Basic password)
INVGATE_API_USERNAMEapi_usernameHTTP Basic username (optional, defaults to api)
INVGATE_WRITE_PROFILEwrite_profileWrite access profile: none (default), support, or full
INVGATE_TELEMETRYtelemetry_enabledEnable OpenTelemetry (default: false)
INVGATE_TELEMETRY_DETAILtelemetry_detailSpan detail: metadata (default), ids, or full
toml
# ~/.config/invgate-service-desk-mcp/config.tomlbase_url = "https://acme.sd.cloud.invgate.net"api_token = "..."# api_username = "api"# write_profile = "none"  # "none" (default) | "support" | "full"# telemetry_enabled = false# telemetry_detail = "metadata"

Tip: create the config directory first: mkdir -p ~/.config/invgate-service-desk-mcp

See config.toml.example for a copy-paste template.

Running the server

bash
invgate-service-desk-mcp                 # STDIO transport (default)invgate-service-desk-mcp --transport sse # SSE/HTTP transport

Security note: STDIO (the default) keeps everything local. The sse and streamable-http transports have no built-in authentication — only use them bound to loopback or behind an authenticated reverse proxy.

Observability (optional)

The server can emit OpenTelemetry traces, metrics, and logs — completely opt-in and vendor-neutral. Export to any OTLP-compatible backend (Dynatrace, Grafana, Datadog, Jaeger, etc.).

bash
pip install "invgate-service-desk-mcp[telemetry]"
export INVGATE_TELEMETRY=1

OTLP endpoint and headers are configured via standard OpenTelemetry env vars (not in the TOML file):

Dynatrace setup
bash
export OTEL_EXPORTER_OTLP_ENDPOINT="https://<your-env>.live.dynatrace.com/api/v2/otlp"export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Api-Token <YOUR_DT_TOKEN>"export OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=deltaexport OTEL_SERVICE_NAME=invgate-service-desk-mcp

Token scopes needed: openTelemetryTrace.ingest, metrics.ingest, logs.ingest. See docs/observability-dynatrace.md for a detailed guide.

Generic OTLP collector
bash
export OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4318"export OTEL_SERVICE_NAME=invgate-service-desk-mcp

Signals emitted:

  • Traces — tool execution spans (GenAI semantic conventions) + InvGate API request spans with response size and item count
  • Metrics — mcp.tool.duration, invgate.client.request.duration, mcp.tool.errors, invgate.response.item_count, invgate.response.size
  • Logs — tool errors and unexpected API response shapes, correlated to traces (OTLP only, never stdout)

Development

bash
git clone https://github.com/tracegazer/invgate-service-desk-mcp.gitcd invgate-service-desk-mcpuv venv && uv pip install -e ".[dev]"pytest

License

MIT

Source: README.md at commit 608bb85

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.2.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts