{
  "automatic_evidence_credit": false,
  "captures": [],
  "change_log": [
    {
      "after_hash": "125dcd375e7d4746d1f5bf1446b76b9c52f37538e1054d2d68a972784903e357",
      "before_hash": "125dcd375e7d4746d1f5bf1446b76b9c52f37538e1054d2d68a972784903e357",
      "diff": {
        "changes": [
          {
            "compatibility_class": "INFO",
            "fact": "Declared provider, version, model, operator or AI self-disclosure changed",
            "kind": "DECLARED_INGREDIENTS_CHANGED",
            "path": "$.declared_ingredients_changed",
            "security_relevant_field": false
          }
        ],
        "classified": true,
        "counts_by_class": {
          "BREAKING": 0,
          "INFO": 1,
          "NON_BREAKING": 0
        },
        "taxonomy_version": null,
        "total": 1,
        "truncated": false
      },
      "entry_sha256": "04ce681ad6d048790724d1880c759fcd420dfc6e69d069b93597dfe6657d12de",
      "evidence_class": "FACT_CHANGE",
      "labels": [
        "DECLARED_INGREDIENTS_CHANGED"
      ],
      "observed_at_utc": "2026-11-02T00:49:37Z",
      "previous_entry_sha256": "9d3e77f3f2ad0b6f11817c7dbca8a272700a16513815edd054b7de946ce32e5c",
      "receipt_id": null,
      "receipt_url": null,
      "sequence": 60368,
      "target_id": "obs_8847a04d6a6ea9e93ffcd114",
      "target_kind": "MCP_REMOTE",
      "target_locator": "https://atlas.geosensor.tech/mcp"
    },
    {
      "after_hash": "125dcd375e7d4746d1f5bf1446b76b9c52f37538e1054d2d68a972784903e357",
      "before_hash": "dd36eca3ab1c8e6202f4213a512c7c973b017e19f7a9d2811f81f3505fcd35be",
      "diff": {
        "changes": [
          {
            "compatibility_class": "NON_BREAKING",
            "fact": "tool added",
            "kind": "TOOL_ADDED",
            "path": "tools[request_capability]",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "INFO",
            "fact": "tool description changed",
            "kind": "TOOL_DESCRIPTION_CHANGED",
            "path": "tools[bulk_export].description",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "NON_BREAKING",
            "fact": "capability changed",
            "kind": "CAPABILITY_CHANGED",
            "path": "capabilities",
            "security_relevant_field": false
          }
        ],
        "classified": true,
        "counts_by_class": {
          "BREAKING": 0,
          "INFO": 1,
          "NON_BREAKING": 2
        },
        "taxonomy_version": "1.0.0",
        "total": 3,
        "truncated": false
      },
      "entry_sha256": "9d3e77f3f2ad0b6f11817c7dbca8a272700a16513815edd054b7de946ce32e5c",
      "evidence_class": "MANIFEST_CHANGE",
      "labels": [
        "MANIFEST_CHANGED",
        "TOOL_LIST_OR_TOOL_TEXT_CHANGED"
      ],
      "observed_at_utc": "2026-11-02T00:49:37Z",
      "previous_entry_sha256": "c5b2314a0da0d3cc1d043f24a34630f04891261cc9b03674893ea7fc919d2dcb",
      "receipt_id": "0bf0dc8c-92ba-510a-a81d-61613a6c20de",
      "receipt_url": "https://www.gaipagents.com/v1/free/receipts/0bf0dc8c-92ba-510a-a81d-61613a6c20de",
      "sequence": 60367,
      "target_id": "obs_8847a04d6a6ea9e93ffcd114",
      "target_kind": "MCP_REMOTE",
      "target_locator": "https://atlas.geosensor.tech/mcp"
    },
    {
      "after_hash": "dd36eca3ab1c8e6202f4213a512c7c973b017e19f7a9d2811f81f3505fcd35be",
      "before_hash": "78041fecf9143bc80fcff2ab52f6dacee038bacd1cecc10c01caaec47caa120d",
      "diff": {
        "changes": [
          {
            "compatibility_class": "INFO",
            "fact": "tool description changed",
            "kind": "TOOL_DESCRIPTION_CHANGED",
            "path": "tools[bulk_export].description",
            "security_relevant_field": false
          }
        ],
        "classified": true,
        "counts_by_class": {
          "BREAKING": 0,
          "INFO": 1,
          "NON_BREAKING": 0
        },
        "taxonomy_version": "1.0.0",
        "total": 1,
        "truncated": false
      },
      "entry_sha256": "e2de20913ab7436a7f592862908361b90f315b661d3584a853e43662761b8678",
      "evidence_class": "MANIFEST_CHANGE",
      "labels": [
        "MANIFEST_CHANGED",
        "TOOL_LIST_OR_TOOL_TEXT_CHANGED"
      ],
      "observed_at_utc": "2026-10-19T03:11:57Z",
      "previous_entry_sha256": "6fca8ac1a819ad33f25e187bf71029295db73a5e9ac7898e7db6421933896575",
      "receipt_id": "f9ce7b63-af42-580e-b977-b7cedccd1744",
      "receipt_url": "https://www.gaipagents.com/v1/free/receipts/f9ce7b63-af42-580e-b977-b7cedccd1744",
      "sequence": 37000,
      "target_id": "obs_8847a04d6a6ea9e93ffcd114",
      "target_kind": "MCP_REMOTE",
      "target_locator": "https://atlas.geosensor.tech/mcp"
    },
    {
      "after_hash": "78041fecf9143bc80fcff2ab52f6dacee038bacd1cecc10c01caaec47caa120d",
      "before_hash": "536f48c2cd1efeb758ffbad3f4775a2250301e8bba6f9a94e3e84e9d0059a849",
      "diff": {
        "changes": [
          {
            "compatibility_class": "NON_BREAKING",
            "fact": "tool added",
            "kind": "TOOL_ADDED",
            "path": "tools[adoption_curve]",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "INFO",
            "fact": "tool description changed",
            "kind": "TOOL_DESCRIPTION_CHANGED",
            "path": "tools[absence_rate].description",
            "security_relevant_field": false
          }
        ],
        "classified": true,
        "counts_by_class": {
          "BREAKING": 0,
          "INFO": 1,
          "NON_BREAKING": 1
        },
        "taxonomy_version": "1.0.0",
        "total": 2,
        "truncated": false
      },
      "entry_sha256": "88fedfc6d6db842b68245816e3687e1842b98c398462bce61370b3b5f9890995",
      "evidence_class": "MANIFEST_CHANGE",
      "labels": [
        "MANIFEST_CHANGED",
        "TOOL_LIST_OR_TOOL_TEXT_CHANGED"
      ],
      "observed_at_utc": "2026-10-11T15:56:36Z",
      "previous_entry_sha256": "6cbdf8f7786ff31f8ce44dbe01272fe32fef0f6600b7ad938eac98f3f1d88af4",
      "receipt_id": "dd5bb734-cf34-5305-8f1b-2b9d581afd2f",
      "receipt_url": "https://www.gaipagents.com/v1/free/receipts/dd5bb734-cf34-5305-8f1b-2b9d581afd2f",
      "sequence": 24962,
      "target_id": "obs_8847a04d6a6ea9e93ffcd114",
      "target_kind": "MCP_REMOTE",
      "target_locator": "https://atlas.geosensor.tech/mcp"
    }
  ],
  "check_outcomes": {
    "ask": {
      "changed_since": "https://www.gaipagents.com/v1/free/observatory/changed-since?url=<endpoint>",
      "changes_and_reachability": "https://www.gaipagents.com/v1/free/changes/subscribe?url=<endpoint>",
      "conformance": "https://www.gaipagents.com/v1/free/conformance/check?url=<endpoint>"
    },
    "published": false,
    "why": "Outcomes of GAIP's own checks (whether the endpoint answered, HTTP status, response time, conformance findings) are given only to a caller who asks about the URL, never on a public page, list or feed. The same applies to every target."
  },
  "conformance": {
    "findings": "GIVEN_TO_CALLER_ONLY",
    "meaning": "The rule catalogue this manifest was read against at the observed time. The finding codes go only to a caller who checks the URL (check_outcomes.ask.conformance).",
    "observed_at_utc": "2026-11-02T00:49:37Z",
    "protocol": "MCP",
    "rule_catalogue_route": "/v1/free/knowledge/conformance-rules",
    "rule_catalogue_version": "1.0.0"
  },
  "corrections": {
    "contact": "https://www.gaipagents.com/contact",
    "exclusion": "https://www.gaipagents.com/v1/free/observatory/corrections/exclusion",
    "opt_out": "POST kind OPT_OUT to the route; the target is withdrawn from public view at once (a pause). The site's owner makes it permanent at https://www.gaipagents.com/v1/free/observatory/corrections/exclusion.",
    "queued_for_review": 0,
    "route": "https://www.gaipagents.com/v1/free/observatory/corrections"
  },
  "declared_derivations": {
    "data_appetite": {
      "categories": {},
      "fields_read": 8,
      "observed_at_utc": "2026-11-02T00:49:37Z",
      "tools_read": 5
    },
    "dependency_domains": [],
    "last_observed_at_utc": "2026-11-02T00:49:37Z",
    "meaning": "Derived by GAIP from what this agent declared, at the stated time: the categories of data its tools' input fields ask for (counts, by keyword rules gaip.data-appetite-rules.v1), the outside domains its declarations point to, and the operator as the agent itself publishes it. Facts about declarations, not an assessment of the agent or its operator.",
    "operator": {
      "as_published": "tech.geosensor.atlas",
      "source_kind": "registry_namespace_domain"
    },
    "rules_version": "gaip.data-appetite-rules.v1",
    "schema_version": "gaip.declared-derivations.v1"
  },
  "latest": {
    "baseline_at_utc": "2026-10-04T19:13:06Z",
    "manifest_sha256": "125dcd375e7d4746d1f5bf1446b76b9c52f37538e1054d2d68a972784903e357",
    "observed_at_utc": "2026-11-02T00:49:37Z"
  },
  "metadata_signals": {
    "meaning": "Pattern rules are published only as aggregate rates across all observed targets (see the summary), never per party. GAIP issues no overall verdict and does not rank parties.",
    "overall_verdict": null,
    "per_target_results": null,
    "published": "AGGREGATE_ONLY_IN_SUMMARY",
    "rules": [
      {
        "rationale": "Zero-width, bidirectional-control and Unicode tag characters are not visible to a human reader but are read by language models. GAIP reports whether any occur; many have ordinary uses.",
        "rule_id": "OBS-SIG-001",
        "title": "Invisible or bidirectional-control Unicode characters in names or descriptions"
      },
      {
        "rationale": "Tool and skill descriptions are read by models. GAIP reports whether a description contains phrases shaped like instructions to a model (the patterns in GAIP's public conformance rule catalogue, plus the phrases listed in the Observatory method). Such phrases can be benign.",
        "rule_id": "OBS-SIG-002",
        "title": "Instruction-like text in descriptions"
      },
      {
        "rationale": "When a description refers to a tool name that only a different observed server publishes, a model using both servers may connect the two. GAIP reports whether such a reference occurs; shared names are common and often coincidental.",
        "rule_id": "OBS-SIG-003",
        "title": "Description names a tool published by a different observed server"
      },
      {
        "rationale": "Declared OAuth scopes whose names contain wildcard or whole-account wording (*, all, admin, root, full) request wide access by name. GAIP reports whether such a scope name is declared; it does not know what the scope grants.",
        "rule_id": "OBS-SIG-004",
        "title": "Declared authorization scopes with broad-access wording"
      }
    ],
    "third_party_scanners": [
      {
        "name": "Snyk agent-scan (formerly Invariant Labs mcp-scan)",
        "status": "NOT_RUN",
        "url": "https://github.com/snyk/agent-scan"
      },
      {
        "name": "Cisco AI Defense MCP Scanner",
        "status": "NOT_RUN",
        "url": "https://github.com/cisco-ai-defense/mcp-scanner"
      }
    ]
  },
  "method": "https://www.gaipagents.com/observatory",
  "notice": "Facts observed by GAIP at the stated time (UTC); they may be out of date. This is not an assessment of safety, quality, security, legality or trustworthiness of any party, and not a recommendation. To request a correction, add a right of reply or opt out, POST to https://www.gaipagents.com/v1/free/observatory/corrections or use https://www.gaipagents.com/contact.",
  "price_gbp": 0,
  "schema_version": "gaip.observatory.v1.target",
  "silent_changes_last_30_days": {
    "days": 30,
    "entries_read_at_most": 200,
    "kinds": [
      "tool_descriptions_reworded",
      "tools_added"
    ],
    "line": "In the last 30 days its declared tools or interface changed with no declared version change in 2 weeks: 2026-W41 (2026-10-11); 2026-W43 (2026-10-19); kinds: tool descriptions re-worded, tools added.",
    "meaning": "Weeks (ISO) in which GAIP recorded a change to the agent's declared tools or interface (tools added or removed, descriptions re-worded, input or output schema, behaviour labels, sign-in, terms or prices, endpoint host) and no declared version (registry or card version, serverInfo.version) moved that week. A week whose version movement is not recorded is not counted. Dated facts from the public change log; not an assessment of the agent.",
    "weeks": [
      {
        "dates": [
          "2026-10-11"
        ],
        "kinds": [
          "tool_descriptions_reworded",
          "tools_added"
        ],
        "week": "2026-W41"
      },
      {
        "dates": [
          "2026-10-19"
        ],
        "kinds": [
          "tool_descriptions_reworded"
        ],
        "week": "2026-W43"
      }
    ],
    "weeks_with_silent_changes": 2
  },
  "snapshot": {
    "capabilities": [
      "prompts",
      "resources",
      "tools"
    ],
    "description": "Measured rates at which web services lack machine-readable capabilities. Research demonstrator.",
    "name": "tech.geosensor.atlas/absence-index",
    "parts": [
      "registry_server_json",
      "mcp_initialize_tools_list"
    ],
    "protocol": "MCP",
    "protocolVersion": "2025-06-18",
    "public_copy": "Text excerpts of at most 300 characters; input schemas and security schemes as SHA-256 and size only.",
    "remotes": [
      {
        "type": "streamable-http",
        "url": "https://atlas.geosensor.tech/mcp"
      }
    ],
    "scopes": [],
    "serverInfo": {
      "name": "atlas.geosensor.tech",
      "version": "0.8.0"
    },
    "title": "Atlas absence index",
    "tools": [
      {
        "annotations": {},
        "description": "Measured absence rate for a population, with the evaluated denominator and sample provenance. Pass `gap_class` (e.g. PH-C019) for one class; omit it for the whole table. Aggregate only: no per-host findings.",
        "inputSchema": {
          "bytes": 91,
          "published": "HASH_ONLY",
          "sha256": "a4003a99b9898cac0453b092f5eea86c99f0fb98df90bd9e17fbdd8025fe324f"
        },
        "name": "absence_rate",
        "title": null
      },
      {
        "annotations": {},
        "description": "Dated adoption series: share of sites whose robots.txt takes a stance on AI agents, by Common Crawl epoch, single vantage. Called with no arguments it returns the trend and the caveats, not the whole table. Pass `epoch` for one point, `series: true` for all of them, or `withheld: true` for the under",
        "inputSchema": {
          "bytes": 316,
          "published": "HASH_ONLY",
          "sha256": "66208bd1b712d9c6660309c5ba3eb1594657910ddfa72fd5f1f5af531b88ffcd"
        },
        "name": "adoption_curve",
        "title": null
      },
      {
        "annotations": {},
        "description": "Per-class numerators with Wilson intervals and the discarded-as-unknown share, Kaplan-Meier survival of directive adoption by cohort, directive lineage, declaration growth, and RFC 9728 auth-discovery conformance detail \u2014 none of it on the free surface \u2014 with an ed25519 attestation naming the chain ",
        "inputSchema": {
          "bytes": 62,
          "published": "HASH_ONLY",
          "sha256": "99334726611ccf58a148b0814696bfa6fe08c1b2d027e946beccf5a74331c9aa"
        },
        "name": "bulk_export",
        "title": null
      },
      {
        "annotations": {},
        "description": "Per-host findings. Requires a bearer credential.",
        "inputSchema": {
          "bytes": 106,
          "published": "HASH_ONLY",
          "sha256": "381d33b2bf9e40666dd541179166b5c311f836f4c7527b92ffeac134af1a70d3"
        },
        "name": "host_report",
        "title": null
      },
      {
        "annotations": {},
        "description": "ASK US FOR WHAT IS NOT HERE. What would you like to buy? Tell us even if it is not in this inventory. If what you need is a machine-readable convention, or a property of one across a host population, we can usually measure it for you \u2014 and if we cannot, we will say so. Call the `request_capability` ",
        "inputSchema": {
          "bytes": 324,
          "published": "HASH_ONLY",
          "sha256": "2f825503b12171812c1fbe4d32014af52fa73f7c530ac5044d3d90d02c91907a"
        },
        "name": "request_capability",
        "title": null
      }
    ],
    "version": "0.2.0"
  },
  "status_history": [
    {
      "manifest_partial": null,
      "manifest_parts": [
        "registry_server_json",
        "mcp_initialize_tools_list"
      ],
      "manifest_sha256": "125dcd375e7d4746d1f5bf1446b76b9c52f37538e1054d2d68a972784903e357",
      "observed_at_utc": "2026-11-02T00:49:37Z",
      "protocol_version": "2025-06-18"
    },
    {
      "manifest_partial": null,
      "manifest_parts": [
        "registry_server_json",
        "mcp_initialize_tools_list"
      ],
      "manifest_sha256": "dd36eca3ab1c8e6202f4213a512c7c973b017e19f7a9d2811f81f3505fcd35be",
      "observed_at_utc": "2026-10-19T03:11:57Z",
      "protocol_version": "2025-06-18"
    },
    {
      "manifest_partial": null,
      "manifest_parts": [
        "registry_server_json",
        "mcp_initialize_tools_list"
      ],
      "manifest_sha256": "78041fecf9143bc80fcff2ab52f6dacee038bacd1cecc10c01caaec47caa120d",
      "observed_at_utc": "2026-10-11T15:56:36Z",
      "protocol_version": "2025-06-18"
    },
    {
      "manifest_partial": null,
      "manifest_parts": [
        "registry_server_json",
        "mcp_initialize_tools_list"
      ],
      "manifest_sha256": "536f48c2cd1efeb758ffbad3f4775a2250301e8bba6f9a94e3e84e9d0059a849",
      "observed_at_utc": "2026-10-04T19:13:06Z",
      "protocol_version": "2025-06-18"
    }
  ],
  "target": {
    "corrections_route": "https://www.gaipagents.com/v1/free/observatory/corrections",
    "first_seen_at_utc": "2026-10-04T09:18:20Z",
    "kind": "MCP_REMOTE",
    "last_observed_at_utc": "2026-11-02T00:49:37Z",
    "locator": "https://atlas.geosensor.tech/mcp",
    "name": "tech.geosensor.atlas/absence-index",
    "source": "official-mcp-registry",
    "target_id": "obs_8847a04d6a6ea9e93ffcd114"
  }
}