itglue-mcp 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +201 -267
- package/dist/index.js +192 -6
- package/dist/index.js.map +1 -1
- package/dist/tools/attachments.d.ts +46 -0
- package/dist/tools/attachments.d.ts.map +1 -0
- package/dist/tools/attachments.js +103 -0
- package/dist/tools/attachments.js.map +1 -0
- package/dist/tools/configuration-interfaces.d.ts +44 -0
- package/dist/tools/configuration-interfaces.d.ts.map +1 -0
- package/dist/tools/configuration-interfaces.js +82 -0
- package/dist/tools/configuration-interfaces.js.map +1 -0
- package/dist/tools/contacts.d.ts +46 -0
- package/dist/tools/contacts.d.ts.map +1 -0
- package/dist/tools/contacts.js +87 -0
- package/dist/tools/contacts.js.map +1 -0
- package/dist/tools/locations.d.ts +41 -0
- package/dist/tools/locations.d.ts.map +1 -0
- package/dist/tools/locations.js +84 -0
- package/dist/tools/locations.js.map +1 -0
- package/dist/tools/related-items.d.ts +45 -0
- package/dist/tools/related-items.d.ts.map +1 -0
- package/dist/tools/related-items.js +95 -0
- package/dist/tools/related-items.js.map +1 -0
- package/dist/types/itglue.d.ts +63 -0
- package/dist/types/itglue.d.ts.map +1 -1
- package/dist/types/itglue.js.map +1 -1
- package/package.json +8 -8
- package/skills/account-review/CLAUDE.md +11 -0
- package/skills/account-review/SKILL.md +325 -0
- package/skills/client-onboard/CLAUDE.md +7 -0
- package/skills/client-onboard/SKILL.md +286 -0
- package/skills/compliance-audit/CLAUDE.md +7 -0
- package/skills/compliance-audit/SKILL.md +255 -0
- package/skills/find-password/CLAUDE.md +12 -0
- package/skills/find-password/SKILL.md +126 -0
- package/skills/incident-response/CLAUDE.md +7 -0
- package/skills/incident-response/SKILL.md +178 -0
package/README.md
CHANGED
|
@@ -1,67 +1,38 @@
|
|
|
1
|
-
# ITGlue MCP Server
|
|
1
|
+
# ITGlue MCP Server for Claude Code
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Access your entire ITGlue documentation library from Claude Code using natural language. Built for MSP engineers who are tired of switching between their terminal and ITGlue's web UI.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
- ✅ Natural language queries for ITGlue data
|
|
11
|
-
- ✅ Reduced Mean Time to Resolution (MTTR) with instant credential access
|
|
12
|
-
- ✅ AI-assisted documentation discovery
|
|
13
|
-
- ✅ Audit trails for compliance (password access logging)
|
|
14
|
-
- ✅ Smart caching and rate limiting
|
|
15
|
-
- ✅ Multi-region support (US/EU/AU)
|
|
16
|
-
|
|
17
|
-
## Features
|
|
18
|
-
|
|
19
|
-
### Progressive Disclosure Architecture
|
|
20
|
-
Following the claude-mem pattern for token efficiency:
|
|
21
|
-
|
|
22
|
-
**Tier 1: Discovery** - Lightweight summaries
|
|
23
|
-
- `itglue_search_organizations` - Find organizations by name/ID
|
|
24
|
-
- `itglue_list_organization_types` - Get org types
|
|
25
|
-
- `itglue_search_global` - Cross-entity search
|
|
26
|
-
|
|
27
|
-
**Tier 2: Entity Navigation** - Scoped queries
|
|
28
|
-
- `itglue_list_configurations` - List servers/workstations/devices
|
|
29
|
-
- `itglue_list_passwords` - List passwords (metadata only, no values)
|
|
30
|
-
- `itglue_list_flexible_assets` - List custom documentation
|
|
31
|
-
- `itglue_list_documents` - List documents
|
|
5
|
+
```
|
|
6
|
+
You: "Find the firewall password for Acme Corp"
|
|
7
|
+
Claude: Searches organizations → finds Acme → lists passwords → retrieves credential
|
|
8
|
+
(audit logged, 15 seconds total)
|
|
9
|
+
```
|
|
32
10
|
|
|
33
|
-
|
|
34
|
-
- `itglue_get_password` - Retrieve password values (audit logged)
|
|
35
|
-
- `itglue_get_flexible_asset` - Get full flexible asset details
|
|
11
|
+
## What This Does
|
|
36
12
|
|
|
37
|
-
|
|
38
|
-
- 🔒 All password access is audit logged to stderr
|
|
39
|
-
- 🔒 No sensitive data in logs (automatic sanitization)
|
|
40
|
-
- 🔒 API keys never exposed in responses
|
|
41
|
-
- 🔒 Audit trail for compliance requirements
|
|
13
|
+
This package connects [Claude Code](https://docs.anthropic.com/en/docs/claude-code) to your ITGlue account. Once installed, you can ask Claude to look up organizations, pull server configs, retrieve passwords, run compliance audits, and generate account review reports - all without leaving your terminal.
|
|
42
14
|
|
|
43
|
-
|
|
44
|
-
- ⚡ Smart caching (5min for orgs, 1min for configs/docs)
|
|
45
|
-
- ⚡ Rate limiting (8 req/sec with 20% safety margin)
|
|
46
|
-
- ⚡ Automatic retry with exponential backoff
|
|
47
|
-
- ⚡ Multi-region support (US/EU/AU)
|
|
15
|
+
**Who it's for:** MSP engineers, IT administrators, and service desk teams who use ITGlue as their documentation platform.
|
|
48
16
|
|
|
49
|
-
|
|
17
|
+
**What you get:**
|
|
18
|
+
- 19 tools for querying ITGlue data through natural language
|
|
19
|
+
- 5 pre-built Skills that automate common MSP workflows
|
|
20
|
+
- Standalone HTML report generation for QBRs and account reviews
|
|
21
|
+
- Security audit logging on every password access
|
|
22
|
+
- Smart caching and rate limiting so you don't hit ITGlue's API limits
|
|
50
23
|
|
|
51
|
-
|
|
52
|
-
- Node.js 18 or higher
|
|
53
|
-
- ITGlue API key (from Settings → API Keys in ITGlue)
|
|
54
|
-
- [Claude Code](https://claude.ai/claude-code) installed
|
|
24
|
+
## Setup (3 Steps)
|
|
55
25
|
|
|
56
|
-
###
|
|
26
|
+
### 1. Get Your ITGlue API Key
|
|
57
27
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
28
|
+
1. Log into ITGlue
|
|
29
|
+
2. Go to **Account > Settings > API Keys**
|
|
30
|
+
3. Click **Generate New API Key**
|
|
31
|
+
4. Copy the key (it starts with `ITG.`)
|
|
61
32
|
|
|
62
|
-
###
|
|
33
|
+
### 2. Add to Claude Code
|
|
63
34
|
|
|
64
|
-
|
|
35
|
+
Open your Claude Code configuration file (`~/.claude.json`) and add the MCP server:
|
|
65
36
|
|
|
66
37
|
```json
|
|
67
38
|
{
|
|
@@ -70,7 +41,7 @@ Add the MCP server to your Claude Code configuration (`~/.claude/settings.json`)
|
|
|
70
41
|
"command": "npx",
|
|
71
42
|
"args": ["-y", "itglue-mcp"],
|
|
72
43
|
"env": {
|
|
73
|
-
"ITGLUE_API_KEY": "your-
|
|
44
|
+
"ITGLUE_API_KEY": "ITG.your-key-here",
|
|
74
45
|
"ITGLUE_REGION": "US"
|
|
75
46
|
}
|
|
76
47
|
}
|
|
@@ -78,108 +49,147 @@ Add the MCP server to your Claude Code configuration (`~/.claude/settings.json`)
|
|
|
78
49
|
}
|
|
79
50
|
```
|
|
80
51
|
|
|
81
|
-
|
|
82
|
-
1. Log into ITGlue
|
|
83
|
-
2. Go to Settings → API Keys
|
|
84
|
-
3. Create a new API key
|
|
85
|
-
4. Copy and add to your configuration
|
|
52
|
+
Set `ITGLUE_REGION` to `US`, `EU`, or `AU` depending on your ITGlue instance.
|
|
86
53
|
|
|
87
|
-
|
|
54
|
+
### 3. Restart Claude Code
|
|
88
55
|
|
|
89
|
-
|
|
56
|
+
Restart Claude Code (or start a new session). You should now have access to all ITGlue tools. Test it:
|
|
90
57
|
|
|
91
|
-
|
|
58
|
+
```
|
|
59
|
+
You: "Check ITGlue health"
|
|
60
|
+
```
|
|
92
61
|
|
|
93
|
-
|
|
94
|
-
# Clone the repository
|
|
95
|
-
git clone https://github.com/suleman-viyu/itglue-mcp.git
|
|
96
|
-
cd itglue-mcp
|
|
62
|
+
If you see a healthy status, you're all set.
|
|
97
63
|
|
|
98
|
-
|
|
99
|
-
npm install
|
|
64
|
+
## Installing the Skills
|
|
100
65
|
|
|
101
|
-
|
|
102
|
-
npm run build
|
|
66
|
+
The package ships with **5 Skills** - guided workflows that Claude follows to complete common MSP tasks. Skills are optional but dramatically speed up repetitive work.
|
|
103
67
|
|
|
104
|
-
|
|
105
|
-
npm link
|
|
68
|
+
Install them globally (available in every Claude Code session):
|
|
106
69
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
{
|
|
110
|
-
"mcpServers": {
|
|
111
|
-
"itglue": {
|
|
112
|
-
"command": "node",
|
|
113
|
-
"args": ["/absolute/path/to/itglue-mcp/dist/index.js"],
|
|
114
|
-
"env": {
|
|
115
|
-
"ITGLUE_API_KEY": "your-api-key-here",
|
|
116
|
-
"ITGLUE_REGION": "US"
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
70
|
+
```bash
|
|
71
|
+
npx itglue-mcp --install-skills
|
|
121
72
|
```
|
|
122
73
|
|
|
123
|
-
|
|
74
|
+
Or install into a specific project:
|
|
124
75
|
|
|
125
76
|
```bash
|
|
126
|
-
|
|
127
|
-
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | npx itglue-mcp
|
|
128
|
-
|
|
129
|
-
# You should see a list of 14 available tools
|
|
77
|
+
npx itglue-mcp --install-skills /path/to/your/project
|
|
130
78
|
```
|
|
131
79
|
|
|
132
|
-
|
|
80
|
+
This works on macOS, Linux, and Windows.
|
|
133
81
|
|
|
134
|
-
###
|
|
82
|
+
### Available Skills
|
|
135
83
|
|
|
136
|
-
|
|
84
|
+
| Skill | What It Does | Time Savings |
|
|
85
|
+
|-------|-------------|-------------|
|
|
86
|
+
| **Account Review** | Generates a standalone HTML report covering asset inventory, credential hygiene, compliance posture, and action items. Aligned with ITIL v4 and NIST standards. Output is ready for ConnectWise tickets or QBR presentations. | 4-8 hrs → 5-10 min |
|
|
87
|
+
| **Find Password** | Finds and retrieves a specific credential using natural language. Handles ambiguous names, multiple matches, and organization lookup automatically. | 5-10 min → <1 min |
|
|
88
|
+
| **Incident Response** | Pulls everything you need during an outage: affected asset details, network interfaces, related systems, credentials, emergency contacts, and relevant docs - all in parallel. | 5-15 min → <2 min |
|
|
89
|
+
| **Compliance Audit** | Runs password rotation checks, asset documentation audits, staleness detection, and data quality scoring. Produces a prioritized findings report. | 4-8 hrs → 5-10 min |
|
|
90
|
+
| **Client Onboard** | Walks through a standardized onboarding checklist for new clients, verifying what's documented and identifying gaps in contacts, locations, credentials, infrastructure, and SOPs. | 8-16 hrs → 2-3 hrs |
|
|
91
|
+
|
|
92
|
+
### Using a Skill
|
|
93
|
+
|
|
94
|
+
Just describe what you need and Claude will activate the right skill:
|
|
137
95
|
|
|
138
96
|
```
|
|
139
|
-
|
|
140
|
-
→
|
|
97
|
+
You: "Run an account review for Contoso and generate an HTML report"
|
|
98
|
+
→ Activates the Account Review skill
|
|
141
99
|
|
|
142
|
-
|
|
143
|
-
→
|
|
144
|
-
→ Then itglue_list_configurations (organization_id=...)
|
|
100
|
+
You: "Get me the WiFi password for Acme Corp"
|
|
101
|
+
→ Activates the Find Password skill
|
|
145
102
|
|
|
146
|
-
|
|
147
|
-
→
|
|
148
|
-
→ Then itglue_list_passwords (organization_id=...)
|
|
149
|
-
→ Then itglue_get_password (password_id=...) [AUDIT LOGGED]
|
|
103
|
+
You: "Server down at Contoso - pull everything"
|
|
104
|
+
→ Activates the Incident Response skill
|
|
150
105
|
```
|
|
151
106
|
|
|
152
|
-
|
|
107
|
+
## Usage Examples
|
|
153
108
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
109
|
+
Once the MCP server is connected, just talk to Claude naturally:
|
|
110
|
+
|
|
111
|
+
### Look Up Client Information
|
|
112
|
+
```
|
|
113
|
+
"Show me all organizations in ITGlue"
|
|
114
|
+
"List the servers for Acme Corp"
|
|
115
|
+
"What contacts do we have for Contoso?"
|
|
116
|
+
"Show me Acme's office locations"
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Retrieve Credentials
|
|
120
|
+
```
|
|
121
|
+
"Find the domain admin password for Acme Corp"
|
|
122
|
+
"Get the firewall credentials for Contoso"
|
|
123
|
+
"What's the WiFi password at the Dallas office?"
|
|
124
|
+
```
|
|
125
|
+
All password retrievals are audit logged automatically.
|
|
157
126
|
|
|
158
|
-
|
|
159
|
-
|
|
127
|
+
### Run Reports and Audits
|
|
128
|
+
```
|
|
129
|
+
"Generate a full report for Acme Corp"
|
|
130
|
+
"Run a compliance check on Contoso's passwords and configurations"
|
|
131
|
+
"Find stale documentation for Acme Corp"
|
|
132
|
+
"Check data quality for organization 12345"
|
|
160
133
|
```
|
|
161
134
|
|
|
162
|
-
|
|
135
|
+
### Incident Response
|
|
136
|
+
```
|
|
137
|
+
"Server is down at Acme Corp - get me everything"
|
|
138
|
+
"Network outage at Contoso, pull all firewall info and contacts"
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## What's Included (19 Tools)
|
|
142
|
+
|
|
143
|
+
### Finding Things
|
|
144
|
+
| Tool | What It Does |
|
|
145
|
+
|------|-------------|
|
|
146
|
+
| `itglue_search_organizations` | Search for organizations by name |
|
|
147
|
+
| `itglue_list_organization_types` | List available organization types |
|
|
148
|
+
| `itglue_search_global` | Search across all ITGlue entities at once |
|
|
149
|
+
|
|
150
|
+
### Browsing Client Data
|
|
151
|
+
| Tool | What It Does |
|
|
152
|
+
|------|-------------|
|
|
153
|
+
| `itglue_list_configurations` | List servers, workstations, network devices, printers |
|
|
154
|
+
| `itglue_list_passwords` | List stored credentials (names and categories only, no values) |
|
|
155
|
+
| `itglue_list_flexible_assets` | List custom documentation types (SSL certs, licenses, etc.) |
|
|
156
|
+
| `itglue_list_documents` | List uploaded documents |
|
|
157
|
+
| `itglue_list_contacts` | List contacts with titles, emails, and phone numbers |
|
|
158
|
+
| `itglue_list_locations` | List physical office locations and addresses |
|
|
159
|
+
| `itglue_list_attachments` | List file attachments on any resource |
|
|
160
|
+
| `itglue_list_configuration_interfaces` | List network interfaces with IPs and MACs |
|
|
161
|
+
| `itglue_get_related_items` | Show relationships between assets |
|
|
162
|
+
|
|
163
|
+
### Retrieving Details
|
|
164
|
+
| Tool | What It Does |
|
|
165
|
+
|------|-------------|
|
|
166
|
+
| `itglue_get_password` | Retrieve an actual password value (audit logged) |
|
|
167
|
+
| `itglue_get_flexible_asset` | Get full details of a flexible asset |
|
|
168
|
+
|
|
169
|
+
### Auditing and Reporting
|
|
170
|
+
| Tool | What It Does |
|
|
171
|
+
|------|-------------|
|
|
172
|
+
| `itglue_compliance_check` | Audit passwords, configs, docs, and warranties for compliance issues |
|
|
173
|
+
| `itglue_detect_staleness` | Find passwords, configs, and docs that haven't been updated |
|
|
174
|
+
| `itglue_validate_data` | Score data quality (completeness, duplicates, relationships) |
|
|
175
|
+
| `itglue_generate_report` | Generate summary, full, security, or asset-inventory reports |
|
|
176
|
+
| `itglue_health_check` | Test API connectivity, authentication, and server health |
|
|
177
|
+
|
|
178
|
+
## Configuration Options
|
|
163
179
|
|
|
164
180
|
### Environment Variables
|
|
165
181
|
|
|
166
182
|
| Variable | Required | Default | Description |
|
|
167
183
|
|----------|----------|---------|-------------|
|
|
168
|
-
| `ITGLUE_API_KEY` |
|
|
169
|
-
| `ITGLUE_REGION` | No | `US` |
|
|
170
|
-
| `ITGLUE_CACHE_TTL` | No | `300` |
|
|
171
|
-
| `ITGLUE_RATE_LIMIT` | No | `8` | Max requests per second |
|
|
172
|
-
| `ITGLUE_DEBUG` | No | `false` | Enable debug logging
|
|
173
|
-
|
|
174
|
-
### Regional Endpoints
|
|
175
|
-
|
|
176
|
-
- **US**: `https://api.itglue.com`
|
|
177
|
-
- **EU**: `https://api.eu.itglue.com`
|
|
178
|
-
- **AU**: `https://api.au.itglue.com`
|
|
184
|
+
| `ITGLUE_API_KEY` | Yes | - | Your ITGlue API key (starts with `ITG.`) |
|
|
185
|
+
| `ITGLUE_REGION` | No | `US` | `US`, `EU`, or `AU` |
|
|
186
|
+
| `ITGLUE_CACHE_TTL` | No | `300` | How long to cache results (seconds) |
|
|
187
|
+
| `ITGLUE_RATE_LIMIT` | No | `8` | Max API requests per second |
|
|
188
|
+
| `ITGLUE_DEBUG` | No | `false` | Enable verbose debug logging |
|
|
179
189
|
|
|
180
|
-
### On-Premise
|
|
190
|
+
### On-Premise ITGlue
|
|
181
191
|
|
|
182
|
-
|
|
192
|
+
If you run ITGlue on-premise, add your server URL:
|
|
183
193
|
|
|
184
194
|
```json
|
|
185
195
|
{
|
|
@@ -188,7 +198,7 @@ For on-premise ITGlue installations, add the `ITGLUE_BASE_URL` environment varia
|
|
|
188
198
|
"command": "npx",
|
|
189
199
|
"args": ["-y", "itglue-mcp"],
|
|
190
200
|
"env": {
|
|
191
|
-
"ITGLUE_API_KEY": "your-on-prem-
|
|
201
|
+
"ITGLUE_API_KEY": "your-on-prem-key",
|
|
192
202
|
"ITGLUE_BASE_URL": "https://your-itglue-server.com/api"
|
|
193
203
|
}
|
|
194
204
|
}
|
|
@@ -196,65 +206,12 @@ For on-premise ITGlue installations, add the `ITGLUE_BASE_URL` environment varia
|
|
|
196
206
|
}
|
|
197
207
|
```
|
|
198
208
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
## Development
|
|
202
|
-
|
|
203
|
-
### Project Structure
|
|
204
|
-
|
|
205
|
-
```
|
|
206
|
-
src/
|
|
207
|
-
├── index.ts # MCP server entry point
|
|
208
|
-
├── lib/
|
|
209
|
-
│ ├── api-client.ts # ITGlue API client with rate limiting + caching
|
|
210
|
-
│ ├── rate-limiter.ts # Queue-based rate limiting (8 req/sec)
|
|
211
|
-
│ ├── cache.ts # LRU cache with TTL
|
|
212
|
-
│ ├── error-handler.ts # Error transformation
|
|
213
|
-
│ └── audit-logger.ts # Security audit logging
|
|
214
|
-
├── tools/
|
|
215
|
-
│ ├── organizations.ts # Organization discovery
|
|
216
|
-
│ ├── search.ts # Global search
|
|
217
|
-
│ ├── configurations.ts # Configuration listing
|
|
218
|
-
│ ├── passwords.ts # Password management (audit logged)
|
|
219
|
-
│ ├── flexible-assets.ts # Flexible asset management
|
|
220
|
-
│ └── documents.ts # Document listing
|
|
221
|
-
└── types/
|
|
222
|
-
├── itglue.ts # ITGlue API types
|
|
223
|
-
└── mcp.ts # MCP tool types
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
### Available Scripts
|
|
227
|
-
|
|
228
|
-
```bash
|
|
229
|
-
npm run build # Build TypeScript to dist/
|
|
230
|
-
npm run dev # Watch mode for development
|
|
231
|
-
npm run test # Run tests
|
|
232
|
-
npm run test:watch # Watch mode for tests
|
|
233
|
-
npm run lint # Lint TypeScript files
|
|
234
|
-
npm run clean # Remove dist/ directory
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
### Testing
|
|
238
|
-
|
|
239
|
-
Run the test suite:
|
|
240
|
-
```bash
|
|
241
|
-
npm test
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
Test rate limiting:
|
|
245
|
-
```bash
|
|
246
|
-
# Make 20 rapid requests - should throttle to ~2.5 seconds
|
|
247
|
-
for i in {1..20}; do
|
|
248
|
-
echo '{"jsonrpc":"2.0","id":'$i',"method":"tools/call","params":{"name":"itglue_search_organizations","arguments":{"limit":1}}}' | node dist/index.js &
|
|
249
|
-
done
|
|
250
|
-
wait
|
|
251
|
-
```
|
|
209
|
+
## Security
|
|
252
210
|
|
|
253
|
-
|
|
211
|
+
### Password Access Logging
|
|
254
212
|
|
|
255
|
-
|
|
213
|
+
Every password retrieval is logged to stderr with a timestamp, operation type, and resource IDs:
|
|
256
214
|
|
|
257
|
-
All password access is logged to stderr with HIGH severity:
|
|
258
215
|
```json
|
|
259
216
|
{
|
|
260
217
|
"timestamp": "2026-02-10T21:30:00.000Z",
|
|
@@ -266,117 +223,94 @@ All password access is logged to stderr with HIGH severity:
|
|
|
266
223
|
}
|
|
267
224
|
```
|
|
268
225
|
|
|
269
|
-
###
|
|
226
|
+
### Data Protection
|
|
227
|
+
- API keys are never included in responses or tool output
|
|
228
|
+
- Password values are never cached (all other data caches for 1-5 minutes)
|
|
229
|
+
- Sensitive fields are automatically redacted from debug logs
|
|
230
|
+
- All connections use HTTPS
|
|
270
231
|
|
|
271
|
-
|
|
272
|
-
-
|
|
273
|
-
-
|
|
274
|
-
-
|
|
232
|
+
### Recommendations
|
|
233
|
+
- Use an ITGlue API key with the minimum permissions your workflows need
|
|
234
|
+
- Review audit logs periodically to monitor password access
|
|
235
|
+
- Store your API key in environment variables, not in committed files
|
|
275
236
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
1. **Store API keys securely** - Use environment variables, never commit to git
|
|
279
|
-
2. **Review audit logs** - Monitor password access for unauthorized use
|
|
280
|
-
3. **Use least privilege** - ITGlue API keys should have minimal necessary permissions
|
|
281
|
-
4. **Rotate keys regularly** - Change API keys periodically
|
|
282
|
-
|
|
283
|
-
## Troubleshooting
|
|
284
|
-
|
|
285
|
-
### "ITGLUE_API_KEY environment variable is required"
|
|
286
|
-
|
|
287
|
-
Set your API key:
|
|
288
|
-
```bash
|
|
289
|
-
export ITGLUE_API_KEY="your-api-key"
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
Get your API key from: ITGlue → Settings → API Keys
|
|
237
|
+
## Performance
|
|
293
238
|
|
|
294
|
-
|
|
239
|
+
The server handles rate limiting and caching automatically so you don't have to think about it:
|
|
295
240
|
|
|
296
|
-
|
|
241
|
+
- **Rate limit**: 8 requests/second (ITGlue allows 10; we stay under with a safety margin)
|
|
242
|
+
- **Retry**: Failed requests automatically retry with exponential backoff (5s, 10s, 20s)
|
|
243
|
+
- **Caching**: Organizations cache for 5 minutes, configurations/documents for 1 minute, passwords are never cached
|
|
297
244
|
|
|
298
|
-
|
|
245
|
+
## Troubleshooting
|
|
299
246
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
247
|
+
| Problem | Fix |
|
|
248
|
+
|---------|-----|
|
|
249
|
+
| `ITGLUE_API_KEY environment variable is required` | Add your API key to the `env` block in your Claude Code config |
|
|
250
|
+
| `Authentication failed` | Your API key is invalid or expired. Generate a new one in ITGlue > Settings > API Keys |
|
|
251
|
+
| `Network error: Unable to connect` | Check that `ITGLUE_REGION` matches your account (US/EU/AU) and you have internet access |
|
|
252
|
+
| Tools not showing up in Claude Code | Restart Claude Code after updating your config. Run `"Check ITGlue health"` to verify |
|
|
253
|
+
| Rate limit errors | The server retries automatically. If persistent, lower `ITGLUE_RATE_LIMIT` to `5` |
|
|
304
254
|
|
|
305
|
-
|
|
255
|
+
For debug output, set `ITGLUE_DEBUG` to `true` in your env config. Logs go to stderr.
|
|
306
256
|
|
|
307
|
-
|
|
308
|
-
1. The server automatically retries with exponential backoff
|
|
309
|
-
2. Reduce `ITGLUE_RATE_LIMIT` environment variable (default: 8)
|
|
310
|
-
3. Enable debug logging: `ITGLUE_DEBUG=true`
|
|
257
|
+
## Development
|
|
311
258
|
|
|
312
|
-
###
|
|
259
|
+
### Building from Source
|
|
313
260
|
|
|
314
261
|
```bash
|
|
315
|
-
|
|
316
|
-
|
|
262
|
+
npm install itglue-mcp
|
|
263
|
+
cd node_modules/itglue-mcp
|
|
264
|
+
npm install
|
|
265
|
+
npm run build
|
|
317
266
|
```
|
|
318
267
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
## Performance
|
|
322
|
-
|
|
323
|
-
### Caching Strategy
|
|
268
|
+
To use your local build instead of the npm package:
|
|
324
269
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
### Token Efficiency
|
|
341
|
-
|
|
342
|
-
Progressive disclosure reduces token usage by 90%+:
|
|
343
|
-
- **Tier 1**: Get lightweight summaries (100-200 tokens)
|
|
344
|
-
- **Tier 2**: Scoped queries (200-500 tokens)
|
|
345
|
-
- **Tier 3**: Only fetch full details when needed (500-2000 tokens)
|
|
346
|
-
|
|
347
|
-
## Contributing
|
|
348
|
-
|
|
349
|
-
### Adding New Tools
|
|
350
|
-
|
|
351
|
-
1. Create tool file in `src/tools/`
|
|
352
|
-
2. Define Zod schema for parameters
|
|
353
|
-
3. Implement handler function
|
|
354
|
-
4. Add to `src/index.ts` tool list and routing
|
|
355
|
-
|
|
356
|
-
See `src/tools/organizations.ts` for reference implementation.
|
|
270
|
+
```json
|
|
271
|
+
{
|
|
272
|
+
"mcpServers": {
|
|
273
|
+
"itglue": {
|
|
274
|
+
"command": "node",
|
|
275
|
+
"args": ["/absolute/path/to/itglue-mcp/dist/index.js"],
|
|
276
|
+
"env": {
|
|
277
|
+
"ITGLUE_API_KEY": "your-api-key",
|
|
278
|
+
"ITGLUE_REGION": "US"
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
```
|
|
357
284
|
|
|
358
|
-
###
|
|
285
|
+
### Scripts
|
|
359
286
|
|
|
360
287
|
```bash
|
|
361
|
-
npm
|
|
288
|
+
npm run build # Compile TypeScript
|
|
289
|
+
npm run dev # Watch mode
|
|
290
|
+
npm test # Run test suite
|
|
291
|
+
npm run lint # Lint source files
|
|
362
292
|
```
|
|
363
293
|
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
MIT License - See LICENSE file for details
|
|
294
|
+
### Contributing
|
|
367
295
|
|
|
368
|
-
|
|
296
|
+
1. Create a tool file in `src/tools/`
|
|
297
|
+
2. Define a Zod schema for the parameters
|
|
298
|
+
3. Implement the handler function
|
|
299
|
+
4. Register it in `src/index.ts`
|
|
369
300
|
|
|
370
|
-
|
|
371
|
-
- File an issue on GitHub
|
|
372
|
-
- Contact: Viyu Networks
|
|
301
|
+
See `src/tools/organizations.ts` for a reference implementation.
|
|
373
302
|
|
|
374
|
-
##
|
|
303
|
+
## Links
|
|
375
304
|
|
|
376
305
|
- [ITGlue API Documentation](https://api.itglue.com/developer/)
|
|
377
|
-
- [Model Context Protocol
|
|
378
|
-
- [
|
|
306
|
+
- [Model Context Protocol](https://modelcontextprotocol.io/)
|
|
307
|
+
- [Claude Code](https://docs.anthropic.com/en/docs/claude-code)
|
|
308
|
+
- [npm Package](https://www.npmjs.com/package/itglue-mcp)
|
|
309
|
+
|
|
310
|
+
## License
|
|
311
|
+
|
|
312
|
+
MIT - see [LICENSE](LICENSE)
|
|
379
313
|
|
|
380
314
|
---
|
|
381
315
|
|
|
382
|
-
Built
|
|
316
|
+
Built for Productivity by sully
|