Verified reference data; each record carries its source URL and quote. verify_quote checks claims.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh 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.
This tool takes no arguments.
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.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| record_id* | string | The record's id field, e.g. "ak". |
| dataset_slug* | string | Dataset slug from list_datasets. |
{
"type": "object",
"required": [
"dataset_slug",
"record_id"
],
"properties": {
"record_id": {
"type": "string",
"description": "The record's id field, e.g. \"ak\"."
},
"dataset_slug": {
"type": "string",
"description": "Dataset slug from 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.
| Argument | Type | Description |
|---|---|---|
| full | boolean | Return each dataset's complete scope statement instead of the first sentence. Off by default: the full text is roughly four times the size and is rarely needed to choose a dataset. |
| query | string | Optional topic filter, e.g. "boiler", "tariff" or "loan limit". Case-insensitive substring, matched against each dataset's slug, title and full description; if that phrase matches nothing, the words are matched separately and the answer says so in `matched_on`. Omit it to list every dataset. |
{
"type": "object",
"properties": {
"full": {
"type": "boolean",
"description": "Return each dataset's complete scope statement instead of the first sentence. Off by default: the full text is roughly four times the size and is rarely needed to choose a dataset."
},
"query": {
"type": "string",
"description": "Optional topic filter, e.g. \"boiler\", \"tariff\" or \"loan limit\". Case-insensitive substring, matched against each dataset's slug, title and full description; if that phrase matches nothing, the words are matched separately and the answer says so in `matched_on`. Omit it to list every dataset."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| body* | string | Markdown, at most 3500 characters. |
| kind* | string | |
| subject* | string | At most 120 characters. |
| task_id | string | Optional: the queued task this is about. |
| message_id* | string | Client-generated id, e.g. a UUID; the same id sent twice is kept once. |
{
"type": "object",
"required": [
"message_id",
"kind",
"subject",
"body"
],
"properties": {
"body": {
"type": "string",
"description": "Markdown, at most 3500 characters."
},
"kind": {
"enum": [
"question",
"finding",
"proposal",
"blocked"
],
"type": "string"
},
"subject": {
"type": "string",
"description": "At most 120 characters."
},
"task_id": {
"type": "string",
"description": "Optional: the queued task this is about."
},
"message_id": {
"type": "string",
"description": "Client-generated id, e.g. a UUID; the same id sent twice is kept once."
}
},
"additionalProperties": false
}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.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| query* | string | Substring to match, case-insensitive, e.g. a state code, chemical name or standard number. |
| dataset_slug* | string | Dataset slug from list_datasets, e.g. "graduated-driver-licensing". |
{
"type": "object",
"required": [
"dataset_slug",
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Substring to match, case-insensitive, e.g. a state code, chemical name or standard number."
},
"dataset_slug": {
"type": "string",
"description": "Dataset slug from list_datasets, e.g. \"graduated-driver-licensing\"."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| note | string | Optional: what was hard, what was skipped, what a human should know. |
| result* | object | The result, matching the task's output_format. |
| status* | string | |
| task_id* | string | The id returned by next_task_for_muse. |
{
"type": "object",
"required": [
"task_id",
"status",
"result"
],
"properties": {
"note": {
"type": "string",
"description": "Optional: what was hard, what was skipped, what a human should know."
},
"result": {
"type": "object",
"description": "The result, matching the task's output_format."
},
"status": {
"enum": [
"done",
"blocked",
"needs_info"
],
"type": "string"
},
"task_id": {
"type": "string",
"description": "The id returned by next_task_for_muse."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| field | string | Field name to check the claim against, e.g. "limit_1_unit". Without it, every stored field is checked. |
| record_id | string | The record's id, if known (shown in search_records results and in each record's url). Without it, the dataset's stored values are searched for the claimed value. |
| dataset_slug* | string | Dataset slug from list_datasets. |
| claimed_value* | string | The value to check, exactly as claimed, e.g. "$832,750" or "no passengers younger than 21". |
{
"type": "object",
"required": [
"dataset_slug",
"claimed_value"
],
"properties": {
"field": {
"type": "string",
"description": "Field name to check the claim against, e.g. \"limit_1_unit\". Without it, every stored field is checked."
},
"record_id": {
"type": "string",
"description": "The record's id, if known (shown in search_records results and in each record's url). Without it, the dataset's stored values are searched for the claimed value."
},
"dataset_slug": {
"type": "string",
"description": "Dataset slug from list_datasets."
},
"claimed_value": {
"type": "string",
"description": "The value to check, exactly as claimed, e.g. \"$832,750\" or \"no passengers younger than 21\"."
}
}
}