Search / io.github.mguttmann/the-real-snipeit-mcp
Snipe-IT (unofficial)
L0· runs locallyUnofficial MCP server for the Snipe-IT REST API: assets, users, licenses, guarded writes.
v0.2.2 · active · repository · website · descriptor JSON · versions
Search / io.github.mguttmann/the-real-snipeit-mcp
L0· runs locallyUnofficial MCP server for the Snipe-IT REST API: assets, users, licenses, guarded writes.
v0.2.2 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"the-real-snipeit-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"SNIPEIT_API_BASE": "${SNIPEIT_API_BASE}",
"SNIPEIT_API_TOKEN": "${SNIPEIT_API_TOKEN}",
"SNIPEIT_CONFIRM_WRITES": "true",
"SNIPEIT_TIMEOUT_MS": "30000",
"SNIPEIT_LOG_LEVEL": "info",
"SNIPEIT_MAX_RESULT_BYTES": "1048576",
"SNIPEIT_CALL_DEADLINE_MS": "0",
"SNIPEIT_REDACT_PII": "false",
"SNIPEIT_REDACT_SECRETS": "false",
"SNIPEIT_READ_ONLY": "false",
"SNIPEIT_REQUIRE_PREVIEW": "false"
}
}
}
}claude mcp add the-real-snipeit-mcp -e "SNIPEIT_API_BASE=${SNIPEIT_API_BASE}" -e "SNIPEIT_API_TOKEN=${SNIPEIT_API_TOKEN}" -e "SNIPEIT_CONFIRM_WRITES=true" -e "SNIPEIT_TIMEOUT_MS=30000" -e "SNIPEIT_LOG_LEVEL=info" -e "SNIPEIT_MAX_RESULT_BYTES=1048576" -e "SNIPEIT_CALL_DEADLINE_MS=0" -e "SNIPEIT_REDACT_PII=false" -e "SNIPEIT_REDACT_SECRETS=false" -e "SNIPEIT_READ_ONLY=false" -e "SNIPEIT_REQUIRE_PREVIEW=false" -- npx -y [email protected][mcp_servers.the-real-snipeit-mcp]
command = "npx"
args = ["-y", "[email protected]"]
env = { "SNIPEIT_API_BASE" = "${SNIPEIT_API_BASE}", "SNIPEIT_API_TOKEN" = "${SNIPEIT_API_TOKEN}", "SNIPEIT_CONFIRM_WRITES" = "true", "SNIPEIT_TIMEOUT_MS" = "30000", "SNIPEIT_LOG_LEVEL" = "info", "SNIPEIT_MAX_RESULT_BYTES" = "1048576", "SNIPEIT_CALL_DEADLINE_MS" = "0", "SNIPEIT_REDACT_PII" = "false", "SNIPEIT_REDACT_SECRETS" = "false", "SNIPEIT_READ_ONLY" = "false", "SNIPEIT_REQUIRE_PREVIEW" = "false" }
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"the-real-snipeit-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"[email protected]"
],
"enabled": true,
"environment": {
"SNIPEIT_API_BASE": "{env:SNIPEIT_API_BASE}",
"SNIPEIT_API_TOKEN": "{env:SNIPEIT_API_TOKEN}",
"SNIPEIT_CONFIRM_WRITES": "true",
"SNIPEIT_TIMEOUT_MS": "30000",
"SNIPEIT_LOG_LEVEL": "info",
"SNIPEIT_MAX_RESULT_BYTES": "1048576",
"SNIPEIT_CALL_DEADLINE_MS": "0",
"SNIPEIT_REDACT_PII": "false",
"SNIPEIT_REDACT_SECRETS": "false",
"SNIPEIT_READ_ONLY": "false",
"SNIPEIT_REQUIRE_PREVIEW": "false"
}
}
}
}{
"mcpServers": {
"the-real-snipeit-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"SNIPEIT_API_BASE": "${SNIPEIT_API_BASE}",
"SNIPEIT_API_TOKEN": "${SNIPEIT_API_TOKEN}",
"SNIPEIT_CONFIRM_WRITES": "true",
"SNIPEIT_TIMEOUT_MS": "30000",
"SNIPEIT_LOG_LEVEL": "info",
"SNIPEIT_MAX_RESULT_BYTES": "1048576",
"SNIPEIT_CALL_DEADLINE_MS": "0",
"SNIPEIT_REDACT_PII": "false",
"SNIPEIT_REDACT_SECRETS": "false",
"SNIPEIT_READ_ONLY": "false",
"SNIPEIT_REQUIRE_PREVIEW": "false"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=the-real-snipeit-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsInRoZS1yZWFsLXNuaXBlaXQtbWNwQDAuMi4yIl0sImVudiI6eyJTTklQRUlUX0FQSV9CQVNFIjoiJHtTTklQRUlUX0FQSV9CQVNFfSIsIlNOSVBFSVRfQVBJX1RPS0VOIjoiJHtTTklQRUlUX0FQSV9UT0tFTn0iLCJTTklQRUlUX0NPTkZJUk1fV1JJVEVTIjoidHJ1ZSIsIlNOSVBFSVRfVElNRU9VVF9NUyI6IjMwMDAwIiwiU05JUEVJVF9MT0dfTEVWRUwiOiJpbmZvIiwiU05JUEVJVF9NQVhfUkVTVUxUX0JZVEVTIjoiMTA0ODU3NiIsIlNOSVBFSVRfQ0FMTF9ERUFETElORV9NUyI6IjAiLCJTTklQRUlUX1JFREFDVF9QSUkiOiJmYWxzZSIsIlNOSVBFSVRfUkVEQUNUX1NFQ1JFVFMiOiJmYWxzZSIsIlNOSVBFSVRfUkVBRF9PTkxZIjoiZmFsc2UiLCJTTklQRUlUX1JFUVVJUkVfUFJFVklFVyI6ImZhbHNlIn19"
}{
"servers": {
"the-real-snipeit-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"SNIPEIT_API_BASE": "${SNIPEIT_API_BASE}",
"SNIPEIT_API_TOKEN": "${SNIPEIT_API_TOKEN}",
"SNIPEIT_CONFIRM_WRITES": "true",
"SNIPEIT_TIMEOUT_MS": "30000",
"SNIPEIT_LOG_LEVEL": "info",
"SNIPEIT_MAX_RESULT_BYTES": "1048576",
"SNIPEIT_CALL_DEADLINE_MS": "0",
"SNIPEIT_REDACT_PII": "false",
"SNIPEIT_REDACT_SECRETS": "false",
"SNIPEIT_READ_ONLY": "false",
"SNIPEIT_REQUIRE_PREVIEW": "false"
}
}
}
}{
"mcpServers": {
"the-real-snipeit-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"SNIPEIT_API_BASE": "${SNIPEIT_API_BASE}",
"SNIPEIT_API_TOKEN": "${SNIPEIT_API_TOKEN}",
"SNIPEIT_CONFIRM_WRITES": "true",
"SNIPEIT_TIMEOUT_MS": "30000",
"SNIPEIT_LOG_LEVEL": "info",
"SNIPEIT_MAX_RESULT_BYTES": "1048576",
"SNIPEIT_CALL_DEADLINE_MS": "0",
"SNIPEIT_REDACT_PII": "false",
"SNIPEIT_REDACT_SECRETS": "false",
"SNIPEIT_READ_ONLY": "false",
"SNIPEIT_REQUIRE_PREVIEW": "false"
}
}
}
}extensions:
"the-real-snipeit-mcp":
enabled: true
name: "the-real-snipeit-mcp"
type: stdio
cmd: "npx"
args:
- "-y"
- "[email protected]"
envs:
"SNIPEIT_API_BASE": "${SNIPEIT_API_BASE}"
"SNIPEIT_API_TOKEN": "${SNIPEIT_API_TOKEN}"
"SNIPEIT_CONFIRM_WRITES": "true"
"SNIPEIT_TIMEOUT_MS": "30000"
"SNIPEIT_LOG_LEVEL": "info"
"SNIPEIT_MAX_RESULT_BYTES": "1048576"
"SNIPEIT_CALL_DEADLINE_MS": "0"
"SNIPEIT_REDACT_PII": "false"
"SNIPEIT_REDACT_SECRETS": "false"
"SNIPEIT_READ_ONLY": "false"
"SNIPEIT_REQUIRE_PREVIEW": "false"
timeout: 300
Placeholders to fill from your own secret store: ${SNIPEIT_API_TOKEN}. The registry never accepts secret values.
This is a local package: the command runs on your machine.
Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.
protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)auth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dumptool list unknown (behind auth, not probed, or empty)stability.changes, stability.rug_pulltool list unknownNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +website ~liveness-unmeasured +updated-11d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
[email protected] npmthis version is not known to the dependency resolver
Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
the-real-snipeit-mcp | npm | 0.2.2 | npx | SNIPEIT_API_TOKEN |
No tools observed. Local packages are never executed by the registry.
Schemas: list_tools.
{
"name": "io.github.mguttmann/the-real-snipeit-mcp",
"title": "Snipe-IT (unofficial)",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"version": "0.2.2",
"packages": [
{
"version": "0.2.2",
"transport": {
"type": "stdio"
},
"identifier": "the-real-snipeit-mcp",
"runtimeHint": "npx",
"registryType": "npm",
"environmentVariables": [
{
"name": "SNIPEIT_API_BASE",
"format": "string",
"isRequired": true,
"description": "Snipe-IT API base URL including /api/v1, for example https://snipe-it.example.com/api/v1. Use https."
},
{
"name": "SNIPEIT_API_TOKEN",
"format": "string",
"isSecret": true,
"isRequired": true,
"description": "Snipe-IT Personal API Token (JWT), from Snipe-IT > User > Manage API Keys. It acts with the rights of its user."
},
{
"name": "SNIPEIT_CONFIRM_WRITES",
"format": "boolean",
"default": "true",
"description": "Write guard, on by default: write tools return a preview until called again with confirm: \"YES\". Only false, 0, no or off disable it."
},
{
"name": "SNIPEIT_TIMEOUT_MS",
"format": "number",
"default": "30000",
"description": "Timeout in ms per HTTP attempt, including the body read (positive integer)."
},
{
"name": "SNIPEIT_LOG_LEVEL",
"format": "string",
"choices": [
"debug",
"info",
"warn",
"error"
],
"default": "info",
"description": "Log level on stderr: debug, info, warn or error."
},
{
"name": "SNIPEIT_MAX_RESULT_BYTES",
"format": "number",
"default": "1048576",
"description": "Cap for one tool result in bytes (serialized JSON), minimum 65536. Larger results come back shortened with truncated: true."
},
{
"name": "SNIPEIT_CALL_DEADLINE_MS",
"format": "number",
"default": "0",
"description": "Overall deadline for one tool call in ms, across retries and all: true pagination. 0 means none."
},
{
"name": "SNIPEIT_REDACT_PII",
"format": "boolean",
"default": "false",
"description": "true masks personal data (email, username, names of people, phone, address, employee number) in tool results."
},
{
"name": "SNIPEIT_REDACT_SECRETS",
"format": "boolean",
"default": "false",
"description": "true masks secrets (password/secret/token/api_key fields, secret custom field values) in tool results with (redacted)."
},
{
"name": "SNIPEIT_READ_ONLY",
"format": "boolean",
"default": "false",
"description": "true refuses every write at runtime; all tools stay registered and reads work."
},
{
"name": "SNIPEIT_REQUIRE_PREVIEW",
"format": "boolean",
"default": "false",
"description": "true (with the write guard on): confirm: \"YES\" executes only after a preview of the same request."
}
]
}
],
"repository": {
"url": "https://github.com/mguttmann/the-real-snipeit-mcp",
"source": "github"
},
"websiteUrl": "https://github.com/mguttmann/the-real-snipeit-mcp#readme",
"description": "Unofficial MCP server for the Snipe-IT REST API: assets, users, licenses, guarded writes."
}