addrbookFor publishers
← The evidence ledger

Evidence row 261179

Observed , by sync.mcp_registry/1.

Kind
listing
About
source_record mcp_registry:io.github.mhajder/glpi-mcp
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
86083d6962f08c4c3b8b79ca74d75337b4b2fef8a5a52df71a3aeaa7dbea2d69
Leaf
0xb0deadebca207f339e4fd10a6ecba06af5df5efb4d8629e0583b05fddeb4e475

What was observed

{
  "endpoints": [
    [
      "web",
      "https://github.com/mhajder/glpi-mcp"
    ]
  ],
  "name": "GLPI MCP",
  "owner_address": null,
  "raw": {
    "_meta": {
      "io.modelcontextprotocol.registry/official": {
        "isLatest": true,
        "publishedAt": "2026-10-26T16:27:15.138051Z",
        "status": "active",
        "statusChangedAt": "2026-10-26T16:27:15.138051Z",
        "updatedAt": "2026-10-26T16:27:15.138051Z"
      }
    },
    "server": {
      "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
      "description": "MCP server for GLPI IT service management (tickets, assets, users, knowledge base)",
      "name": "io.github.mhajder/glpi-mcp",
      "packages": [
        {
          "environmentVariables": [
            {
              "description": "GLPI root URL without /api.php (e.g., https://glpi.example.com); needs GLPI 11.0.6+ or 12",
              "isRequired": true,
              "name": "GLPI_URL"
            },
            {
              "description": "OAuth client ID from GLPI Setup > OAuth clients",
              "isRequired": true,
              "name": "GLPI_CLIENT_ID"
            },
            {
              "description": "OAuth client secret from GLPI Setup > OAuth clients",
              "isRequired": true,
              "isSecret": true,
              "name": "GLPI_CLIENT_SECRET"
            },
            {
              "description": "GLPI user the tools act as (OAuth password grant)",
              "isRequired": true,
              "name": "GLPI_USERNAME"
            },
            {
              "description": "Password of the GLPI user",
              "isRequired": true,
              "isSecret": true,
              "name": "GLPI_PASSWORD"
            },
            {
              "default": "api user",
              "description": "OAuth scopes to request, space- or comma-separated (add graphql for GraphQL)",
              "name": "GLPI_SCOPES"
            },
            {
              "default": "auto",
              "description": "High-Level API version: auto, 2.3 or 3.0",
              "name": "GLPI_API_VERSION"
            },
            {
              "description": "Entity ID to work in (GLPI-Entity header)",
              "name": "GLPI_ENTITY"
            },
            {
              "default": "false",
              "description": "Include sub-entities of GLPI_ENTITY",
              "name": "GLPI_ENTITY_RECURSIVE"
            },
            {
              "description": "Profile ID to work with (GLPI-Profile header)",
              "name": "GLPI_PROFILE"
            },
            {
              "default": "true",
              "description": "Verify SSL certificates",
              "name": "GLPI_VERIFY_SSL"
            },
            {
              "default": "30",
              "description": "Total seconds allowed for one request, retries included",
              "name": "GLPI_TIMEOUT"
            },
            {
              "default": "false",
              "description": "Enable read-only mode to restrict write operations",
              "name": "READ_ONLY_MODE"
            },
            {
              "default": "false",
              "description": "Write tools return the request they would send instead of changing GLPI",
              "name": "DRY_RUN_MODE"
            },
            {
              "description": "Comma-separated list of tags to disable tools for",
              "name": "DISABLED_TAGS"
            },
            {
              "description": "Maximum size of a tool response in bytes (empty = unlimited)",
              "name": "RESPONSE_MAX_SIZE"
            },
            {
              "default": "INFO",
              "description": "Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)",
              "name": "LOG_LEVEL"
            },
            {
              "default": "false",
              "description": "Enable rate limiting",
              "name": "RATE_LIMIT_ENABLED"
            },
            {
              "default": "60",
              "description": "Maximum requests per rate limit window",
              "name": "RATE_LIMIT_MAX_REQUESTS"
            },
            {
              "default": "1",
              "description": "Rate limit window in minutes",
              "name": "RATE_LIMIT_WINDOW_MINUTES"
            },
            {
              "default": "false",
              "description": "Enable FastMCP tool search transform",
              "name": "TOOL_SEARCH_ENABLED"
            },
            {
              "default": "bm25",
              "description": "Tool search strategy (bm25 or regex)",
              "name": "TOOL_SEARCH_STRATEGY"
            },
            {
              "default": "5",
              "description": "Maximum tool search results returned by search_tools",
              "name": "TOOL_SEARCH_MAX_RESULTS"
            }
          ],
          "identifier": "glpi-mcp-server",
          "registryType": "pypi",
          "runtimeHint": "uvx",
          "transport": {
            "type": "stdio"
          },
          "version": "0.1.0"
        },
        {
          "environmentVariables": [
            {
              "description": "GLPI root URL without /api.php (e.g., https://glpi.example.com); needs GLPI 11.0.6+ or 12",
              "isRequired": true,
              "name": "GLPI_URL"
            },
            {
              "description": "OAuth client ID from GLPI Setup > OAuth clients",
              "isRequired": true,
              "name": "GLPI_CLIENT_ID"
            },
            {
              "description": "OAuth client secret from GLPI Setup > OAuth clients",
              "isRequired": true,
              "isSecret": true,
              "name": "GLPI_CLIENT_SECRET"
            },
            {
              "description": "GLPI user the tools act as (OAuth password grant)",
              "isRequired": true,
              "name": "GLPI_USERNAME"
            },
            {
              "description": "Password of the GLPI user",
              "isRequired": true,
              "isSecret": true,
              "name": "GLPI_PASSWORD"
            },
            {
              "default": "api user",
              "description": "OAuth scopes to request, space- or comma-separated (add graphql for GraphQL)",
              "name": "GLPI_SCOPES"
            },
            {
              "default": "auto",
              "description": "High-Level API version: auto, 2.3 or 3.0",
              "name": "GLPI_API_VERSION"
            },
            {
              "description": "Entity ID to work in (GLPI-Entity header)",
              "name": "GLPI_ENTITY"
            },
            {
              "default": "false",
              "description": "Include sub-entities of GLPI_ENTITY",
              "name": "GLPI_ENTITY_RECURSIVE"
            },
            {
              "description": "Profile ID to work with (GLPI-Profile header)",
              "name": "GLPI_PROFILE"
            },
            {
              "default": "true",
              "description": "Verify SSL certificates",
              "name": "GLPI_VERIFY_SSL"
            },
            {
              "default": "30",
              "description": "Total seconds allowed for one request, retries included",
              "name": "GLPI_TIMEOUT"
            },
            {
              "default": "false",
              "description": "Enable read-only mode to restrict write operations",
              "name": "READ_ONLY_MODE"
            },
            {
              "default": "false",
              "description": "Write tools return the request they would send instead of changing GLPI",
              "name": "DRY_RUN_MODE"
            },
            {
              "description": "Comma-separated list of tags to disable tools for",
              "name": "DISABLED_TAGS"
            },
            {
              "description": "Maximum size of a tool response in bytes (empty = unlimited)",
              "name": "RESPONSE_MAX_SIZE"
            },
            {
              "default": "INFO",
              "description": "Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)",
              "name": "LOG_LEVEL"
            },
            {
              "default": "false",
              "description": "Enable rate limiting",
              "name": "RATE_LIMIT_ENABLED"
            },
            {
              "default": "60",
              "description": "Maximum requests per rate limit window",
              "name": "RATE_LIMIT_MAX_REQUESTS"
            },
            {
              "default": "1",
              "description": "Rate limit window in minutes",
              "name": "RATE_LIMIT_WINDOW_MINUTES"
            },
            {
              "default": "false",
              "description": "Enable FastMCP tool search transform",
              "name": "TOOL_SEARCH_ENABLED"
            },
            {
              "default": "bm25",
              "description": "Tool search strategy (bm25 or regex)",
              "name": "TOOL_SEARCH_STRATEGY"
            },
            {
              "default": "5",
              "description": "Maximum tool search results returned by search_tools",
              "name": "TOOL_SEARCH_MAX_RESULTS"
            },
            {
              "default": "8000",
              "description": "Port for HTTP server (default: 8000)",
              "name": "MCP_HTTP_PORT"
            },
            {
              "description": "MCP transport type: stdio, sse, or http (alias: streamable-http)",
              "name": "MCP_TRANSPORT",
              "value": "http"
            }
          ],
          "identifier": "glpi-mcp-server",
          "registryType": "pypi",
          "runtimeHint": "uvx",
          "transport": {
            "type": "streamable-http",
            "url": "http://localhost:{MCP_HTTP_PORT}/mcp"
          },
          "version": "0.1.0"
        },
        {
          "environmentVariables": [
            {
              "description": "GLPI root URL without /api.php (e.g., https://glpi.example.com); needs GLPI 11.0.6+ or 12",
              "isRequired": true,
              "name": "GLPI_URL"
            },
            {
              "description": "OAuth client ID from GLPI Setup > OAuth clients",
              "isRequired": true,
              "name": "GLPI_CLIENT_ID"
            },
            {
              "description": "OAuth client secret from GLPI Setup > OAuth clients",
              "isRequired": true,
              "isSecret": true,
              "name": "GLPI_CLIENT_SECRET"
            },
            {
              "description": "GLPI user the tools act as (OAuth password grant)",
              "isRequired": true,
              "name": "GLPI_USERNAME"
            },
            {
              "description": "Password of the GLPI user",
              "isRequired": true,
              "isSecret": true,
              "name": "GLPI_PASSWORD"
            },
            {
              "default": "api user",
              "description": "OAuth scopes to request, space- or comma-separated (add graphql for GraphQL)",
              "name": "GLPI_SCOPES"
            },
            {
              "default": "auto",
              "description": "High-Level API version: auto, 2.3 or 3.0",
              "name": "GLPI_API_VERSION"
            },
            {
              "description": "Entity ID to work in (GLPI-Entity header)",
              "name": "GLPI_ENTITY"
            },
            {
              "default": "false",
              "description": "Include sub-entities of GLPI_ENTITY",
              "name": "GLPI_ENTITY_RECURSIVE"
            },
            {
              "description": "Profile ID to work with (GLPI-Profile header)",
              "name": "GLPI_PROFILE"
            },
            {
              "default": "true",
              "description": "Verify SSL certificates",
              "name": "GLPI_VERIFY_SSL"
            },
            {
              "default": "30",
              "description": "Total seconds allowed for one request, retries included",
              "name": "GLPI_TIMEOUT"
            },
            {
              "default": "false",
              "description": "Enable read-only mode to restrict write operations",
              "name": "READ_ONLY_MODE"
            },
            {
              "default": "false",
              "description": "Write tools return the request they would send instead of changing GLPI",
              "name": "DRY_RUN_MODE"
            },
            {
              "description": "Comma-separated list of tags to disable tools for",
              "name": "DISABLED_TAGS"
            },
            {
              "description": "Maximum size of a tool response in bytes (empty = unlimited)",
              "name": "RESPONSE_MAX_SIZE"
            },
            {
              "default": "INFO",
              "description": "Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)",
              "name": "LOG_LEVEL"
            },
            {
              "default": "false",
              "description": "Enable rate limiting",
              "name": "RATE_LIMIT_ENABLED"
            },
            {
              "default": "60",
              "description": "Maximum requests per rate limit window",
              "name": "RATE_LIMIT_MAX_REQUESTS"
            },
            {
              "default": "1",
              "description": "Rate limit window in minutes",
              "name": "RATE_LIMIT_WINDOW_MINUTES"
            },
            {
              "default": "false",
              "description": "Enable FastMCP tool search transform",
              "name": "TOOL_SEARCH_ENABLED"
            },
            {
              "default": "bm25",
              "description": "Tool search strategy (bm25 or regex)",
              "name": "TOOL_SEARCH_STRATEGY"
            },
            {
              "default": "5",
              "description": "Maximum tool search results returned by search_tools",
              "name": "TOOL_SEARCH_MAX_RESULTS"
            },
            {
              "default": "8000",
              "description": "Port for HTTP server (default: 8000)",
              "name": "MCP_HTTP_PORT"
            }
          ],
          "identifier": "ghcr.io/mhajder/glpi-mcp:0.1.0",
          "registryType": "oci",
          "runtimeArguments": [
            {
              "description": "Port mapping for HTTP transport",
              "isRequired": true,
              "name": "-p",
              "type": "named",
              "value": "{MCP_HTTP_PORT}:8000"
            }
          ],
          "transport": {
            "type": "streamable-http",
            "url": "http://localhost:{MCP_HTTP_PORT}/mcp"
          }
        }
      ],
      "repository": {
        "source": "github",
        "url": "https://github.com/mhajder/glpi-mcp"
      },
      "title": "GLPI MCP",
      "version": "0.1.0",
      "websiteUrl": "https://github.com/mhajder/glpi-mcp"
    }
  },
  "source": "mcp_registry",
  "summary": "MCP server for GLPI IT service management (tickets, assets, users, knowledge base)"
}

What the leaf hashes

{"body":"86083d6962f08c4c3b8b79ca74d75337b4b2fef8a5a52df71a3aeaa7dbea2d69","id":261179,"kind":"listing","method":"sync.mcp_registry/1","observed_us":1793032167681354,"prev":null,"subject":"mcp_registry:io.github.mhajder/glpi-mcp","subject_kind":"source_record"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0xb0de6a8be10ae871b1e1277840e6e90d0581df00cdc1e5cfa94150124bd3e102
  2. 0xa1042190f9755fb32ea155c9bf825e0e17ca49c65c19671e4a098ffc8fb44fdd
  3. 0x69142d6904a102d1fff0697455b7fc6bc82b63258ea4ee88aa03a132491915b3
  4. 0x34ec256645546d888e9e803a76817386e38dc005bd13a276f4a98f969bf2a277
  5. 0x86f7aff1354a81921a0f9cf6d72ec68bd2391271fb150e7d35f39eea7d4014ce
  6. 0x87774c25878c5322a5617fd27283e9d3ec0853b09cbc151ab6cc01935d41f5f2
  7. 0x1b57cd6c1ab466360056e2c8c4c11d2525d945ffffd7e556f04e3ffc412f8df8
  8. 0xdeb16cde72ad603ab53ec88911abf1e4c5f51ff850fe1948593d5edd01b8162d
  9. 0x8d568ea95a5422962350f3396731dacc297f97095333e75e8a99990ac22eac8a
  10. 0x864dcc49d9807b07fc9f373b1bca313664699969735d983a4f575c0d0ac7ac37
  11. 0x68459613b28284909eadec125bcf23808811e99ecfabc229bf7deb2178ab9826
  12. 0xce1aeb889b974291cea1fbfd01595655bd2c1b3636dc5b56eeb8904adb9f6c65
  13. 0x3b1c0e225d1b1cb24cd5d5ea4af2de20ed68a1eaf8b61924ed1b81e4b9cf7e39
  14. 0x083427e39db4dd470662401f6db5db8fadf084fc4274cf8621b368416952b78b
  15. 0x1a74ed3b3756b9cd946da49701bcec120ec88645013da99fa9eea60b39e1a570
  16. 0x123ec8bee20ddc55223eeef5a4f4d6c4b6416515adbb911c56759f5cde56e452
  17. 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON