Snipe-IT MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | Bind address (default 127.0.0.1; use 0.0.0.0 behind a reverse proxy). | |
| MCP_PORT | No | TCP port for the HTTP server. | |
| LOG_LEVEL | No | Logging level (DEBUG/INFO/WARNING/ERROR/CRITICAL). | |
| SNIPEIT_URL | No | Your Snipe-IT instance URL. | |
| MCP_TRANSPORT | No | Transport mode. Must be 'http' for OAuth mode. | |
| SNIPEIT_TOKEN | No | API token for authentication (API key mode). | |
| SNIPEIT_MCP_BASE_URL | No | Public URL where this MCP server is reachable (used in the OAuth callback). | |
| SNIPEIT_ALLOWED_TOOLS | No | Comma-separated list of tool names to expose. If unset, all tools are available. | |
| SNIPEIT_OAUTH_CLIENT_ID | No | OAuth client ID from /admin/oauth. | |
| SNIPEIT_MCP_REDIRECT_PATH | No | Override OAuth callback path (default /auth/callback). | |
| SNIPEIT_OAUTH_CLIENT_SECRET | No | OAuth client secret from /admin/oauth. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| manage_assetsA | Manage Snipe-IT assets with CRUD operations. This tool handles all basic asset operations:
Use extra_fields for fields not in AssetData: asset_eol_date, custom fields (snipeit*), etc. For both create and update, extra_fields are validated against the model's fieldset before sending. Invalid field names will be rejected with a list of available fields. Note: list action returns full asset objects. With high limits this can produce large responses. Use pagination (limit/offset) to control response size. Sortable fields for list: id, name, asset_tag, serial, model, model_number, last_checkout, category, manufacturer, notes, expected_checkin, order_number, companyName, location, image, status_label, assigned_to, created_at, purchase_date, purchase_cost Returns: dict: Result of the operation including success status and data |
| asset_operationsA | Perform state operations on assets (checkout, checkin, audit, restore). Operations:
Returns: dict: Result of the operation including success status and data |
| asset_filesA | Manage file attachments for assets. Operations:
Returns: dict: Result of the operation including success status and data |
| asset_labelsA | Generate printable labels for assets. Provide either asset_ids or asset_tags to generate labels for specific assets. The labels will be saved as a PDF file to the specified save_path. Returns: dict: Result with path to generated labels PDF |
| asset_maintenanceB | Manage maintenance records for assets. Currently supports:
Returns: dict: Result of the operation including success status and data |
| asset_licensesA | Get all licenses checked out to an asset. Returns: dict: List of licenses associated with the asset |
| asset_requestsA | Manage asset checkout requests. Allows users to request checkout of requestable assets. Assets must have the 'requestable' flag set (either on the asset or its model). Operations:
Note: Viewing the request queue and approving/denying requests is only available through the web UI - there are no API endpoints for these administrative functions. Returns: dict: Result of the operation including success status |
| manage_consumablesA | Manage Snipe-IT consumables with CRUD operations. This tool handles all basic consumable operations:
Returns: dict: Result of the operation including success status and data |
| manage_accessoriesA | Manage Snipe-IT accessories with CRUD operations. Accessories are quantity-based items (cables, adapters, peripherals) that can be checked out to users. Unlike assets, accessories are tracked by quantity rather than individually. Operations:
Returns: dict: Result of the operation including success status and data |
| accessory_operationsA | Perform checkout/checkin operations on accessories. Accessories can be checked out to a user, asset, or location. Each checkout decrements the available quantity, and checkin increments it back. Operations:
Returns: dict: Result of the operation including success status and data |
| manage_componentsA | Manage Snipe-IT components with CRUD operations. Components are items that can be checked out to assets (not users). Examples: RAM, hard drives, CPUs, etc. Actions:
Returns: dict: Result of the operation including success status and data |
| component_operationsA | Perform checkout/checkin operations on components. Components can be checked out to assets (not users). Each checkout decrements the available quantity. Operations:
Returns: dict: Result of the operation including success status and data |
| manage_categoriesA | Manage Snipe-IT categories with CRUD operations. Categories organize assets, accessories, consumables, components, and licenses. Operations:
Returns: dict: Result of the operation including success status and data |
| manage_manufacturersA | Manage Snipe-IT manufacturers with CRUD operations. Manufacturers represent the companies that produce assets. Operations:
Returns: dict: Result of the operation including success status and data |
| manage_modelsA | Manage Snipe-IT asset models with CRUD operations. Models define types of assets (e.g., 'MacBook Pro 14"', 'Dell XPS 15'). Operations:
Returns: dict: Result of the operation including success status and data |
| manage_status_labelsA | Manage Snipe-IT status labels with CRUD operations. Status labels define the state of assets (deployable, pending, archived, etc.). Operations:
Returns: dict: Result of the operation including success status and data |
| manage_locationsB | Manage Snipe-IT locations with CRUD operations. Locations represent physical places where assets are stored or deployed. Operations:
Returns: dict: Result of the operation including success status and data |
| manage_suppliersA | Manage Snipe-IT suppliers with CRUD operations. Suppliers are vendors from whom assets and consumables are purchased. Operations:
Returns: dict: Result of the operation including success status and data |
| manage_depreciationsA | Manage Snipe-IT depreciations with CRUD operations. Depreciations define how assets lose value over time (e.g., 3-year straight-line). Operations:
Returns: dict: Result of the operation including success status and data |
| model_filesA | Manage file attachments for asset models. Models can have attached files such as documentation, manuals, datasheets, or images that apply to all assets of that model. Operations:
Returns: dict: Result of the operation including success status and data |
| manage_licensesA | Manage Snipe-IT licenses with CRUD operations. Licenses track software licenses with seat-based allocation. Operations:
Returns: dict: Result of the operation including success status and data |
| license_seatsA | Manage license seat checkouts and checkins. License seats can be assigned to users or assets. Operations:
Returns: dict: Result of the operation including success status and data |
| license_filesA | Manage file attachments for licenses. Operations:
Returns: dict: Result of the operation including success status and data |
| manage_usersA | Manage Snipe-IT users with CRUD operations. This tool handles all user operations:
Returns: dict: Result of the operation including success status and data |
| user_assetsA | Get items checked out to a user. Retrieves assets, accessories, licenses, and/or consumables that are currently checked out to the specified user. Also supports retrieving pending EULA acceptances. Options:
Note: The eulas option returns items requiring user acceptance via web portal. This helps identify users with pending acceptances for follow-up. Returns: dict: Items checked out to the user |
| manage_companiesA | Manage Snipe-IT companies with CRUD operations. Companies allow you to segment your assets and users by organization. Useful for multi-tenant installations or tracking assets by subsidiary. Actions:
Returns: dict: Result of the operation including success status and data |
| manage_departmentsA | Manage Snipe-IT departments with CRUD operations. Departments are organizational units within a company that can be assigned to users. Actions:
Returns: dict: Result of the operation including success status and data |
| manage_groupsA | Manage Snipe-IT permission groups with CRUD operations. Groups are used to manage permissions for multiple users at once. Users can belong to multiple groups, and permissions are cumulative. Actions:
Returns: dict: Result of the operation including success status and data |
| user_two_factorA | Manage user two-factor authentication. Administrative functions for managing user 2FA settings. Operations:
Note: This is an administrative function that affects user security. Returns: dict: Result of the operation |
| manage_fieldsA | Manage Snipe-IT custom fields with CRUD operations. Custom fields allow you to add additional data fields to assets beyond the built-in fields. Fields must be associated with fieldsets to be used. Actions:
Returns: dict: Result of the operation including success status and data |
| manage_fieldsetsA | Manage Snipe-IT fieldsets with CRUD operations. Fieldsets are collections of custom fields that can be assigned to asset models. Each model can have one fieldset, and all assets of that model will have the custom fields defined in the fieldset. Actions:
Returns: dict: Result of the operation including success status and data |
| activity_reportsA | Query Snipe-IT activity logs and reports. Provides access to the activity log which tracks all actions performed in Snipe-IT including checkouts, checkins, updates, and more. Actions:
Returns: dict: Activity records matching the query |
| status_summaryA | Get asset counts grouped by status label. Returns a summary of how many assets are in each status, useful for dashboard displays and reporting. Returns: dict: Asset counts by status label |
| audit_trackingA | Track asset audit status for compliance. Snipe-IT tracks when assets were last audited and calculates when they're due for re-audit based on the configured threshold. Operations:
The audit threshold is configured in Admin Settings → Notifications and determines the lookahead window for "due" assets. Returns: dict: Audit status with asset details |
| manage_importsA | Manage CSV import operations for bulk data import. The import workflow is: upload → update mappings → process Operations:
Common field mappings for assets:
Returns: dict: Result of the operation including success status and data |
| system_infoA | Get Snipe-IT system information. Returns version and installation details. Useful for compatibility checking and deployment verification. Returns: dict: System version information |
| manage_backupsA | Manage Snipe-IT database backups. Operations:
Note: Backup creation is triggered via web UI or CLI, not available via API. Returns: dict: Backup list or download result |
| ldap_operationsA | Manage LDAP synchronization. Operations:
Note: LDAP must be configured in Snipe-IT settings before use. Previously required CLI (php artisan snipeit:ldap-sync) or web UI. Returns: dict: Sync results or connection test status |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jameshgordy/snipeit-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server