IT Glue
What it does
IT Glue MCP server for MSPs — documents, flexible assets, semantic vector search, RBAC, and BYOK
- Connects 在你的电脑上运行
- Account or key Needs ITGLUE_API_KEY, OPENAI_API_KEY, AZURE_OPENAI_API_KEY, AZURE_STORAGE_CONNECTION_STRING
- Category 搜索与 AI 记忆
安装
选择你使用的 AI 应用,然后复制设置。
通过 3/3 项检查 · 在你的电脑上运行 · ✓ 命令已检查 2026年11月14日
第一步:你用哪个 AI?
选择你用的应用,步骤会显示在下方。
可连接 Claude,但需要先准备
需要 IT Glue 的密钥(在开发者网站创建) · 需要先在电脑上安装 Node.js(只需一次) · 仅限电脑上的 Claude 应用(Windows 或 Mac),网页和手机不可用
打开电脑版 Claude 应用的设置文件
SettingsDeveloperEdit Config
粘贴这些设置并保存文件
{ "mcpServers": { "itglue": { "command": "npx", "args": [ "-y", "mcp-itglue" ], "env": { "ITGLUE_API_KEY": "your-value", "OPENAI_API_KEY": "your-value", "AZURE_OPENAI_API_KEY": "your-value", "AZURE_STORAGE_CONNECTION_STRING": "your-value" } } } }只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人
退出 Claude 再重新打开
试一试
用 IT Glue 告诉我你能帮我做什么,然后做一件给我看✓ 如果 Claude 说正在使用 IT Glue,或回答中出现 IT Glue 的工具名称,就表示连接成功
10 项可选设置(不填也能用)
上面的命令不填这些也能用。想调整时再按开发者的说明添加。
ITGLUE_REGIONIT Glue region: us, eu, or au · 默认值 usITGLUE_BASE_URLFull API base URL (overrides ITGLUE_REGION)AZURE_OPENAI_ENDPOINTAzure OpenAI endpoint URLEMBEDDING_MODELEmbedding model or Azure deployment name · 默认值 text-embedding-3-smallITGLUE_ADVANCED_TOOLSETtrue/1 registers the advanced toolset (itglue_get, itglue_find_endpoint) — an opt-in read-only escape hatch; password resources stay blocked · 默认值 falseVECTOR_INDEX_PATHPath of the persisted vector index file · 默认值 ./vector-index.jsonUPLOAD_STAGINGStaged 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 stdio · 默认值 memoryPUBLIC_BASE_URLExternally reachable base URL of this server, used for memory-mode upload URLsAZURE_STORAGE_ACCOUNTazure-blob staging via DefaultAzureCredential (managed identity) — alternative to the connection stringAZURE_STORAGE_CONTAINERBlob container for staged uploads · 默认值 mcp-itglue-uploads
说明仍为英文原文。
菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同
ChatGPT 暂时无法连接 IT Glue
IT Glue 需要安装在你的电脑上,而 ChatGPT 只能连接在网上运行的服务器
你可以改用这些方式
A · 使用能连接 IT Glue 的应用
- 需要 IT Glue 的密钥(在开发者网站创建) · 需要先在电脑上安装 Node.js(只需一次) · 仅限电脑上的 Claude 应用(Windows 或 Mac),网页和手机不可用
- 需要 IT Glue 的密钥(在开发者网站创建) · 需要先在电脑上安装 Node.js(只需一次)
- 需要 IT Glue 的密钥(在开发者网站创建) · 需要先在电脑上安装 Node.js(只需一次)
- 需要 IT Glue 的密钥(在开发者网站创建) · 需要先在电脑上安装 Node.js(只需一次)
可连接 Claude Code,但需要先准备
需要 IT Glue 的密钥(在开发者网站创建) · 需要先在电脑上安装 Node.js(只需一次)
打开终端
Mac:按 Command+空格,输入 Terminal · Windows:打开 PowerShell
粘贴这条命令并按 Enter
claude mcp add --scope user itglue --env ITGLUE_API_KEY=your-value --env OPENAI_API_KEY=your-value --env AZURE_OPENAI_API_KEY=your-value --env AZURE_STORAGE_CONNECTION_STRING=your-value -- npx -y mcp-itglue按 Enter 前,把“your-value”改成你的密钥
只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人
在 Claude Code 中输入 /mcp
应能看到 IT Glue 在列表中并显示已连接
试一试
用 IT Glue 告诉我你能帮我做什么,然后做一件给我看✓ 如果 Claude Code 说正在使用 IT Glue,或回答中出现 IT Glue 的工具名称,就表示连接成功
10 项可选设置(不填也能用)
上面的命令不填这些也能用。想调整时再按开发者的说明添加。
ITGLUE_REGIONIT Glue region: us, eu, or au · 默认值 usITGLUE_BASE_URLFull API base URL (overrides ITGLUE_REGION)AZURE_OPENAI_ENDPOINTAzure OpenAI endpoint URLEMBEDDING_MODELEmbedding model or Azure deployment name · 默认值 text-embedding-3-smallITGLUE_ADVANCED_TOOLSETtrue/1 registers the advanced toolset (itglue_get, itglue_find_endpoint) — an opt-in read-only escape hatch; password resources stay blocked · 默认值 falseVECTOR_INDEX_PATHPath of the persisted vector index file · 默认值 ./vector-index.jsonUPLOAD_STAGINGStaged 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 stdio · 默认值 memoryPUBLIC_BASE_URLExternally reachable base URL of this server, used for memory-mode upload URLsAZURE_STORAGE_ACCOUNTazure-blob staging via DefaultAzureCredential (managed identity) — alternative to the connection stringAZURE_STORAGE_CONTAINERBlob container for staged uploads · 默认值 mcp-itglue-uploads
说明仍为英文原文。
菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同
可连接 Cursor,但需要先准备
需要 IT Glue 的密钥(在开发者网站创建) · 需要先在电脑上安装 Node.js(只需一次)
填写你的密钥
在 IT Glue 的设置中,ITGLUE_API_KEY, OPENAI_API_KEY, AZURE_OPENAI_API_KEY, AZURE_STORAGE_CONNECTION_STRING 还是空的,填入你的密钥并保存
只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人
在 Cursor 中以 Agent 模式打开 AI 聊天
试一试
用 IT Glue 告诉我你能帮我做什么,然后做一件给我看✓ 如果 Cursor 说正在使用 IT Glue,或回答中出现 IT Glue 的工具名称,就表示连接成功
10 项可选设置(不填也能用)
上面的命令不填这些也能用。想调整时再按开发者的说明添加。
ITGLUE_REGIONIT Glue region: us, eu, or au · 默认值 usITGLUE_BASE_URLFull API base URL (overrides ITGLUE_REGION)AZURE_OPENAI_ENDPOINTAzure OpenAI endpoint URLEMBEDDING_MODELEmbedding model or Azure deployment name · 默认值 text-embedding-3-smallITGLUE_ADVANCED_TOOLSETtrue/1 registers the advanced toolset (itglue_get, itglue_find_endpoint) — an opt-in read-only escape hatch; password resources stay blocked · 默认值 falseVECTOR_INDEX_PATHPath of the persisted vector index file · 默认值 ./vector-index.jsonUPLOAD_STAGINGStaged 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 stdio · 默认值 memoryPUBLIC_BASE_URLExternally reachable base URL of this server, used for memory-mode upload URLsAZURE_STORAGE_ACCOUNTazure-blob staging via DefaultAzureCredential (managed identity) — alternative to the connection stringAZURE_STORAGE_CONTAINERBlob container for staged uploads · 默认值 mcp-itglue-uploads
说明仍为英文原文。
菜单名称已于 2026年11月11日 对照 Cursor 帮助页面核实 · 你的界面可能因版本略有不同
可连接 VS Code,但需要先准备
需要 IT Glue 的密钥(在开发者网站创建) · 需要先在电脑上安装 Node.js(只需一次)
填写你的密钥
在 IT Glue 的设置中,ITGLUE_API_KEY, OPENAI_API_KEY, AZURE_OPENAI_API_KEY, AZURE_STORAGE_CONNECTION_STRING 还是空的,填入你的密钥并保存
只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人
在 VS Code 中以 Agent 模式打开 AI 聊天
试一试
用 IT Glue 告诉我你能帮我做什么,然后做一件给我看✓ 如果 VS Code 说正在使用 IT Glue,或回答中出现 IT Glue 的工具名称,就表示连接成功
10 项可选设置(不填也能用)
上面的命令不填这些也能用。想调整时再按开发者的说明添加。
ITGLUE_REGIONIT Glue region: us, eu, or au · 默认值 usITGLUE_BASE_URLFull API base URL (overrides ITGLUE_REGION)AZURE_OPENAI_ENDPOINTAzure OpenAI endpoint URLEMBEDDING_MODELEmbedding model or Azure deployment name · 默认值 text-embedding-3-smallITGLUE_ADVANCED_TOOLSETtrue/1 registers the advanced toolset (itglue_get, itglue_find_endpoint) — an opt-in read-only escape hatch; password resources stay blocked · 默认值 falseVECTOR_INDEX_PATHPath of the persisted vector index file · 默认值 ./vector-index.jsonUPLOAD_STAGINGStaged 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 stdio · 默认值 memoryPUBLIC_BASE_URLExternally reachable base URL of this server, used for memory-mode upload URLsAZURE_STORAGE_ACCOUNTazure-blob staging via DefaultAzureCredential (managed identity) — alternative to the connection stringAZURE_STORAGE_CONTAINERBlob container for staged uploads · 默认值 mcp-itglue-uploads
说明仍为英文原文。
菜单名称已于 2026年11月11日 对照 VS Code 帮助页面核实 · 你的界面可能因版本略有不同
开发者专用:终端命令和 JSON 设置
安装在电脑上
Claude Code
claude mcp add --scope user itglue --env ITGLUE_API_KEY=your-value --env OPENAI_API_KEY=your-value --env AZURE_OPENAI_API_KEY=your-value --env AZURE_STORAGE_CONNECTION_STRING=your-value -- npx -y mcp-itglueClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"itglue": {
"command": "npx",
"args": [
"-y",
"mcp-itglue"
],
"env": {
"ITGLUE_API_KEY": "your-value",
"OPENAI_API_KEY": "your-value",
"AZURE_OPENAI_API_KEY": "your-value",
"AZURE_STORAGE_CONNECTION_STRING": "your-value"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"itglue": {
"command": "npx",
"args": [
"-y",
"mcp-itglue"
],
"env": {
"ITGLUE_API_KEY": "your-value",
"OPENAI_API_KEY": "your-value",
"AZURE_OPENAI_API_KEY": "your-value",
"AZURE_STORAGE_CONNECTION_STRING": "your-value"
}
}
}
}VS Code (mcp.json)
{
"servers": {
"itglue": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-itglue"
],
"env": {
"ITGLUE_API_KEY": "your-value",
"OPENAI_API_KEY": "your-value",
"AZURE_OPENAI_API_KEY": "your-value",
"AZURE_STORAGE_CONNECTION_STRING": "your-value"
}
}
}
}需要你填写的值
ITGLUE_API_KEY机密 必填 envIT 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机密 必填 envOpenAI API key — enables semantic vector search toolsAZURE_OPENAI_API_KEY机密 必填 envAzure 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 URLsAZURE_STORAGE_CONNECTION_STRING机密 必填 envazure-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月14日
- ✓ 通过
作者与仓库一致
注册名称已通过 GitHub 账户 mspstack 验证,该账户拥有此仓库
- ✓ 通过
仍在维护
代码最后更新于2个月前
- ✓ 通过
有许可证
使用 MIT
- – 不适用
端点有响应
它在你的电脑上运行,没有互联网端点
- – 不适用
使用 OAuth 登录
在你的电脑上运行,改用本地设置
- … 尚未检查
工具描述中没有隐藏指令
它在你的电脑上运行;我们只能读取互联网端点的工具列表
讨论
提问、分享技巧或报告无法使用。按“有帮助”数量排序。
用户评价
还没有评价
与“搜索与 AI 记忆”中的其他服务器比较i
- 星标数多于此分类中其他 6096 个服务器的 89%
- 发布到注册中心的时间比此分类中其他 6096 个服务器的 39% 更新
- 基础检查结果等于或优于此分类中其他 6096 个服务器的 100%
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
常见问题
IT Glue 安全吗?
它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
它需要哪些密钥或代码?
你需要填写:ITGLUE_API_KEY, OPENAI_API_KEY, AZURE_OPENAI_API_KEY, AZURE_STORAGE_CONNECTION_STRING
它在我的电脑上运行还是在云端?
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
它还在维护吗?
GitHub 仓库最后更新于2个月前,最新版本(0.6.0)于2个月前进入注册中心。
哪些应用可以使用它?
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
有什么可以替代它?
同一分类中有:Context7, Codebase Memory, OpenSEO
同类别的其他选择
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
OpenSEO
Keyword research, site audits, rank tracking and AI visibility for your AI agent.
作者的 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