Developers · ACTA MCP
Give an agent a record it can keep.
ACTA MCP is a hosted Model Context Protocol server. An agent connects over streamable HTTP with OAuth and reads or writes its workspace’s operational record.
Connection
Endpoint and authorization.
https://acta-mcp.ardyn.ai/mcp/.well-known/oauth-protected-resourceacta.read, acta.writeHow access works
An unauthenticated request receives a 401 pointing at the protected-resource metadata; the client then runs the OAuth flow and you sign in with your Ardyn account.
Every call is scoped to the authenticated workspace. Granting acta.write requires a two-factor confirmation.
Clients
Client compatibility.
Clients differ in how they support remote OAuth MCP servers, and the same product can behave differently by plan or workspace settings. Ardyn does not claim that every account of every assistant connects the same way.
Supported path
Clients that implement remote MCP with OAuth discovery and PKCE. The server allowlists the Claude web origins as first-party clients.
Check your client
If your client only supports local (stdio) servers or static API keys, it cannot use the hosted endpoint directly.
No local binary
There is no published local package for ACTA MCP. Use the hosted endpoint.
Tools
Tools in the running release.
Generated from the server source at the commit currently serving acta-mcp.ardyn.ai. Some tools are friendlier names (façades) over others.
| Tool | What it does |
|---|---|
| acta_remember | Façade over acta_commit_memory: store a note. History is append-only; this does not forget anything. |
| acta_recall | Façade over acta_list_memories: inventory stored memory. Not a compiled task bundle — use acta_get_context for that. |
| acta_revise | Façade over acta_supersede: replace an Active claim with a new claim that points at the old one. Not update_fact — retract (unknown) stays a different tool (acta_retire). |
| acta_retire | Façade over acta_retract: mark a claim, intent, or memory unknown without a replacement. Not forget — the retraction stays on chain forever. Pass clm_/int_/mem_ in claim_id or intent_id. |
| acta_get_context | Façade over acta_read_context: compile a signed, trust-labelled context bundle for a task. |
| acta_audit_memory | Façade over acta_get_exclusions: why items were dropped from a compiled bundle. |
| acta_write_intent | Record a durable, versioned intent (a standing goal or boundary) the agent should keep in mind. Returns the intent id + provenance aea. |
| acta_write_claim | Assert a fact into the claim graph: subject-predicate-object with a confidence (basis points, 0-10000). object must be non-empty — a blank string is rejected as empty_object (existence-claims need an explicit object_type). Contradictory claims are resolved at read time. |
| acta_get_state_root | Get the current cognitive state root (a hash committing to all active intents + claims + memory) for the tenant/scope. |
| acta_verify | Verify a provenance aea id against the signed ledger: chain integrity + Ed25519 signatures. |
| acta_answer_lookup | Before doing expensive work for a task, check the verifiable answer cache. Returns 'hit' when a stored answer is still valid under state_root and its volatility bound. A moved state_root evicts the stale entry (evict-on-stale-read, not compare-only). model_id, model_version, session_id and retrieval_params_hash select WHICH cached answer is being asked for — they are part of the key, so a lookup that omits what the put declared (or declares what the put omitted) is a miss, not a match. state_root covers Acta knowledge only; a signed HIT is not proof a world-clock fact is still true. |
| acta_answer_put | After computing a final answer for a task, memoize it. An undeclared put is stored with a bounded ttl, never eternally; pass volatility 'stable' or 'ttl:<seconds>' to choose, or 'session' together with a session_id. model_id, model_version, session_id and retrieval_params_hash become part of the key — pass the same values to acta_answer_lookup or you will not find this answer. On lookup, a moved state_root evicts this entry. Emits a signed receipt; the receipt proves cache validity, not that the fact is true. |
| acta_retract_memory | Retract a memory without deleting it. Emits MemoryRetracted; the compiler skips it. History stays on the chain. memory_id must be mem_; clm_ or int_ returns wrong_entity_type. |
| acta_pin_claim | Budget-pin an Active claim so context compile will not drop it for token budget. Never bypasses Superseded/Retracted/conflict-loss. |
| acta_unpin_claim | Remove a budget pin. Idempotent: unpinning a non-pinned id returns pinned:false and the remaining tenant_pins. |
| acta_list_pins | List budget-pinned claim ids for the tenant. |
| acta_retire_bulk | Compatibility alias for acta_retire_bulk_preview. Always non-mutating; it creates a bulk approval challenge and never executes retirement. |
| acta_retire_bulk_preview | Non-mutating bulk-retire preview. Returns exact memory/claim IDs plus a short-lived bulk_approval_id for human approval. |
| acta_retire_bulk_execute | Execute a previously previewed and human-approved bulk retirement by bulk_approval_id. The server revalidates the approved ID set and consumes the one-time approval. |
| acta_commit_memory | Store a memory (note, observation, document chunk) with tags. It becomes retrievable by semantic similarity in read_context. |
| acta_read_context | Compile a signed context bundle for a task: active intents + resolved claims + semantically-retrieved memory, budget-fitted. The bundle carries a verifiable provenance aea. Call this before acting to ground the agent in durable memory. |
| acta_supersede | Explicitly supersede an Active claim with a new claim (lifecycle). Emits ClaimSuperseded ledger entry before status change. |
| acta_retract | Retract a claim, intent, or memory without replacement (one-way lifecycle). Routes int_ to /v1/intents/retract, mem_ to /v1/memory/retract, clm_ to /v1/claims/retract. |
| acta_get_exclusions | Return a human-readable exclusion manifest, counts, and unresolved-conflict action queue for a compiled bundle. |
| acta_list_memories | List every stored memory as a readable inventory. Paginated (cursor + total). Filter by status=active|retracted|all and tag. Each item includes full text and aea_id for acta_verify. The inventory field is the human-readable listing; silent partial pages are forbidden. |
| acta_context_handoff | Admit a full signed ContextHandoffV1 envelope through the canonical predecessor-checked runtime. Rejected admission leaves current state unchanged. |
| acta_get_context_handoff | Read the authenticated tenant's current admitted ContextHandoffV1 successor state. |
| acta_training_begin | Atomically register a signed DatasetManifestV1 and TrainingPlanV1. ACTA notarizes evidence only; it does not execute training. |
| acta_training_record | Record one signed training artifact selected by artifact_type: checkpoint, run, or evaluation. |
| acta_training_close | Record a signed TrainingOutcomeV1 and optionally a TrainingPromotionV1. Promotion requires training.promote and never makes a model routable. |
| acta_training_lineage | Resolve and verify tenant-scoped training lineage from a checkpoint commitment. |
| acta_training_catalog | Enumerate the authenticated tenant's signed training artifacts (datasets, plans, checkpoints, runs, evaluations, outcomes, promotions) as a complete fixed-snapshot page sequence (GET /v1/training/catalog). Discovery only: returns locators, commitments and relationships, never artifact bytes; per-artifact verification is opt-in; multiple outcomes are all returned with no winner; reads have no cognition side effects. Pass next_cursor with the same filters to continue a snapshot. |
| acta_bind_connection | Register a tenant-managed external connection (POST /v1/connections). Records bind intent only — no vendor call and no authority. Tenant is taken from the authenticated credential, never from tool args. Secrets are references only (credential_handle); material secrets are refused. |
| acta_list_connections | List this tenant's connections (GET /v1/connections). Tenant is taken from the authenticated credential. Another tenant's bindings are never returned. |
| acta_get_connection | Get one connection owned by this tenant (GET /v1/connections/:id). Another tenant's id is not found. |
| acta_unbind_connection | Revoke this tenant's connection binding (DELETE /v1/connections/:id). Terminal and fail-closed. Does not revoke the vendor credential. Tenant is taken from the authenticated credential. |
36 tools · source Kylewilson04/acta crates/acta-mcp/src/tools.rs at f69ab724bec0.