Skip to main content

MCP server for the InvGate Service Desk API — exposes InvGate SD operations as Model Context Protocol tools.

Project description

invgate-service-desk-mcp

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.

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

What can it do?

Domain Tools Examples
Incidents 34 Get ticket details, list by status/agent/customer, create & update tickets, reassign, comment, manage approvals
Users & Groups 7 Look up users, find by email/phone, list group members
Knowledge Base 10 Search articles, browse categories, create & update articles
Custom Fields 9 List field definitions, get options (list/tree), fields by category
Organization 11 Helpdesks, levels, locations, company structure
Assets / CIs 6 Find assets linked to incidents, CI relationships
Time Tracking 4 View logged hours, log new time entries
Triggers 2 List automation rules and their executions
Workflows 3 Inspect workflow fields, processes, and field values
Breaking News 5 View announcements, statuses, types

58 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

pip install invgate-service-desk-mcp

Or run without installing (requires uv):

uvx invgate-service-desk-mcp

2. Connect to Claude Desktop

Add this to your claude_desktop_config.json:

{
  "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
{
  "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
{
  "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_ENABLE_WRITES": "1"
      }
    }
  }
}

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 var TOML key Description
INVGATE_BASE_URL base_url Instance URL, e.g. https://acme.sd.cloud.invgate.net
INVGATE_API_TOKEN api_token API token (HTTP Basic password)
INVGATE_API_USERNAME api_username HTTP Basic username (optional, defaults to api)
INVGATE_ENABLE_WRITES enable_writes Opt-in for write tools (default: false)
INVGATE_TELEMETRY telemetry_enabled Enable OpenTelemetry (default: false)
INVGATE_TELEMETRY_DETAIL telemetry_detail Span detail: metadata (default), ids, or full
# ~/.config/invgate-service-desk-mcp/config.toml
base_url = "https://acme.sd.cloud.invgate.net"
api_token = "..."
# api_username = "api"
# enable_writes = false
# 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

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.).

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
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=delta
export 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
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
  • Metricsmcp.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

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

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

invgate_service_desk_mcp-0.1.0.tar.gz (109.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

invgate_service_desk_mcp-0.1.0-py3-none-any.whl (36.5 kB view details)

Uploaded Python 3

File details

Details for the file invgate_service_desk_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: invgate_service_desk_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 109.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for invgate_service_desk_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d1f3f39186903dd6f043bc6e66564aa1d42fc4eeb31097e7145ff7e029ded63f
MD5 70917c4993edb23403a58473577e0d0c
BLAKE2b-256 4646879be820226d407cd70772683b0a4539fe13a9dcaca2fb0b22e2622f0c39

See more details on using hashes here.

File details

Details for the file invgate_service_desk_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: invgate_service_desk_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 36.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for invgate_service_desk_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7e441cf7f2526b58339407b2055153fad7919197f5215bbbba82bf6142e6cc11
MD5 dd6f33e932cdab4f755411df282d562d
BLAKE2b-256 c62b039b0651d91eeaaba6b112ee99ab20baaf94bcdd58e43aa918140e99087e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page