Audit a data file before publishing: one light per figure. Your data never reaches the server.
Maintain this server? Claim it
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.
Published example audits, such as the AI Project Radar, and how the audit works. With no arguments: the overview and the list of examples. With a name: one example, result by result (level filters by light). With a name and an id: one result with every reason and what to change. They are not the person's data.
Figure id inside that example.
Language of the texts. Default en.
Example name from the list, e.g. 'radar'.
Only figures with this light.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http arquestra-audit https://arquestra.dev/api/mcp/audit
Published example audits, such as the AI Project Radar, and how the audit works. With no arguments: the overview and the list of examples. With a name: one example, result by result (level filters by light). With a name and an id: one result with every reason and what to change. They are not the person's data.
| Argument | Type | Description |
|---|---|---|
| id | string | Figure id inside that example. |
| lang | string | Language of the texts. Default en. |
| name | string | Example name from the list, e.g. 'radar'. |
| level | string | Only figures with this light. |
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Figure id inside that example."
},
"lang": {
"enum": [
"en",
"es"
],
"type": "string",
"description": "Language of the texts. Default en."
},
"name": {
"type": "string",
"description": "Example name from the list, e.g. 'radar'."
},
"level": {
"enum": [
"red",
"amber",
"green"
],
"type": "string",
"description": "Only figures with this light."
}
},
"additionalProperties": false
}Opens the audit panel in the chat. Without a spec, the panel receives the person's file, reads it in their browser and returns a profile of it: per column its kind, empty cells, distinct values, the values of categories with their counts, the range of numbers and dates, and the first rows. With a confirmed spec, the panel measures that same file in the browser with measure.py and shows one light per result. The file is not sent to this server.
| Argument | Type | Description |
|---|---|---|
| spec | object | The spec from start_audit, as confirmed by the person. Leave it out to open the panel first, to receive the file. |
| columns | array | Optional: the column names of the file, to check the spec refers to real columns. |
{
"type": "object",
"properties": {
"spec": {
"type": "object",
"description": "The spec from start_audit, as confirmed by the person. Leave it out to open the panel first, to receive the file."
},
"columns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional: the column names of the file, to check the spec refers to real columns."
}
},
"additionalProperties": false
}Returns measure.py with a confirmed spec written in: a fixed Python script (standard library, no network, fixed seeds) that counts what each check needs from a data file and prints those counts with its own fingerprint and no rows. Reads .csv or .json. If the spec has errors, returns the errors instead.
| Argument | Type | Description |
|---|---|---|
| spec* | object | The spec from start_audit, as confirmed by the person. |
| columns | array | Optional: the column names of the file, to check the spec refers to real columns. |
{
"type": "object",
"required": [
"spec"
],
"properties": {
"spec": {
"type": "object",
"description": "The spec from start_audit, as confirmed by the person."
},
"columns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional: the column names of the file, to check the spec refers to real columns."
}
},
"additionalProperties": false
}Turns the output of measure.py into one light per result (red, amber or green, with its reasons), after checking that the output comes from the unchanged script and from the given spec. Shows the lights in the chat and returns them, with a link to the same view on arquestra.dev that carries only codes. Stores nothing.
| Argument | Type | Description |
|---|---|---|
| spec* | object | The same spec sent to prepare_script. |
| output* | string | Everything measure.py printed: the fingerprint line and the measures line. |
{
"type": "object",
"required": [
"spec",
"output"
],
"properties": {
"spec": {
"type": "object",
"description": "The same spec sent to prepare_script."
},
"output": {
"type": "string",
"description": "Everything measure.py printed: the fingerprint line and the measures line."
}
},
"additionalProperties": false
}Proposes how to read a data file for an audit, from its column names (optionally a type and one example value each) and the results the person wants to publish. Returns a proposed spec (the role of each column, each result written as a claim), how claims are written, the catalog of checks and the points the person has to confirm. It receives no rows.
| Argument | Type | Description |
|---|---|---|
| columns* | array | |
| figures | array | The results the person wants to publish, in their words, e.g. 'share of projects per sector'. |
| dataset_name | string |
{
"type": "object",
"required": [
"columns"
],
"properties": {
"columns": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"example": {
"type": "string"
}
},
"additionalProperties": false
},
"maxItems": 200
},
"figures": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 40,
"description": "The results the person wants to publish, in their words, e.g. 'share of projects per sector'."
},
"dataset_name": {
"type": "string"
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 3, 2026.