Skip to content

referencesource.org

by joelp22-maker · remote · local (npm) · no sign-in to list tools · v1.2.0 · published by GitHub user joelp22-maker

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

Changes · 5

8 tools: 5 change things and 3 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http referencesource https://referencesource.org/mcp

Findings

Matches of fixed checks, with the text they matched.

1 info

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

8 tools

Changes things 5Claude Code: ask
  • brief_for_joeFor the referencesource Muse connector only (bearer token required).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    For the referencesource Muse connector only (bearer token required). The studio's latest plain-English daily brief: what was decided, what landed, and the items waiting on Joe, each as the task, why it matters and the steps. Read-only; regenerated each morning by tools/brief.py and published with the next deploy, so it can lag the phone push.

    Annotations the server declares

    • title: Daily brief for Joe
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • message_supervisorFor the referencesource Muse connector only (bearer token required).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Message the supervisor
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • next_task_for_museFor the referencesource Muse connector only (bearer token required).1 finding

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    Findings

    • Info

      The description mentions "credential".

      Matched text

      description: "...osts where the task may sign in, with a credential already in Muse's own store; empty mean..."

      What this check looks for
    Description, as the server wrote it
    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. login_allowed lists the hosts where the task may sign in, with a credential already in Muse's own store; empty means read-only, never sign in.

    Annotations the server declares

    • title: Next task for Muse
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • submit_task_resultFor the referencesource Muse connector only (bearer token required).No findings

    Why it is in this group

    • The name "submit_task_result" says "submit": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Submit a task result
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: false
  • verify_quoteIs this value actually right?No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Check a claimed value against a record
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
Only reads 3Claude Code: allow
  • get_recordFetch 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.No findings

    Why it is in this group

    • The name "get_record" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Get one record by id
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • list_datasetsWhat reference datasets are available?No findings

    Why it is in this group

    • The name "list_datasets" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List reference datasets
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • search_recordsLook up a specific record — search by state name, chemical, certificate number, product name or any keyword.No findings

    Why it is in this group

    • The name "search_records" says "search": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Search records in a dataset
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.2.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http referencesource https://referencesource.org/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__referencesource__list_datasets",
      "mcp__referencesource__search_records",
      "mcp__referencesource__get_record"
    ],
    "ask": [
      "mcp__referencesource__verify_quote",
      "mcp__referencesource__next_task_for_muse",
      "mcp__referencesource__submit_task_result",
      "mcp__referencesource__brief_for_joe",
      "mcp__referencesource__message_supervisor"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as referencesource. Review it before you use it.