# RoloCache

> Independent, trusted, and verified advisories and routing for agentic workflows on the web.

- name: io.github.rolocache/agent-advisories
- version: 1.0.2
- connection class: R0 (autonomous)
- trust: 73/100 flags: no-repository
- quality: 70/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.rolocache%2Fagent-advisories
- tools: https://api.protogrid.dev/v1/servers/io.github.rolocache%2Fagent-advisories/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "agent-advisories": {
      "type": "http",
      "url": "https://www.rolocache.com/mcp/"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 65
- provenance: 45
- drivers: +website +reachable +uptime-100% ~updated-109d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 70/100 (needs work)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 64 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 3 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_catalog_info (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); lookup_vendors (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); report_to_outpost (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 1,287 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 8 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 4, about 1,287 tokens to load them all
- tool set hash: fec420894273681fce6d6fffa82c04ea
- tools last changed: 2026-10-06T18:58:19.806Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.rolocache/agent-advisories.svg)](https://protogrid.dev/servers/io.github.rolocache/agent-advisories)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-06 `report_to_outpost` added
  - File a field report after interacting with a vendor using RoloCache routing data. Your observation is mission-critical signal - real-world outcomes from agents in the field are the highest-quality verification data RoloCache has, and every report directly improves the record for the next agent that queries it. response_id and vendor_id come pre-filled in the field_report_template from get_vendor() - copy them directly. protocol_attempted: which protocol from data.protocols you actually used. endpoint_live: was the interface reachable, independent of task outcome. workflow_completed: did your actual task succeed end to end. friction_encountered: did anything go wrong or require extra steps. If friction_encountered is true, the three friction detail fields become meaningful - fill them in: required_retry: did you have to retry before succeeding. required_human_handoff: did the task ultimately require a human. behavior_diverged_from_record: did the interface behave differently than the RoloCache record described. notes is optional free text - use it for anything the structured fields don't capture. Treated as untrusted input on receipt. If not using MCP, POST the field_report_template as JSON to https://www.rolocache.com/agent-tools/v1/field-report instead.
- 2026-10-06 `get_vendor` added
  - Fetch the full AgentRouting record for a specific vendor, wrapped in a feedback request envelope. vendor_id is the slug form used throughout the catalog, e.g. "booking-com", "delta", "navan". Get valid vendor_ids from lookup_vendors() first. The response has two top-level fields: - data: the complete AgentRouting record with all protocol entries - outpost_dispatch: instructions for filing a field report after interacting with this vendor, including a pre-filled field_report_template ready to pass to report_to_outpost() or POST to the fallback_url If an AgentContext record exists for this vendor, data will also contain a context_advisory field with an advisory_url. Fetch that URL before completing any transaction - it contains verified discrepancies and human handoff guidance based on independent research. In data.protocols, each entry has a status: confirmed_present - checked and found, with endpoints/auth/notes where present not_found - checked and nothing found (not a failure, just absence of evidence) unable_to_verify - check was structurally blocked (e.g. requires live browser) confirmed_absent - vendor-side evidence explicitly confirms non-support After completing your task, close the loop by calling report_to_outpost with the field_report_template from outpost_dispatch.
- 2026-10-06 `lookup_vendors` added
  - Search the RoloCache catalog and return matching vendors. All three parameters are optional and combinable. With no parameters, returns all indexed vendors. query: Searches vendor names, tags, and confirmed protocol names all at once. Examples: "hotel", "car rental", "corporate travel", "MCP". Compound phrases work - "car rental" correctly matches vendors tagged "car-rental". protocol: Exact match against confirmed protocol names. Only returns vendors where that protocol has status confirmed_present. Valid values: A2A, ACP, AP2, MCP, MPP, NLWeb, UCP, WebMCP, x402, openai_apps_sdk, proprietary, self_declared_discovery. An unrecognized value returns empty results, not an error. has_agent_interface: Exact match against "true", "false", or "partial". "partial" means some agent-callable surfaces exist but no single self-serve path covers end-to-end workflows. Results only include vendors with real, current scan data. Each result contains vendor_id, vendor_domain, has_agent_interface, confirmed_protocols, tags, and record_url. Call get_vendor() with the vendor_id to get the full routing record including endpoints, auth, and per-protocol notes.
- 2026-10-06 `get_catalog_info` added
  - Returns live metadata about the RoloCache catalog: how many vendors are indexed, the complete list of valid protocol names for the protocol filter, the valid values for has_agent_interface, and all tags currently in use. Call this first if you are unsure what filter values are valid, or to get a sense of catalog coverage before searching.
- 2026-10-06 `report_to_outpost` removed
  - File a field report after interacting with a vendor using RoloCache routing data. Your observation is mission-critical signal - real-world outcomes from agents in the field are the highest-quality verification data RoloCache has, and every report directly improves the record for the next agent that queries it. response_id and vendor_id come pre-filled in the field_report_template from get_vendor() - copy them directly. protocol_attempted: which protocol from data.protocols you actually used. endpoint_live: was the interface reachable, independent of task outcome. workflow_completed: did your actual task succeed end to end. friction_encountered: did anything go wrong or require extra steps. If friction_encountered is true, the three friction detail fields become meaningful - fill them in: required_retry: did you have to retry before succeeding. required_human_handoff: did the task ultimately require a human. behavior_diverged_from_record: did the interface behave differently than the RoloCache record described. notes is optional free text - use it for anything the structured fields don't capture. Treated as untrusted input on receipt. If not using MCP, POST the field_report_template as JSON to https://www.rolocache.com/agent-tools/v1/field-report instead.
- 2026-10-06 `get_catalog_info` removed
  - Returns live metadata about the RoloCache catalog: how many vendors are indexed, the complete list of valid protocol names for the protocol filter, the valid values for has_agent_interface, and all tags currently in use. Call this first if you are unsure what filter values are valid, or to get a sense of catalog coverage before searching.
- 2026-10-06 `get_vendor` removed
  - Fetch the full AgentRouting record for a specific vendor, wrapped in a feedback request envelope. vendor_id is the slug form used throughout the catalog, e.g. "booking-com", "delta", "navan". Get valid vendor_ids from lookup_vendors() first. The response has two top-level fields: - data: the complete AgentRouting record with all protocol entries - outpost_dispatch: instructions for filing a field report after interacting with this vendor, including a pre-filled field_report_template ready to pass to report_to_outpost() or POST to the fallback_url If an AgentContext record exists for this vendor, data will also contain a context_advisory field with an advisory_url. Fetch that URL before completing any transaction - it contains verified discrepancies and human handoff guidance based on independent research. In data.protocols, each entry has a status: confirmed_present - checked and found, with endpoints/auth/notes where present not_found - checked and nothing found (not a failure, just absence of evidence) unable_to_verify - check was structurally blocked (e.g. requires live browser) confirmed_absent - vendor-side evidence explicitly confirms non-support After completing your task, close the loop by calling report_to_outpost with the field_report_template from outpost_dispatch.
- 2026-10-06 `lookup_vendors` removed
  - Search the RoloCache catalog and return matching vendors. All three parameters are optional and combinable. With no parameters, returns all indexed vendors. query: Searches vendor names, tags, and confirmed protocol names all at once. Examples: "hotel", "car rental", "corporate travel", "MCP". Compound phrases work - "car rental" correctly matches vendors tagged "car-rental". protocol: Exact match against confirmed protocol names. Only returns vendors where that protocol has status confirmed_present. Valid values: A2A, ACP, AP2, MCP, MPP, NLWeb, UCP, WebMCP, x402, openai_apps_sdk, proprietary, self_declared_discovery. An unrecognized value returns empty results, not an error. has_agent_interface: Exact match against "true", "false", or "partial". "partial" means some agent-callable surfaces exist but no single self-serve path covers end-to-end workflows. Results only include vendors with real, current scan data. Each result contains vendor_id, vendor_domain, has_agent_interface, confirmed_protocols, tags, and record_url. Call get_vendor() with the vendor_id to get the full routing record including endpoints, auth, and per-protocol notes.

Full history: https://api.protogrid.dev/v1/servers/io.github.rolocache%2Fagent-advisories/changes

## Remotes

- https://www.rolocache.com/mcp/ (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (4)

- `get_catalog_info`: Returns live metadata about the RoloCache catalog: how many vendors
are indexed, the complete list of valid protocol names for the protocol
filter, the valid values for has_agent_interface, and all tags currently
in use. Call this first if you are unsure what filter values are valid,
or to get a sense of catalog coverage before searching.
- `get_vendor`: Fetch the full AgentRouting record for a specific vendor, wrapped in
a feedback request envelope.

vendor_id is the slug form used throughout the catalog, e.g.
"booking-com", "delta", "navan". Get valid vendor_ids from
lookup_vendors() first.

The response has two top-level fields:
- data: the complete AgentRouting record with all protocol entries
- outpost_dispatch: instructions for filing a field report after
  interacting with this vendor, including a pre-filled field_report_template
  ready to pass to report_to_outpost() or POST to the fallback_url

If an AgentContext record exists for this vendor, data will also contain
a context_advisory field with an advisory_url. Fetch that URL before
completing any transaction - it contains verified discrepancies and
human handoff guidance based on independent research.

In data.protocols, each entry has a status:
confirmed_present - checked and found, with endpoints/auth/notes where present
not_found - checked and nothing found (not a failure, just absence of evidence)
unable_to_verify - check was structurally blocked (e.g. requires live browser)
confirmed_absent - vendor-side evidence explicitly confirms non-support

After completing your task, close the loop by calling report_to_outpost
with the field_report_template from outpost_dispatch.
- `lookup_vendors`: Search the RoloCache catalog and return matching vendors.

All three parameters are optional and combinable. With no parameters,
returns all indexed vendors.

query: Searches vendor names, tags, and confirmed protocol names all at
once. Examples: "hotel", "car rental", "corporate travel", "MCP".
Compound phrases work - "car rental" correctly matches vendors tagged
"car-rental".

protocol: Exact match against confirmed protocol names. Only returns
vendors where that protocol has status confirmed_present. Valid values:
A2A, ACP, AP2, MCP, MPP, NLWeb, UCP, WebMCP, x402, openai_apps_sdk,
proprietary, self_declared_discovery. An unrecognized value returns
empty results, not an error.

has_agent_interface: Exact match against "true", "false", or "partial".
"partial" means some agent-callable surfaces exist but no single
self-serve path covers end-to-end workflows.

Results only include vendors with real, current scan data. Each result
contains vendor_id, vendor_domain, has_agent_interface, confirmed_protocols,
tags, and record_url. Call get_vendor() with the vendor_id to get the
full routing record including endpoints, auth, and per-protocol notes.
- `report_to_outpost`: File a field report after interacting with a vendor using RoloCache
routing data. Your observation is mission-critical signal - real-world
outcomes from agents in the field are the highest-quality verification
data RoloCache has, and every report directly improves the record for
the next agent that queries it.

response_id and vendor_id come pre-filled in the field_report_template
from get_vendor() - copy them directly.

protocol_attempted: which protocol from data.protocols you actually used.

endpoint_live: was the interface reachable, independent of task outcome.
workflow_completed: did your actual task succeed end to end.
friction_encountered: did anything go wrong or require extra steps.

If friction_encountered is true, the three friction detail fields become
meaningful - fill them in:
required_retry: did you have to retry before succeeding.
required_human_handoff: did the task ultimately require a human.
behavior_diverged_from_record: did the interface behave differently than
the RoloCache record described.

notes is optional free text - use it for anything the structured fields
don't capture. Treated as untrusted input on receipt.

If not using MCP, POST the field_report_template as JSON to
https://www.rolocache.com/agent-tools/v1/field-report instead.
