IT Glue MCP Server
# IT Glue MCP Server
A Model Context Protocol (MCP) server for IT Glue API integration. Enables LLMs to interact with IT Glue documentation including organizations, configurations, passwords, contacts, flexible assets, and more.
## Features
- **Organizations**: List, get, create, update organizations
- **Configurations**: Manage IT assets (servers, workstations, network devices)
- **Passwords**: Credential management (with optional password access)
- **Contacts**: Manage people associated with organizations
- **Flexible Assets**: Custom documentation types with dynamic fields
- **Locations**: Physical addresses for organizations
- **Domains**: Domain registration tracking
- **Expirations**: Track warranties, certificates, and renewals
## Installation
```bash
npm install
npm run build
```
## Configuration
### Environment Variables
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `ITGLUE_API_KEY` | Yes | - | Your IT Glue API key |
| `ITGLUE_REGION` | No | `us` | API region: `us`, `eu`, or `au` |
### Getting an API Key
1. Log into IT Glue as an Administrator
2. Go to **Account > Settings > API Keys**
3. Click **+ Custom API Key**
4. Give it a name and optionally enable **Password Access**
5. Copy the generated key
**Note**: API keys expire after 90 days of inactivity.
### Password Access
The IT Glue API has a separate permission for password access. If your API key doesn't have this permission:
- You can still list and search passwords
- You can create and update passwords
- You **cannot** retrieve actual password values
Use the `itglue_check_password_access` tool to verify your access level.
## Usage with Claude Desktop
Add to your Claude Desktop configuration (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"itglue": {
"command": "node",
"args": ["C:/Users/Dan/GitHub/itglue-mcp-server/dist/index.js"],
"env": {
"ITGLUE_API_KEY": "ITG.your-api-key-here"
}
}
}
}
```
## Available Tools
### Organizations
- `itglue_list_organizations` - List organizations with filtering
- `itglue_get_organization` - Get organization by ID
- `itglue_create_organization` - Create new organization
- `itglue_update_organization` - Update existing organization
### Configurations
- `itglue_list_configurations` - List configurations (devices/assets)
- `itglue_get_configuration` - Get configuration by ID
- `itglue_create_configuration` - Create new configuration
- `itglue_update_configuration` - Update existing configuration
### Passwords
- `itglue_list_passwords` - List passwords
- `itglue_get_password` - Get password by ID (includes value if permitted)
- `itglue_create_password` - Create new password entry
- `itglue_update_password` - Update existing password
- `itglue_check_password_access` - Check if API key has password access
### Contacts
- `itglue_list_contacts` - List contacts
- `itglue_get_contact` - Get contact by ID
- `itglue_create_contact` - Create new contact
- `itglue_update_contact` - Update existing contact
### Flexible Assets
- `itglue_list_flexible_assets` - List flexible assets
- `itglue_get_flexible_asset` - Get flexible asset by ID
- `itglue_create_flexible_asset` - Create new flexible asset
- `itglue_update_flexible_asset` - Update existing flexible asset
- `itglue_list_flexible_asset_types` - List all flexible asset types
- `itglue_get_flexible_asset_type` - Get flexible asset type with fields
- `itglue_list_flexible_asset_fields` - List fields for a type
### Locations
- `itglue_list_locations` - List locations
- `itglue_get_location` - Get location by ID
- `itglue_create_location` - Create new location
- `itglue_update_location` - Update existing location
### Domains
- `itglue_list_domains` - List domains
- `itglue_get_domain` - Get domain by ID
### Expirations
- `itglue_list_expirations` - List upcoming expirations
## Response Formats
All tools support two response formats via the `response_format` parameter:
- `markdown` (default) - Human-readable formatted output
- `json` - Structured JSON for programmatic use
## Pagination
List endpoints support pagination:
- `page` - Page number (1-indexed)
- `page_size` - Items per page (max 1000, default 50)
Response includes pagination metadata:
- `total_count` - Total items available
- `has_more` - Whether more pages exist
- `next_page` - Next page number (if available)
## Rate Limits
IT Glue allows 3000 requests per 5-minute window. The server will return a clear error message if you hit the rate limit.
## API Regions
IT Glue has separate API endpoints by region:
| Region | Base URL |
|--------|----------|
| US (default) | `https://api.itglue.com` |
| EU | `https://api.eu.itglue.com` |
| Australia | `https://api.au.itglue.com` |
Set the `ITGLUE_REGION` environment variable to match your account's region.
## Development
```bash
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run in development mode with auto-reload
npm run dev
# Clean build artifacts
npm run clean
```
## License
MIT
TDQS
Scored across 31 tools
Each tool has a clearly distinct purpose targeting specific IT Glue resources and operations. The naming pattern (resource + action) makes it easy to distinguish between tools, with no apparent overlap or ambiguity in functionality.
All tools follow a consistent verb_noun pattern with 'itglue_' prefix, using snake_case throughout. The naming convention is perfectly uniform across all 31 tools, making them predictable and easy to understand.
With 31 tools, the count is on the higher side but reasonable for a comprehensive IT documentation platform. The tools cover multiple resource types (organizations, configurations, contacts, passwords, etc.) with full CRUD operations, making the count appropriate for the domain scope.
The tool set provides complete CRUD coverage for all major IT Glue resources (organizations, configurations, contacts, passwords, locations, domains, flexible assets). It includes both management operations and utility tools like checking password access and listing expirations, creating a comprehensive surface for IT documentation workflows.