IT Glue
概要
作者による説明(英語の原文)
IT Glue MCP server for MSPs — documents, flexible assets, semantic vector search, RBAC, and BYOK
PopNx MCPの3つの柱
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
- 利用者の声iレビューはまだありませんレビューは今後のステップで、アカウント機能と一緒に始まります
- 私たちの基本チェックi2項目中2項目に合格公開情報からチェック。コードはまだスキャンしていません
- 利用状況iとても新しい↓ 98/週 · ★ 6
できること
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
- 接続方法: パソコンで動く
- トランスポート: stdio
- カテゴリ: 検索・AIの記憶
- 入力が必要なもの:ITGLUE_API_KEY, OPENAI_API_KEY, AZURE_OPENAI_API_KEY, AZURE_STORAGE_CONNECTION_STRING
インストール
使っているAIアプリを選んで、設定をコピーしてください。
インストールの前に
- 基本チェック:2項目中2項目に合格
- あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
- 自分で入力するもの:
ITGLUE_API_KEY,ITGLUE_REGION,ITGLUE_BASE_URL,OPENAI_API_KEY,AZURE_OPENAI_API_KEY,AZURE_OPENAI_ENDPOINT,EMBEDDING_MODEL,ITGLUE_ADVANCED_TOOLSET,VECTOR_INDEX_PATH,UPLOAD_STAGING,PUBLIC_BASE_URL,AZURE_STORAGE_CONNECTION_STRING,AZURE_STORAGE_ACCOUNT,AZURE_STORAGE_CONTAINER
「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"itglue": {
"command": "npx",
"args": [
"-y",
"mcp-itglue"
],
"env": {
"ITGLUE_API_KEY": "your-value",
"ITGLUE_REGION": "your-value",
"ITGLUE_BASE_URL": "your-value",
"OPENAI_API_KEY": "your-value",
"AZURE_OPENAI_API_KEY": "your-value",
"AZURE_OPENAI_ENDPOINT": "your-value",
"EMBEDDING_MODEL": "your-value",
"ITGLUE_ADVANCED_TOOLSET": "your-value",
"VECTOR_INDEX_PATH": "your-value",
"UPLOAD_STAGING": "your-value",
"PUBLIC_BASE_URL": "your-value",
"AZURE_STORAGE_CONNECTION_STRING": "your-value",
"AZURE_STORAGE_ACCOUNT": "your-value",
"AZURE_STORAGE_CONTAINER": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add itglue --env ITGLUE_API_KEY=your-value --env ITGLUE_REGION=your-value --env ITGLUE_BASE_URL=your-value --env OPENAI_API_KEY=your-value --env AZURE_OPENAI_API_KEY=your-value --env AZURE_OPENAI_ENDPOINT=your-value --env EMBEDDING_MODEL=your-value --env ITGLUE_ADVANCED_TOOLSET=your-value --env VECTOR_INDEX_PATH=your-value --env UPLOAD_STAGING=your-value --env PUBLIC_BASE_URL=your-value --env AZURE_STORAGE_CONNECTION_STRING=your-value --env AZURE_STORAGE_ACCOUNT=your-value --env AZURE_STORAGE_CONTAINER=your-value -- npx -y mcp-itglue動かす前に、空欄の値を入力してください。
または、設定を自分でコピーする
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"itglue": {
"command": "npx",
"args": [
"-y",
"mcp-itglue"
],
"env": {
"ITGLUE_API_KEY": "your-value",
"ITGLUE_REGION": "your-value",
"ITGLUE_BASE_URL": "your-value",
"OPENAI_API_KEY": "your-value",
"AZURE_OPENAI_API_KEY": "your-value",
"AZURE_OPENAI_ENDPOINT": "your-value",
"EMBEDDING_MODEL": "your-value",
"ITGLUE_ADVANCED_TOOLSET": "your-value",
"VECTOR_INDEX_PATH": "your-value",
"UPLOAD_STAGING": "your-value",
"PUBLIC_BASE_URL": "your-value",
"AZURE_STORAGE_CONNECTION_STRING": "your-value",
"AZURE_STORAGE_ACCOUNT": "your-value",
"AZURE_STORAGE_CONTAINER": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
または、設定を自分でコピーする
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"itglue": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-itglue"
],
"env": {
"ITGLUE_API_KEY": "your-value",
"ITGLUE_REGION": "your-value",
"ITGLUE_BASE_URL": "your-value",
"OPENAI_API_KEY": "your-value",
"AZURE_OPENAI_API_KEY": "your-value",
"AZURE_OPENAI_ENDPOINT": "your-value",
"EMBEDDING_MODEL": "your-value",
"ITGLUE_ADVANCED_TOOLSET": "your-value",
"VECTOR_INDEX_PATH": "your-value",
"UPLOAD_STAGING": "your-value",
"PUBLIC_BASE_URL": "your-value",
"AZURE_STORAGE_CONNECTION_STRING": "your-value",
"AZURE_STORAGE_ACCOUNT": "your-value",
"AZURE_STORAGE_CONTAINER": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
自分で入力する値
- IT Glue API key (Account → Settings → API Keys)
ITGLUE_REGIONenvIT Glue region: us, eu, or auITGLUE_BASE_URLenvFull API base URL (overrides ITGLUE_REGION)- OpenAI API key — enables semantic vector search tools
- Azure OpenAI API key — enables vector search via Azure (requires AZURE_OPENAI_ENDPOINT)
AZURE_OPENAI_ENDPOINTenvAzure OpenAI endpoint URLEMBEDDING_MODELenvEmbedding model or Azure deployment nameITGLUE_ADVANCED_TOOLSETenvtrue/1 registers the advanced toolset (itglue_get, itglue_find_endpoint) — an opt-in read-only escape hatch; password resources stay blockedVECTOR_INDEX_PATHenvPath of the persisted vector index fileUPLOAD_STAGINGenvStaged file uploads for upload_id: off, memory (PUT to this server's /upload/:id), or azure-blob (SAS upload to Azure Blob Storage). Default: memory on http, off on stdioPUBLIC_BASE_URLenvExternally reachable base URL of this server, used for memory-mode upload URLs- azure-blob staging: storage account connection string (account-key SAS)
AZURE_STORAGE_ACCOUNTenvazure-blob staging via DefaultAzureCredential (managed identity) — alternative to the connection stringAZURE_STORAGE_CONTAINERenvBlob container for staged uploads
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
使えるアプリ
このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。
パソコン上で動かせるアプリ
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
できること
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
基本チェックi
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月11日にチェック
- ✓ 合格
作者とリポジトリが一致
レジストリ名は、リポジトリを所有するGitHubアカウント mspstack で確認済みです
- ✓ 合格
今もメンテナンスされている
コードの最終更新:2 か月前
- … 未チェック
ライセンスがある
このリポジトリはまだGitHubから読み取っていません
- – 対象外
エンドポイントが応答する
これはパソコンで動くため、インターネット上のエンドポイントはありません
- – 対象外
OAuthでサインイン
パソコンで動き、代わりにローカルの設定を使います
- … 未チェック
ツールの説明に隠れた指示がない
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
検索・AIの記憶のほかのサーバーとの比較i
- このカテゴリのほかの5868件のうち88%よりスターが多い
- このカテゴリのほかの5868件のうち42%より最近レジストリに公開
- 基本チェックの結果が、このカテゴリのほかの5868件のうち100%と同じかそれ以上
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
よくある質問
IT Glueは安全ですか?
当てはまる基本チェック2項目のうち2項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
どんなキーやコードが必要ですか?
入力が必要なもの:ITGLUE_API_KEY, OPENAI_API_KEY, AZURE_OPENAI_API_KEY, AZURE_STORAGE_CONNECTION_STRING
パソコンで動きますか、それともクラウドですか?
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
今もメンテナンスされていますか?
GitHubリポジトリの最終更新は2 か月前、最新バージョン(0.6.0)がレジストリに届いたのは2 か月前です。
どのアプリで使えますか?
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
代わりに使えるものは?
同じカテゴリには:Ruflo, Context7, Metabase
代わりの候補
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
作者のREADME
READMEを開く
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
mcp-itglue
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
- Images inside documents — upload a picture into a document (inline in a Text/Step section, or into a Gallery) from base64, a URL, or a local path, and embed it with the returned
; get and delete document images - Attachments — attach any file to a record's Attachments panel (documents, flexible assets, configurations, …); 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:
| Route | Purpose |
|---|---|
POST/GET/DELETE /mcp | MCP streamable-http endpoint |
GET /health | Liveness probe |
POST /webhook/itglue | IT Glue webhook → incremental index update |
POST /index/refresh | Manual index refresh (shared secret or admin token) |
PUT /upload/:id | Staged file upload slot (memory backend; same auth as /mcp) |
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 . 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:
| Value | Behavior |
|---|---|
with-token (default) | BYOK allowed, but a valid bearer token is still required — protects your server from being an open proxy |
open | An IT Glue key alone authenticates (trusted networks / local use) |
disabled | The 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: .
Tools
| Tool | Tier |
|---|---|
itglue_list_organizations, itglue_get_organization | read |
itglue_list_documents, itglue_get_document | read |
itglue_list_document_folders | read |
itglue_list_document_sections, itglue_get_document_section | read |
itglue_list_flexible_asset_types, itglue_get_flexible_asset_type | read |
itglue_list_flexible_assets, itglue_get_flexible_asset | read |
itglue_get_document_image | read |
itglue_list_attachments | read |
itglue_vector_search, itglue_vector_index_status | read |
itglue_create_document, itglue_update_document, itglue_publish_document | write |
itglue_create_document_section, itglue_update_document_section | write |
itglue_delete_document_section † | write |
itglue_create_document_image | write |
itglue_delete_document_image † | write |
itglue_request_upload (HTTP, when UPLOAD_STAGING ≠ off) | write |
itglue_create_flexible_asset, itglue_update_flexible_asset | write |
itglue_create_attachment | write |
itglue_build_vector_index | write |
itglue_delete_documents | destructive |
itglue_delete_flexible_asset | destructive |
itglue_delete_attachment | destructive |
itglue_find_endpoint, itglue_get ‡ | read |
Viewer = read. Editor = read + write. Admin = everything. † Permanent, but editor-tier: editors need these to restructure documents and can already blank section content (or edit an out of it) via update.
Images in documents vs. attachments
IT Glue has two unrelated upload paths. Attachments (itglue_create_attachment) land in a record's Attachments side panel and never render in a document's body. To show a picture *inside* a document, use itglue_create_document_image:
- Upload with
document_id(inline) ordocument_id+gallery_id(thedocument_gallery_idof a Gallery/Step section). - For inline images, put the returned
inline_resource_urlverbatim into the section HTML:— or passappend_to_section_idand the tool appends it to an existing Text/Step section for you.
IT Glue strips data: URIs and its own S3 URLs from section content; only these relative paths (and public https:// links) survive.
Getting a file from the client to the server (staged uploads)
Tool arguments travel through the model, so content_base64 only works for tiny files — a screenshot is megabytes of base64 the model would have to reproduce token by token (and IT Glue rejects the truncated result with NotIdentifiedByImageMagickError). Over HTTP the server therefore offers staged uploads:
- The model calls
itglue_request_upload(file_nameoptional) and gets anupload_id, a URL, and a ready-to-runcurl. - The client PUTs the file to that URL from a shell.
- The model calls
itglue_create_document_imageoritglue_create_attachmentwithupload_id.
Slots live 15 minutes, are bound to the requesting principal (token label / BYOK key), and are consumed once. Two backends, chosen with UPLOAD_STAGING:
| Mode | Where the PUT goes | When to use |
|---|---|---|
memory (default on HTTP) | This server's PUT /upload/:id, with the same Authorization / x-itglue-api-key headers as /mcp. Set PUBLIC_BASE_URL so the URL is reachable. | The server is directly reachable by clients. |
azure-blob | A short-lived SAS URL on Azure Blob Storage; the server later downloads the blob with its own credentials and deletes it. | The server sits behind a gateway or is otherwise not reachable from clients. Configure AZURE_STORAGE_CONNECTION_STRING (account-key SAS) or AZURE_STORAGE_ACCOUNT (managed identity / az login via DefaultAzureCredential, needs *Storage Blob Data Contributor* + *Storage Blob Delegator*), plus optional AZURE_STORAGE_CONTAINER (default mcp-itglue-uploads). |
off | — | stdio (default there — file_path reads the local disk directly) or when you don't want the feature. |
url remains the simplest source for anything already hosted on the web. ‡ 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:
- 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:
| Key | Value |
|---|---|
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.
- Self-refresh — documents created/updated/published/deleted through this server's tools are re-indexed automatically in the background.
- Manual refresh —
POST /index/refreshwithAuthorization: Bearer(or anx-refresh-secretheader, or an admin token). Body{"document_id": "123"}refreshes one document; an empty body re-crawls every indexed or