# Topology Index

> Reference for multi-agent LLM topologies: patterns, aliases, sources, starters; one gated report.

- name: com.topologyindex/topology-index
- version: 1.4.0
- connection class: R0 (autonomous)
- trust: 82/100 flags: no-repository
- quality: 90/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.topologyindex%2Ftopology-index
- tools: https://api.protogrid.dev/v1/servers/com.topologyindex%2Ftopology-index/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "topology-index": {
      "type": "http",
      "url": "https://topologyindex.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 98
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-94% +updated-27d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 90/100 (strong)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### 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: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 6 of 6 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,265 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`: 9 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: 6, about 1,265 tokens to load them all
- tool set hash: c66495761788c4d3157d5d815d7d5c51
- tools last changed: 2026-10-20T01:16:09.387Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.topologyindex/topology-index.svg)](https://protogrid.dev/servers/com.topologyindex/topology-index)
- 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-20 `fetch` changed (description)
  - before: Returns the Markdown document of any public page, exactly as HTTP serves it, from a root-relative path (/patterns/supervisor.md) or a https://topologyindex.com URL. Private tenant routes are not reachable here. A pattern, starter or formation read may add a second item containing a one-time use ticket and an instruction to call `report_outcome` after applying it; pattern and starter redemptions can return indexed pitfalls, checks or a pairing suggestion.
  - after: Returns the Markdown document of any public page, exactly as HTTP serves it, from a root-relative path (/patterns/supervisor.md) or a https://topologyindex.com URL. Private tenant routes are not reachable here. A pattern, starter or formation read may add a second item containing a one-time use ticket and an instruction to call `report_outcome` after applying it; a pattern or starter redemption returns a verification checklist, or the pattern to test next when it did not work.
- 2026-10-02 `list_starters` changed (description, outputSchema)
  - before: The starter formation index (/starters/index.md): unvalidated, unsigned FORMATION.md documents to copy and register privately. With a task class, only the starters that declare it (/starters/index.md?task_class={task_class}).
  - after: The starter formation index (/starters/index.md): unvalidated, unsigned FORMATION.md documents to copy and register privately. With a task class, only the starters that declare it (/starters/index.md?task_class={task_class}). The response includes exact fetch calls for the starter paths.
- 2026-10-02 `list_patterns` changed (description, outputSchema)
  - before: The decision guide: where to start by the shape of the task, the pattern to consider next and when to avoid each, plus the pattern families (the `choosing` rows of /patterns/index.md, without the rest of that page). With a family, /patterns/index.md?family={family}: that family’s patterns and the rows that name them. With a domain, /domains/{domain}.md: the task shapes common in that kind of work, their rows, the sources of the published findings tagged with it (never a ranking; each finding in words at /domains/{domain}/findings.md) and its starters.
  - after: The decision guide: where to start by the shape of the task, the pattern to consider next and when to avoid each, plus the pattern families (the `choosing` rows of /patterns/index.md, without the rest of that page). With a family, /patterns/index.md?family={family}: that family’s patterns and the rows that name them. With a domain, /domains/{domain}.md: the task shapes common in that kind of work, their rows, the sources of the published findings tagged with it (never a ranking; each finding in words at /domains/{domain}/findings.md) and its starters. The response includes exact next calls for the listed patterns and starters.
- 2026-10-02 `search` changed (description, outputSchema)
  - before: Keyword search, with common synonyms, over pattern names, aliases and families, the decision guide, the domains, sources and benchmarks of published findings, research, starters and guides. At most 10 results, each a path for `fetch`; if no page matches every word, pages matching some; if none, the decision guide. Matches text only; never ranks patterns.
  - after: Keyword search, with common synonyms, over pattern names, aliases and families, the decision guide, the domains, sources and benchmarks of published findings, research, starters and guides. At most 10 results, each a path for `fetch`; canonical pattern results also include the identifier for `get_pattern` and an exact next call. If no page matches every word, pages matching some; if none, the decision guide. Matches text only; never ranks patterns.
- 2026-10-02 `report_outcome` changed (description, inputSchema)
  - before: Limited rollout: only for a use ticket from a pattern, starter or formation read. If you have no ticket, do not call it. With one, report once after your task: pass, fail or abandoned, never a prompt, code or log. Fields: /docs/api/contributing.md.
  - after: Limited rollout: only for a use ticket from a pattern, starter or formation read. If you have no ticket, do not call it. With one, report once after your task: `worked`, `partly` or `did_not_work`, with an optional short note. The response returns a useful follow-up from indexed content when one exists. No prompt, code or log is stored. Terms: /docs/api/contributing.md.
- 2026-10-02 `get_pattern` changed (description)
  - before: One pattern page (/patterns/{pattern}.md): definition, aliases, when it is hypothesised to fit, failure modes, sources and whether this deployment can execute it. Accepts a pattern identifier or a known alias. May add a second item, a one-time use ticket for `report_outcome` (limited rollout).
  - after: One pattern page (/patterns/{pattern}.md): definition, aliases, when it is hypothesised to fit, failure modes, sources and whether this deployment can execute it. Accepts a pattern identifier or a known alias. Adds a second item with a one-time use ticket and a one-line instruction when this selected read is eligible; `report_outcome` returns useful indexed follow-up after redemption.
- 2026-10-02 `fetch` changed (description)
  - before: Returns the Markdown document of any public page, exactly as HTTP serves it, from a root-relative path (/patterns/supervisor.md) or a https://topologyindex.com URL. Private tenant routes are not reachable here. A pattern, starter or formation read may add a second item, a one-time use ticket for `report_outcome` (limited rollout).
  - after: Returns the Markdown document of any public page, exactly as HTTP serves it, from a root-relative path (/patterns/supervisor.md) or a https://topologyindex.com URL. Private tenant routes are not reachable here. A pattern, starter or formation read may add a second item containing a one-time use ticket and an instruction to call `report_outcome` after applying it; pattern and starter redemptions can return indexed pitfalls, checks or a pairing suggestion.
- 2026-09-27 `search` changed (outputSchema)
- 2026-09-25 `report_outcome` changed (title, description, inputSchema)
  - before: Limited rollout, most agents cannot use this. It only accepts a use ticket from a pattern, starter or formation read (the `Use-Ticket` header or "Report back" note of the page, or the second item of a `fetch` or `get_pattern` result). If you have no ticket, do not call it; nothing else changes. With one, report once after your task what happened: pass, fail or abandoned; send no prompt, code, path or log. Terms: /docs/api/contributing.md.
  - after: Limited rollout: only for a use ticket from a pattern, starter or formation read. If you have no ticket, do not call it. With one, report once after your task: pass, fail or abandoned, never a prompt, code or log. Fields: /docs/api/contributing.md.

Full history: https://api.protogrid.dev/v1/servers/com.topologyindex%2Ftopology-index/changes

## Remotes

- https://topologyindex.com/mcp (streamable-http, auth none, reachable true, uptime30d 0.94285715)

## Packages

_none_

## Tools (6)

- `fetch`: Returns the Markdown document of any public page, exactly as HTTP serves it, from a root-relative path (/patterns/supervisor.md) or a https://topologyindex.com URL. Private tenant routes are not reachable here. A pattern, starter or formation read may add a second item containing a one-time use ticket and an instruction to call `report_outcome` after applying it; a pattern or starter redemption returns a verification checklist, or the pattern to test next when it did not work.
- `get_pattern`: One pattern page (/patterns/{pattern}.md): definition, aliases, when it is hypothesised to fit, failure modes, sources and whether this deployment can execute it. Accepts a pattern identifier or a known alias. Adds a second item with a one-time use ticket and a one-line instruction when this selected read is eligible; `report_outcome` returns useful indexed follow-up after redemption.
- `list_patterns`: The decision guide: where to start by the shape of the task, the pattern to consider next and when to avoid each, plus the pattern families (the `choosing` rows of /patterns/index.md, without the rest of that page). With a family, /patterns/index.md?family={family}: that family’s patterns and the rows that name them. With a domain, /domains/{domain}.md: the task shapes common in that kind of work, their rows, the sources of the published findings tagged with it (never a ranking; each finding in words at /domains/{domain}/findings.md) and its starters. The response includes exact next calls for the listed patterns and starters.
- `list_starters`: The starter formation index (/starters/index.md): unvalidated, unsigned FORMATION.md documents to copy and register privately. With a task class, only the starters that declare it (/starters/index.md?task_class={task_class}). The response includes exact fetch calls for the starter paths.
- `report_outcome`: Limited rollout: only for a use ticket from a pattern, starter or formation read. If you have no ticket, do not call it. With one, report once after your task: `worked`, `partly` or `did_not_work`, with an optional short note. The response returns a useful follow-up from indexed content when one exists. No prompt, code or log is stored. Terms: /docs/api/contributing.md.
- `search`: Keyword search, with common synonyms, over pattern names, aliases and families, the decision guide, the domains, sources and benchmarks of published findings, research, starters and guides. At most 10 results, each a path for `fetch`; canonical pattern results also include the identifier for `get_pattern` and an exact next call. If no page matches every word, pages matching some; if none, the decision guide. Matches text only; never ranks patterns.
