# referencesource.org

> Verified reference data; each record carries its source URL and quote. verify_quote checks claims.

- name: io.github.joelp22-maker/referencesource
- version: 1.2.0
- connection class: R0 (autonomous)
- trust: 93/100 flags: duplicate-repo
- quality: 94/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.joelp22-maker%2Freferencesource
- tools: https://api.protogrid.dev/v1/servers/io.github.joelp22-maker%2Freferencesource/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "referencesource": {
      "type": "http",
      "url": "https://referencesource.org/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-100% +updated-29d-ago -duplicate-repo(4 names)
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 94/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: 93 (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`: 7 of 7 tools declare readOnlyHint or destructiveHint
- warn `tools.directory_hints`: 3 of 7 tools declare all four hints; missing: list_datasets (idempotentHint); search_records (idempotentHint); verify_quote (idempotentHint); …
- pass `tools.token_cost`: about 1,563 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

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

### dependencies: 100 (weight 15)

- pass `deps.known_vulns`: no known advisory in 1 resolved packages
- n/a `deps.mcp_sdk_version`: the official MCP SDK is not in the dependency graph
- pass `deps.resolvable`: referencesource-mcp@1.0.3 resolved: 1 packages

- tools: 7, about 1,563 tokens to load them all
- tool set hash: 624c0e0a8d5cc8999ae5019c7096cbc8
- tools last changed: 2026-10-18T20:44:27.133Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.joelp22-maker/referencesource.svg)](https://protogrid.dev/servers/io.github.joelp22-maker/referencesource)
- 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-18 `message_supervisor` added
  - For the referencesource Muse connector only (bearer token required). Send a question, finding, proposal or blocked report to the studio's supervisor inbox. Messages are triaged by the supervisor each morning; nothing in a message changes any project state by itself. Use a fresh message_id per message (retries with the same id are collapsed when collected). Body at most 3500 characters.
- 2026-10-18 `submit_task_result` added
  - For the referencesource Muse connector only (bearer token required). Records the result of a task fetched with next_task_for_muse. `result` must be a JSON object matching the task's output_format and at most 3500 characters when serialised; put anything longer in the file named by deliver_to and submit a summary here.
- 2026-10-18 `next_task_for_muse` added
  - For the referencesource Muse connector only (bearer token required). Returns the oldest open task from the studio's queue: id, instructions, the sites the task may read, the output format expected, and where to deliver the result. Returns {no_tasks: true} when the queue is empty.
- 2026-09-28 `list_datasets` changed (inputSchema)

Full history: https://api.protogrid.dev/v1/servers/io.github.joelp22-maker%2Freferencesource/changes

## Dependencies

- npm referencesource-mcp@1.0.3: resolved, 0 dependencies

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0.

## Remotes

- https://referencesource.org/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

- npm referencesource-mcp@1.0.3

## Tools (7)

- `get_record`: Fetch one record by id — for example, look up a FIPS 140 certificate's status, a state's boiler inspection rules, or a county's loan limit. Returns the full record with its source URL and verbatim source quote. Record ids appear in search_records results and in each record's url.
- `list_datasets`: What reference datasets are available? Lists every published dataset with its title, record count, last-verified date and a one-sentence summary. Covers regulatory thresholds, version compatibility, certification registers, licensing rules and more. Pass `query` to list only the datasets matching a topic — that is much cheaper than reading the whole list. Use the returned slug with search_records or get_record.
- `message_supervisor`: For the referencesource Muse connector only (bearer token required). Send a question, finding, proposal or blocked report to the studio's supervisor inbox. Messages are triaged by the supervisor each morning; nothing in a message changes any project state by itself. Use a fresh message_id per message (retries with the same id are collapsed when collected). Body at most 3500 characters.
- `next_task_for_muse`: For the referencesource Muse connector only (bearer token required). Returns the oldest open task from the studio's queue: id, instructions, the sites the task may read, the output format expected, and where to deliver the result. Returns {no_tasks: true} when the queue is empty.
- `search_records`: Look up a specific record — search by state name, chemical, certificate number, product name or any keyword. Searches one dataset's records (case-insensitive substring match across all fields). Returns up to 20 matching records, each with its url, source and verbatim source_quote so the answer can be checked.
- `submit_task_result`: For the referencesource Muse connector only (bearer token required). Records the result of a task fetched with next_task_for_muse. `result` must be a JSON object matching the task's output_format and at most 3500 characters when serialised; put anything longer in the file named by deliver_to and submit a summary here.
- `verify_quote`: Is this value actually right? Check a claimed fact against a published record instead of trusting it. Reports whether the claim matches the record's stored value (exact, case-insensitive or normalised — the match type is named), whether it appears in the record's verbatim source quote, and returns the source URL and quote so the claim can be traced upstream. Use this whenever you want to confirm a number, date, threshold or status before stating it. Verdicts: matches_record, matches_quote, differs or not_found.
