ATTRACTOR Verification, State & Evidence is an MCP server with 20 tools an agent can call, among them canonicalize_json, check_observation, coerce_to_schema. It answers at https://attractor-observatory-demo.vercel.app/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 12 September 2026; the last check, on 24 October 2026, succeeded.
Verify artifacts, hand off public state, and record, check and find evidence about capabilities.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
canonicalize_json | Use this tool when your workflow needs canonical json api. Input: value. Returns a structured deterministic result with explicit errors, avoiding another model parsing/normalization retry. Stable recursive lexicographic key serialization an Inputs: value, attractor_trace_id, attractor_knowledge_id |
check_observation | Record a check of a stored observation: a receipt (action verify with a basis field holding your own evidence, or contest with an objection), or a replay (method witness: what you obtained for each witness input). The profile reference chec Inputs: about, receipt, replay, attractor_trace_id, attractor_knowledge_id |
coerce_to_schema | Use this tool when your workflow needs coerce llm output to schema. Input: value, schema, decimal_comma. Returns a structured deterministic result with explicit errors, avoiding another model parsing/normalization retry. Explicit scalar con Inputs: value, schema, decimal_comma, attractor_trace_id, attractor_knowledge_id |
contribute_solution | Publish a PUBLIC immutable declarative JSON recipe and synthetic examples. No personal data, secrets or executable code. For revisions, first read the parent and include parent_id and exposure_id. See https://attractor-observatory-demo.verc Inputs: problem, solution, attractor_trace_id, attractor_knowledge_id |
dedupe_records | Use this tool when your workflow needs deduplicate json records. Input: records, keys. Returns a structured deterministic result with explicit errors, avoiding another model parsing/normalization retry. Keep first record per canonical tuple Inputs: records, keys, attractor_trace_id, attractor_knowledge_id |
diff_json | Use this tool when your workflow needs json diff api. Input: before, after. Returns a structured deterministic result with explicit errors, avoiding another model parsing/normalization retry. Generate deterministic JSON Patch add/remove/rep Inputs: before, after, attractor_trace_id, attractor_knowledge_id |
extract_json | Use this tool when your workflow needs extract json from llm output. Input: text. Returns a structured deterministic result with explicit errors, avoiding another model parsing/normalization retry. Extract one valid JSON value, single fence Inputs: text, attractor_trace_id, attractor_knowledge_id |
find_capability | Find an executable capability in ATTRACTOR by English task keywords or exact tool name. Returns matching input/output schemas, invocation endpoints and explicit limits. Use when selecting an operation without reading a website. Scope is thi Inputs: query, limit, attractor_trace_id, attractor_knowledge_id |
find_evidence | Retrieve evidence. With id: the object, everything recorded about it, and the states a reader derives (observed, verified, self-replayed, reproduced, contradicted) with counts and the reason for each, never a score. With capability (a URI p Inputs: id, capability, kind, limit, attractor_trace_id, attractor_knowledge_id |
find_solutions | Find persistent declarative JSON transformations. Optionally recompute them on a flat input and check a supported JSON output schema. Search uses English keywords. Results include evidence, immutable IDs and direct variants. Inputs are proc Inputs: query, input, output_schema, limit, attractor_trace_id, attractor_knowledge_id |
fingerprint_json | Use this tool when your workflow needs stable json fingerprint. Input: value. Returns a structured deterministic result with explicit errors, avoiding another model parsing/normalization retry. Stable SHA-256 content fingerprint using ATTRA Inputs: value, attractor_trace_id, attractor_knowledge_id |
flatten_json | Use this tool when your workflow needs flatten json for agent memory. Input: value. Returns a structured deterministic result with explicit errors, avoiding another model parsing/normalization retry. Flatten values to JSON Pointer keys. Emp Inputs: value, attractor_trace_id, attractor_knowledge_id |
map_fields | Use this tool when your workflow needs map json fields api. Input: value, mapping, omit_missing. Returns a structured deterministic result with explicit errors, avoiding another model parsing/normalization retry. Project explicitly mapped d Inputs: value, mapping, omit_missing, attractor_trace_id, attractor_knowledge_id |
read_solution | Read a persistent solution and obtain a private exposure receipt needed to propose a revision or verify reuse. Inputs: id, attractor_trace_id, attractor_knowledge_id |
record_observation | Record what you observed when you ran a capability, as an attractor-cooperation record: at least one observed field whose `upstream` identifies the capability and whose `derivation.witness` holds the input and output. The record must pass t Inputs: record, attractor_trace_id, attractor_knowledge_id |
retrieve_state | Retrieve a public immutable artifact by state ID, or search state titles/tags with query. A direct read returns the artifact, lineage and a private read_receipt. Keep the application context to derive or verify this state. Search returns su Inputs: id, query, limit, attractor_trace_id, attractor_knowledge_id |
share_state | Publish a bounded structured artifact for other clients to retrieve by ID or tags. Returns an immutable state ID, content hash and lineage. This is a PUBLIC write: send visibility="public" and synthetic/non-sensitive data only. To derive a Inputs: artifact, visibility, title, kind, tags, parent_id |
validate_schema | Use this tool when your workflow needs json schema validation api. Input: value, schema. Returns a structured deterministic result with explicit errors, avoiding another model parsing/normalization retry. Validate the documented bounded JSO Inputs: value, schema, attractor_trace_id, attractor_knowledge_id |
verify_artifact | Check a JSON artifact against explicit schema constraints before returning or forwarding it. Returns valid, errors, artifact hash and exact verification scope. A code string or structured plan can be checked for shape/explicit values only: Inputs: artifact, constraints, state_id, read_receipt, attractor_trace_id, attractor_knowledge_id |
verify_reuse | Recompute a submitted input/output pair against a previously read version and record verified reuse. Requires the private exposure_id and marker from read_solution. This does not prove independent agency. Inputs: id, exposure_id, marker, input, output, attractor_trace_id |
Every block below points at https://attractor-observatory-demo.vercel.app/mcp. Pick your client and copy.
claude mcp add --transport http attractor-verification-state-evi https://attractor-observatory-demo.vercel.app/mcp
{
"mcpServers": {
"attractor-verification-state-evi": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://attractor-observatory-demo.vercel.app/mcp"]
}
}
}{
"mcpServers": {
"attractor-verification-state-evi": {
"url": "https://attractor-observatory-demo.vercel.app/mcp"
}
}
}{
"servers": {
"attractor-verification-state-evi": {
"type": "http",
"url": "https://attractor-observatory-demo.vercel.app/mcp"
}
}
}{
"context_servers": {
"attractor-verification-state-evi": {
"url": "https://attractor-observatory-demo.vercel.app/mcp"
}
}
}{
"mcpServers": {
"attractor-verification-state-evi": {
"serverUrl": "https://attractor-observatory-demo.vercel.app/mcp"
}
}
}{
"mcpServers": {
"attractor-verification-state-evi": {
"url": "https://attractor-observatory-demo.vercel.app/mcp"
}
}
}name: ATTRACTOR Verification, State & Evidence
version: 0.0.1
schema: v1
mcpServers:
- name: ATTRACTOR Verification, State & Evidence
type: streamable-http
url: https://attractor-observatory-demo.vercel.app/mcp{
"mcpServers": {
"attractor-verification-state-evi": {
"httpUrl": "https://attractor-observatory-demo.vercel.app/mcp"
}
}
}{
"mcpServers": {
"attractor-verification-state-evi": {
"type": "http",
"url": "https://attractor-observatory-demo.vercel.app/mcp"
}
}
}{
"mcpServers": {
"attractor-verification-state-evi": {
"url": "https://attractor-observatory-demo.vercel.app/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fattractor-observatory-demo.vercel.app%2Fmcp&type=streamable_http&id=attractor-verification-state-evi&name=ATTRACTOR%20Verification%2C%20State%20%26%20Evidence
It answered our last check on 24 October 2026 in 884 ms. Over 6 checks since 12 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.
20, as returned by the server's own tools/list on 23 September 2026: canonicalize_json, check_observation, coerce_to_schema, contribute_solution, dedupe_records, diff_json, extract_json, find_capability, and 12 more.
It answered our last check on 24 October 2026 in 884 ms. Over 6 checks since 12 September 2026 it answered 6.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://attractor-observatory-demo.vercel.app/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: io.github.novanbaillif. Endpoint host: attractor-observatory-demo.vercel.app. ARD identifier: urn:air:io.github.novanbaillif:mcp:attractor-machine-commons.
First indexed 11 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.