Snipeit MCP
MCP server for Snipe-IT asset management. Enables AI assistants to manage assets, consumables, accessories, licenses, and system configuration via 19 comprehensive tools.
Install / Use
/learn @jameshgordy/Snipeit MCPQuality Score
Category
Development & EngineeringSupported Platforms
README
Snipe-IT MCP Server
A comprehensive Model Context Protocol (MCP) server for managing Snipe-IT inventory systems. This server enables AI assistants to perform full CRUD operations across your entire Snipe-IT instance with 39 tools covering all major API endpoints.
Features
Asset Management
- Full CRUD Operations: Create, read, update, delete, and search assets with enhanced filtering
- Barcode/Serial Lookup: Direct bytag/byserial API endpoints for reliable barcode scanning
- Asset Operations: Checkout, checkin, audit, and restore assets
- Checkout Requests: Submit and cancel checkout requests for requestable assets
- File Attachments: Upload, download, list, and delete asset files
- Label Generation: Generate printable PDF labels
- Maintenance Tracking: Create and manage maintenance records
- License Associations: View licenses assigned to assets
Inventory Tracking
- Consumables: Complete management of consumable items
- Components: Manage components with checkout/checkin to assets
- Accessories: Track accessories with checkout/checkin to users
Users & Organization
- Users: Full user management including restore and current user endpoint
- User Assets: View all items checked out to a user (assets, accessories, licenses, consumables, EULAs)
- Two-Factor Auth: Reset user 2FA (admin function)
- Companies: Multi-tenant company management
- Departments: Organizational department management
- Groups: Permission group management
System Configuration
- Categories: Manage categories for all item types
- Manufacturers: Track manufacturer information
- Models: Define asset models with depreciation, custom fields, and file attachments
- Status Labels: Configure asset statuses with asset listing
- Locations: Manage physical locations with hierarchy, asset/user queries
- Suppliers: Track supplier information
- Depreciations: Define depreciation schedules
Custom Fields
- Fields: Create and manage custom field definitions
- Fieldsets: Group custom fields for assignment to models with field reordering
- Field Association: Associate/disassociate fields with fieldsets
Licensing
- License Management: Full CRUD for software licenses
- Seat Assignments: Checkout/checkin license seats
- License Files: Manage license documentation
Reporting & Auditing
- Activity Logs: Query all activity history
- Item Activity: Get activity for specific items
- Status Summary: Asset counts grouped by status label
- Audit Tracking: Track assets due/overdue for audit
Import & System Administration
- CSV Imports: Full import workflow (upload, map columns, process)
- System Info: Get Snipe-IT version information
- Backups: List and download database backups
- LDAP Operations: LDAP sync and connection testing
Requirements
- Python 3.11+
- UV package manager
- Snipe-IT instance with API access
- API token with appropriate permissions
Installation
1. Clone the repository
git clone https://github.com/jameshgordy/snipeit-mcp.git
cd snipeit-mcp
2. Install dependencies
uv sync
3. Configure environment variables
Create a .env file:
SNIPEIT_URL=https://your-snipeit-instance.com
SNIPEIT_TOKEN=your-api-token-here
SNIPEIT_ALLOWED_TOOLS=manage_assets,system_info # Optional: restrict exposed tools
| Variable | Required | Description |
|----------|----------|-------------|
| SNIPEIT_URL | Yes | Your Snipe-IT instance URL |
| SNIPEIT_TOKEN | Yes | API token for authentication |
| SNIPEIT_ALLOWED_TOOLS | No | Comma-separated list of tool names to expose. If unset, all tools are available. |
Getting an API Token:
- Log in to your Snipe-IT instance
- Navigate to your user profile (top right menu)
- Go to "Manage API Keys" or "Personal Access Tokens"
- Generate a new token with required permissions
MCP Client Configuration
Claude Desktop / Claude Code
Add to your MCP configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Option A: Install directly from GitHub (no clone required)
{
"mcpServers": {
"snipeit": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/jameshgordy/snipeit-mcp",
"snipeit-mcp"
],
"env": {
"SNIPEIT_URL": "https://your-snipeit-instance.com",
"SNIPEIT_TOKEN": "your-api-token-here"
}
}
}
}
Option B: Run from a local clone
{
"mcpServers": {
"snipeit": {
"command": "uv",
"args": [
"--directory",
"/path/to/snipeit-mcp",
"run",
"python",
"server.py"
],
"env": {
"SNIPEIT_URL": "https://your-snipeit-instance.com",
"SNIPEIT_TOKEN": "your-api-token-here"
}
}
}
}
Cursor
Add to your Cursor MCP settings with the same configuration format as above.
Available Tools (39 Total)
Asset Tools (7)
| Tool | Description |
|------|-------------|
| manage_assets | CRUD operations with bytag/byserial lookup and advanced filtering |
| asset_operations | State operations (checkout, checkin, audit, restore) |
| asset_files | File attachments (upload, list, download, delete) |
| asset_labels | Generate printable PDF labels |
| asset_maintenance | Create maintenance records |
| asset_licenses | View licenses assigned to an asset |
| asset_requests | Submit/cancel checkout requests for requestable assets |
Inventory Tools (5)
| Tool | Description |
|------|-------------|
| manage_consumables | CRUD operations for consumables |
| manage_components | CRUD operations for components |
| component_operations | Checkout/checkin components to assets |
| manage_accessories | CRUD operations for accessories |
| accessory_operations | Checkout/checkin accessories to users |
User & Organization Tools (6)
| Tool | Description |
|------|-------------|
| manage_users | CRUD operations for users (+ restore, me) |
| user_assets | Get items checked out to a user (assets, accessories, licenses, consumables, eulas) |
| user_two_factor | Reset user two-factor authentication |
| manage_companies | CRUD operations for companies |
| manage_departments | CRUD operations for departments |
| manage_groups | CRUD operations for permission groups |
Configuration Tools (7)
| Tool | Description |
|------|-------------|
| manage_categories | Manage categories for all item types |
| manage_manufacturers | Manage manufacturer information |
| manage_models | Manage asset models (+ list assets by model) |
| manage_status_labels | Manage status labels (+ list assets by status) |
| manage_locations | Manage locations (+ list assets/users by location) |
| manage_suppliers | Manage supplier information |
| manage_depreciations | Manage depreciation schedules |
Custom Field Tools (2)
| Tool | Description |
|------|-------------|
| manage_fields | CRUD + associate/disassociate fields with fieldsets |
| manage_fieldsets | CRUD operations for fieldsets (+ field listing, reorder) |
License Tools (3)
| Tool | Description |
|------|-------------|
| manage_licenses | CRUD operations for licenses |
| license_seats | Manage license seat assignments |
| license_files | Manage license file attachments |
Reporting & Audit Tools (3)
| Tool | Description |
|------|-------------|
| activity_reports | Query activity logs and item history |
| status_summary | Get asset counts grouped by status label |
| audit_tracking | Track assets due/overdue for audit |
Import Tools (1)
| Tool | Description |
|------|-------------|
| manage_imports | CSV import workflow (upload, map columns, process) |
System Administration Tools (4)
| Tool | Description |
|------|-------------|
| system_info | Get Snipe-IT version information |
| manage_backups | List and download database backups |
| ldap_operations | LDAP sync and connection testing |
| model_files | Manage file attachments for asset models |
Usage Examples
Create an Asset
{
"action": "create",
"asset_data": {
"status_id": 1,
"model_id": 5,
"asset_tag": "LAP-001",
"name": "MacBook Pro 14",
"serial": "C02X12345"
}
}
Create a User
{
"action": "create",
"user_data": {
"first_name": "John",
"last_name": "Doe",
"username": "jdoe",
"email": "jdoe@example.com",
"password": "securepassword",
"password_confirmation": "securepassword",
"department_id": 1
}
}
Get Items Checked Out to User
{
"user_id": 123,
"asset_type": "all"
}
Checkout Component to Asset
{
"action": "checkout",
"component_id": 45,
"checkout_data": {
"assigned_to": 123,
"assigned_qty": 2,
"note": "RAM upgrade"
}
}
Query Activity Logs
{
"action": "list",
"action_type": "checkout",
"limit": 50
}
Create Custom Field
{
"action": "create",
"field_data": {
"name": "MAC Address",
"element": "text",
"format": "MAC"
}
}
Associate Field with Fieldset
{
"action": "associate",
"field_id": 5,
"fieldset_id": 1,
"required": true,
"order": 1
}
Response Format
All tools return structured JSON responses:
Success:
{
"success": true,
"action": "create",
"asset": {
"id": 123,
"asset_tag": "LAP-001",
"name": "MacBook Pro 14"
}
}
Error:
{
"success": false,
"error": "Asset not found: Asset with tag LAP-999 not found."
}
Architecture
Built with:
- FastMCP: Python framework for MCP server
