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.
Files changed (37) hide show
  1. package/README.md +201 -267
  2. package/dist/index.js +192 -6
  3. package/dist/index.js.map +1 -1
  4. package/dist/tools/attachments.d.ts +46 -0
  5. package/dist/tools/attachments.d.ts.map +1 -0
  6. package/dist/tools/attachments.js +103 -0
  7. package/dist/tools/attachments.js.map +1 -0
  8. package/dist/tools/configuration-interfaces.d.ts +44 -0
  9. package/dist/tools/configuration-interfaces.d.ts.map +1 -0
  10. package/dist/tools/configuration-interfaces.js +82 -0
  11. package/dist/tools/configuration-interfaces.js.map +1 -0
  12. package/dist/tools/contacts.d.ts +46 -0
  13. package/dist/tools/contacts.d.ts.map +1 -0
  14. package/dist/tools/contacts.js +87 -0
  15. package/dist/tools/contacts.js.map +1 -0
  16. package/dist/tools/locations.d.ts +41 -0
  17. package/dist/tools/locations.d.ts.map +1 -0
  18. package/dist/tools/locations.js +84 -0
  19. package/dist/tools/locations.js.map +1 -0
  20. package/dist/tools/related-items.d.ts +45 -0
  21. package/dist/tools/related-items.d.ts.map +1 -0
  22. package/dist/tools/related-items.js +95 -0
  23. package/dist/tools/related-items.js.map +1 -0
  24. package/dist/types/itglue.d.ts +63 -0
  25. package/dist/types/itglue.d.ts.map +1 -1
  26. package/dist/types/itglue.js.map +1 -1
  27. package/package.json +8 -8
  28. package/skills/account-review/CLAUDE.md +11 -0
  29. package/skills/account-review/SKILL.md +325 -0
  30. package/skills/client-onboard/CLAUDE.md +7 -0
  31. package/skills/client-onboard/SKILL.md +286 -0
  32. package/skills/compliance-audit/CLAUDE.md +7 -0
  33. package/skills/compliance-audit/SKILL.md +255 -0
  34. package/skills/find-password/CLAUDE.md +12 -0
  35. package/skills/find-password/SKILL.md +126 -0
  36. package/skills/incident-response/CLAUDE.md +7 -0
  37. 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
- Model Context Protocol (MCP) server for ITGlue - enables Claude Code to access ITGlue documentation through natural language queries.
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
- ## Overview
6
-
7
- MSPs (Managed Service Providers) use ITGlue as their central documentation platform, storing critical information about 50-200+ client organizations including passwords, server configurations, network diagrams, vendor contacts, and SOPs. This MCP server eliminates context switching between terminal/IDE and ITGlue's web interface.
8
-
9
- **Benefits:**
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
- **Tier 3: Detail Retrieval** - Full data
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
- ### Security Features
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
- ### Performance Features
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
- ## Installation
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
- ### Prerequisites
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
- ### Quick Start (npm)
26
+ ### 1. Get Your ITGlue API Key
57
27
 
58
- ```bash
59
- npm install -g itglue-mcp
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
- ### Configuration
33
+ ### 2. Add to Claude Code
63
34
 
64
- Add the MCP server to your Claude Code configuration (`~/.claude/settings.json`):
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-api-key-here",
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
- **Get your API key:**
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
- **Region options:** `US`, `EU`, or `AU`
54
+ ### 3. Restart Claude Code
88
55
 
89
- ### Development Installation
56
+ Restart Claude Code (or start a new session). You should now have access to all ITGlue tools. Test it:
90
57
 
91
- For local development or contributing:
58
+ ```
59
+ You: "Check ITGlue health"
60
+ ```
92
61
 
93
- ```bash
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
- # Install dependencies
99
- npm install
64
+ ## Installing the Skills
100
65
 
101
- # Build the project
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
- # Link globally for development
105
- npm link
68
+ Install them globally (available in every Claude Code session):
106
69
 
107
- # Configure Claude Code to use local build
108
- # Update ~/.claude/settings.json:
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
- ### Testing Installation
74
+ Or install into a specific project:
124
75
 
125
76
  ```bash
126
- # Test that the server is accessible
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
- ## Usage Examples
80
+ This works on macOS, Linux, and Windows.
133
81
 
134
- ### With Claude Code
82
+ ### Available Skills
135
83
 
136
- Once configured, use natural language to query ITGlue:
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
- User: "Show me all organizations in ITGlue"
140
- Uses itglue_search_organizations
97
+ You: "Run an account review for Contoso and generate an HTML report"
98
+ Activates the Account Review skill
141
99
 
142
- User: "List servers for Acme Corp"
143
- Uses itglue_search_organizations (name="Acme Corp")
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
- User: "Find the admin password for Contoso's firewall"
147
- Uses itglue_search_organizations (name="Contoso")
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
- ### Direct MCP Protocol Testing
107
+ ## Usage Examples
153
108
 
154
- ```bash
155
- # Search for an organization
156
- echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"itglue_search_organizations","arguments":{"name":"Acme"}}}' | node dist/index.js
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
- # List configurations for an organization
159
- echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"itglue_list_configurations","arguments":{"organization_id":"12345"}}}' | node dist/index.js
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
- ## Configuration
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` | Yes | - | API key from ITGlue Settings → API Keys |
169
- | `ITGLUE_REGION` | No | `US` | API region: `US`, `EU`, or `AU` |
170
- | `ITGLUE_CACHE_TTL` | No | `300` | Cache TTL in seconds (5 minutes) |
171
- | `ITGLUE_RATE_LIMIT` | No | `8` | Max requests per second |
172
- | `ITGLUE_DEBUG` | No | `false` | Enable debug logging to stderr |
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 Installations
190
+ ### On-Premise ITGlue
181
191
 
182
- For on-premise ITGlue installations, add the `ITGLUE_BASE_URL` environment variable:
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-api-key",
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
- **Note:** On-premise installations use standard JSON headers instead of JSON:API headers. The server automatically detects and adapts based on the `ITGLUE_BASE_URL` setting.
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
- ## Security Considerations
211
+ ### Password Access Logging
254
212
 
255
- ### Audit Logging
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
- ### Sensitive Data Handling
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
- - ✅ API keys are never logged or exposed in responses
272
- - Password values are redacted from logs
273
- - Sensitive fields (api_key, secret, token) are automatically sanitized
274
- - Passwords are never cached
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
- ### Best Practices
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
- ### "Authentication failed. Please check your ITGLUE_API_KEY"
239
+ The server handles rate limiting and caching automatically so you don't have to think about it:
295
240
 
296
- Your API key is invalid or expired. Generate a new key from ITGlue Settings.
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
- ### "Network error: Unable to connect to ITGlue API"
245
+ ## Troubleshooting
299
246
 
300
- Check:
301
- 1. Internet connection is working
302
- 2. `ITGLUE_REGION` matches your ITGlue account (US/EU/AU)
303
- 3. No firewall blocking access to api.itglue.com
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
- ### Rate Limiting
255
+ For debug output, set `ITGLUE_DEBUG` to `true` in your env config. Logs go to stderr.
306
256
 
307
- If you see "Rate limit exceeded" errors:
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
- ### Enable Debug Logging
259
+ ### Building from Source
313
260
 
314
261
  ```bash
315
- export ITGLUE_DEBUG=true
316
- node dist/index.js
262
+ npm install itglue-mcp
263
+ cd node_modules/itglue-mcp
264
+ npm install
265
+ npm run build
317
266
  ```
318
267
 
319
- Debug messages will appear in stderr.
320
-
321
- ## Performance
322
-
323
- ### Caching Strategy
268
+ To use your local build instead of the npm package:
324
269
 
325
- | Resource Type | TTL | Reason |
326
- |---------------|-----|--------|
327
- | Organizations | 5 minutes | Rarely change |
328
- | Org Types | 10 minutes | Static data |
329
- | Configurations | 1 minute | Change occasionally |
330
- | Documents | 1 minute | Change occasionally |
331
- | Passwords | Never cached | Security requirement |
332
- | Search Results | Never cached | Dynamic queries |
333
-
334
- ### Rate Limiting
335
-
336
- - **ITGlue Limit**: 3000 requests / 5 minutes = 10 req/sec
337
- - **Our Limit**: 8 req/sec (20% safety margin)
338
- - **Algorithm**: Sliding window with queue-based throttling
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
- ### Running Tests
285
+ ### Scripts
359
286
 
360
287
  ```bash
361
- npm test
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
- ## License
365
-
366
- MIT License - See LICENSE file for details
294
+ ### Contributing
367
295
 
368
- ## Support
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
- For issues, questions, or feature requests:
371
- - File an issue on GitHub
372
- - Contact: Viyu Networks
301
+ See `src/tools/organizations.ts` for a reference implementation.
373
302
 
374
- ## Resources
303
+ ## Links
375
304
 
376
305
  - [ITGlue API Documentation](https://api.itglue.com/developer/)
377
- - [Model Context Protocol Specification](https://modelcontextprotocol.io/)
378
- - [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk)
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 with ❤️ by Suleman @ Viyu
316
+ Built for Productivity by sully