M

Mcp Itglue

selic
๐ŸŽง Support & Service Management
0 Views
0 Installs

๐Ÿ“‡ โ˜๏ธ - MCP server for IT Glue, the MSP documentation platform. Semantic vector search over documentation, document and flexible-asset read/write, role-based access control, and bring-your-own-key support.

Quick Install

One-Click IDE Configuration
claude_desktop_config.json
{
  "mcpServers": {
    "selic-mcp-itglue": {
      "command": "npx",
      "args": [
        "-y",
        "selic-mcp-itglue"
      ]
    }
  }
}
Or

Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.

Documentation Overview

mcp-itglue

npm version license: MIT

An MCP (Model Context Protocol) server for the IT Glue API, built for MSPs that want AI assistants to read โ€” and safely write โ€” their documentation.

  • Documents & sections โ€” list, read, create, update, publish, delete
  • Flexible assets โ€” browse asset types and their fields, list/read/create/update/delete assets
  • Attachments & images โ€” attach an image/file to any record from base64, a URL, or a local path; list and delete attachments
  • Semantic vector search โ€” "how do I remove a backup agent" finds the Veeam decommissioning runbook, even when the words don't match (OpenAI or Azure OpenAI embeddings, local JSON index)
  • Role-based access control โ€” viewer / editor / admin bearer tokens decide which tools each session can even see
  • Bring your own key โ€” clients may supply their own IT Glue API key per session, so IT Glue's own permissions apply
  • Index freshness โ€” IT Glue webhook, post-write self-refresh, and a manual refresh endpoint
  • Transports โ€” stdio for local use, streamable HTTP for shared deployments; Docker image included

Installation

You need an IT Glue API key (IT Glue โ†’ Account โ†’ Settings โ†’ API Keys). Non-US accounts set ITGLUE_REGION to eu or au.

npx (recommended)

Claude Desktop (claude_desktop_config.json) or Claude Code (.mcp.json):

{
  "mcpServers": {
    "itglue": {
      "command": "npx",
      "args": ["-y", "mcp-itglue"],
      "env": { "ITGLUE_API_KEY": "ITG.xxxx" }
    }
  }
}

Claude Code one-liner:

claude mcp add itglue --env ITGLUE_API_KEY=ITG.xxxx -- npx -y mcp-itglue

Claude Desktop users can instead grab mcp-itglue.mcpb from the latest release โ€” open it with Claude Desktop and fill in the API key when prompted.

stdio always runs with the full tool surface โ€” it is a local, single-user transport using your own key.

Docker

The container image defaults to the HTTP transport (for shared deployments):

docker run --rm -p 3000:3000 \
  -e ITGLUE_API_KEY=ITG.xxxx \
  ghcr.io/mspstack/mcp-itglue

For local stdio use under Docker:

{
  "mcpServers": {
    "itglue": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "ITGLUE_API_KEY", "ghcr.io/mspstack/mcp-itglue", "--transport", "stdio"],
      "env": { "ITGLUE_API_KEY": "ITG.xxxx" }
    }
  }
}

From source

git clone https://github.com/mspstack/mcp-itglue.git && cd mcp-itglue
npm install && npm run build
ITGLUE_API_KEY=ITG.xxxx node dist/index.js

HTTP deployment

ITGLUE_API_KEY=ITG.xxxx \
MCP_TOKENS_VIEWER="alice:$(openssl rand -hex 32)" \
MCP_TOKENS_EDITOR="automation:$(openssl rand -hex 32)" \
MCP_TOKENS_ADMIN="ops:$(openssl rand -hex 32)" \
npx -y mcp-itglue --transport http --port 3000

Or with Docker:

docker run --rm -p 3000:3000 \
  -e ITGLUE_API_KEY -e MCP_TOKENS_VIEWER -e MCP_TOKENS_EDITOR -e MCP_TOKENS_ADMIN \
  ghcr.io/mspstack/mcp-itglue

Endpoints:

RoutePurpose
POST/GET/DELETE /mcpMCP streamable-http endpoint
GET /healthLiveness probe
POST /webhook/itglueIT Glue webhook โ†’ incremental index update
POST /index/refreshManual index refresh (shared secret or admin token)

Sessions are held in memory โ€” run a single instance (or add sticky sessions) behind your load balancer.

Access control

Role tokens

Three env vars hold comma-separated label:token lists:

MCP_TOKENS_VIEWER="alice:tokA,bob:tokB"   # read-only tools
MCP_TOKENS_EDITOR="hatz:tokC"             # + create/update/publish, delete section
MCP_TOKENS_ADMIN="ops:tokD"               # + delete documents / flexible assets

Clients authenticate with Authorization: Bearer <token>. The label appears in the audit log ([rbac] session โ€ฆ for alice (viewer)) and lets you revoke one person's token without rotating everyone's.

Tools a role cannot use are not registered for that session โ€” a viewer doesn't even see itglue_create_document in tools/list โ€” and a runtime guard re-checks the role on every call as defense in depth. Session ids never carry privilege: every request re-authenticates, and presenting a different principal against an existing session returns 403.

If no tokens are configured, the server runs in dev mode: all requests get admin access and a loud startup warning. Don't do this in production.

Bring your own IT Glue key (BYOK)

Clients may send their own IT Glue API key in the x-itglue-api-key header on the initialize request. The session then talks to IT Glue with that key and gets the full tool surface โ€” IT Glue's own key permissions are the effective access control. CLIENT_ITGLUE_KEYS controls the policy:

ValueBehavior
with-token (default)BYOK allowed, but a valid bearer token is still required โ€” protects your server from being an open proxy
openAn IT Glue key alone authenticates (trusted networks / local use)
disabledThe header is rejected; only the server-wide key is used

With BYOK enabled the server-wide ITGLUE_API_KEY becomes optional: sessions without a client key are rejected with a clear error. Client keys are never logged; sessions are bound to a SHA-256 hash of the key and audit-labeled byok:<hash-prefix>.

Tools

ToolTier
itglue_list_organizations, itglue_get_organizationread
itglue_list_documents, itglue_get_documentread
itglue_list_document_foldersread
itglue_list_document_sections, itglue_get_document_sectionread
itglue_list_flexible_asset_types, itglue_get_flexible_asset_typeread
itglue_list_flexible_assets, itglue_get_flexible_assetread
itglue_list_attachmentsread
itglue_vector_search, itglue_vector_index_statusread
itglue_create_document, itglue_update_document, itglue_publish_documentwrite
itglue_create_document_section, itglue_update_document_sectionwrite
itglue_delete_document_section โ€ write
itglue_create_flexible_asset, itglue_update_flexible_assetwrite
itglue_create_attachmentwrite
itglue_build_vector_indexwrite
itglue_delete_documentsdestructive
itglue_delete_flexible_assetdestructive
itglue_delete_attachmentdestructive
itglue_find_endpoint, itglue_get โ€กread

Viewer = read. Editor = read + write. Admin = everything. โ€  Permanent, but editor-tier: editors need it to restructure documents and can already blank section content via update. โ€ก Advanced toolset (opt-in, off by default): itglue_get is a read-only GET passthrough for any API path the curated tools don't wrap, and itglue_find_endpoint searches a curated endpoint catalog. Enable with ITGLUE_ADVANCED_TOOLSET=true or --advanced. Password resources (/passwords) are hard-blocked โ€” credential values never reach the model.

Vector tools appear only when an embedding provider is configured.

Vector search

Set OPENAI_API_KEY (or AZURE_OPENAI_API_KEY + AZURE_OPENAI_ENDPOINT, where EMBEDDING_MODEL is your deployment name), then run itglue_build_vector_index per organization. The index is a JSON file at VECTOR_INDEX_PATH (default ./vector-index.json) โ€” on ephemeral hosts, point it at a persistent volume.

The index stays fresh three ways:

  1. IT Glue webhook โ€” in IT Glue, webhooks are sent by Workflows (Admin โ†’ Workflows): add a Document trigger (created/updated) with a Webhook action. Workflow actions cannot send custom headers, so put the shared secret in the URL:

    https://<host>/webhook/itglue?secret=<ITGLUE_WEBHOOK_SECRET>
    

    and use a JSON payload template like:

    KeyValue
    event[trigger_name]
    resource_url[resource_url]
    resource_name[resource_name]
    organization_name[organization_name]

    The document id is parsed from resource_url; the trigger name maps to created/updated/deleted by keyword. Classic JSON:API-style payloads with an x-itglue-webhook-signature HMAC-SHA256 header are also accepted.

  2. Self-refresh โ€” documents created/updated/published/deleted through this server's tools are re-indexed automatically in the background.

  3. Manual refresh โ€” POST /index/refresh with Authorization: Bearer <ITGLUE_WEBHOOK_SECRET> (or an x-refresh-secret header, or an admin token). Body {"document_id": "123"} refreshes one document; an empty body re-crawls every indexed organization. Returns 202 and processes in the background.

Configuration reference

VariableDefaultPurpose
ITGLUE_API_KEYโ€”Server-wide IT Glue API key
ITGLUE_REGIONusus, eu, or au
ITGLUE_BASE_URLper regionOverride the API base URL
TRANSPORTstdiostdio or http
PORT3000HTTP port
MCP_TOKENS_VIEWER/EDITOR/ADMINโ€”label:token,label:token per role
CLIENT_ITGLUE_KEYSwith-tokenBYOK policy: disabled, with-token, open
ALLOWED_ORIGINSโ€”Extra browser origins allowed on /mcp (comma-separated). Requests without an Origin header and localhost origins always pass; other browser origins are rejected with 403
ITGLUE_ADVANCED_TOOLSETfalsetrue/1 registers the advanced toolset (itglue_get, itglue_find_endpoint)
ITGLUE_WEBHOOK_SECRETโ€”Webhook signature + /index/refresh secret
VECTOR_INDEX_PATH./vector-index.jsonVector index file
OPENAI_API_KEYโ€”Enables vector search (OpenAI)
AZURE_OPENAI_API_KEY / AZURE_OPENAI_ENDPOINT / AZURE_OPENAI_API_VERSIONโ€”Enables vector search (Azure OpenAI)
EMBEDDING_MODELtext-embedding-3-smallEmbedding model / Azure deployment

CLI flags --transport, --port, --region, --base-url, --advanced override the environment. Run mcp-itglue --help for details.

Notes & limits

  • IT Glue rate limit: 3000 requests / 5 minutes per key.
  • The IT Glue documents API is only partially documented; document/section endpoints follow observed API behavior.
  • Flexible-asset trait updates replace the whole traits object โ€” the update tool's description warns the model to send all traits back.
  • List tools return summary fields per item (in both text and structuredContent) so default page sizes stay within client token limits; the itglue_get_* tools return the complete record.
  • IT Glue has no user impersonation: a given API key always acts as itself. RBAC here controls what tool calls a session may make; BYOK delegates to IT Glue's own key permissions.

Development

npm install
npm run dev          # stdio via tsx
npm run dev:http     # http via tsx
npm test             # vitest
npm run build        # tsc โ†’ dist/

Author

Built by Eugene Samotija (@selic) โ€” defency.net. More projects: github.com/selic ยท LinkedIn

License

MIT

Related MCP Servers

Y
Yandex Tracker Mcp

๐Ÿ โ˜๏ธ ๐Ÿ  - MCP Server for Yandex Tracker. Provides tools for searching and retrieving information about issues, queues, users.

๐ŸŽง Support & Service Management0 views
B
Bugherd Mcp

๐Ÿ“‡ โ˜๏ธ - MCP server for BugHerd bug tracking. List projects, view tasks with filtering by status/priority/tags, get task details, and read comments.

๐ŸŽง Support & Service Management0 views
F
Freshdesk Mcp

๐Ÿ โ˜๏ธ - MCP server that integrates with Freshdesk, enabling AI models to interact with Freshdesk modules and perform various support operations.

๐ŸŽง Support & Service Management0 views
Q
Quickchat Ai Mcp

๐Ÿ ๐Ÿ  โ˜๏ธ - Launch your conversational Quickchat AI agent as an MCP to give AI apps real-time access to its Knowledge Base and conversational capabilities.

๐ŸŽง Support & Service Management0 views

Engagement

Views
0
Installs
0
Upvotes
0

Views and upvotes are unique per visitor network (hashed IP). Installs count copy actions.

Status

Health: Not checked yet

We have not completed a health check for this listing yet.

No check timestamp yet.

Unclaimed listing (imported or pending owner verification). Claim it โ†’
โ˜… Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Claim this listing

Promote this listing

Optional paid placement. Free listings stay free forever.

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.