Docs · Start Overview Choose the right entry point and understand the pre-alpha boundary. Docs · Start Getting started Install the pinned toolchain and validate the repository locally. Docs · Start Core contract examples Compile the first Agent, typed Tool, Model stream, and explicit protocol mapping without runtime dependencies. Docs · Start Typed Agent Generate and pin typed schemas, then bind the first-party OpenAI and Anthropic adapters. Docs · Start In-process Agent Run a typed Agent without HTTP while preserving PostgreSQL durability, authorization, recovery, and owned roles. Docs · Start Durable admission Atomically commit authenticated intent, database time, the first event, and the initial checkpoint. Docs · Start Durable runs and results Submit with a durable ingress key, recover the original run, and read a verified public result. Docs · Understand Compile a graph Build a schema-pinned graph, validate its topology, and freeze its canonical digest. Docs · Understand Subgraphs and loops Compose shared-state subgraphs, finite loops, and explicit recovery-safe return paths. Docs · Understand Skill composition Choose capability bundles, shared-state subgraphs, durable child runs, and guarded MCP Skills without creating a second runtime. Docs · Understand Durability model Learn how journal, checkpoint, lease, fence, and recovery evidence fit together. Docs · Understand Durable Graph runtime Register exact executable code, replay noninitial state, and drive deterministic bounded sibling batches under one fence. Docs · Understand Durable Agent Loop Commit lifecycle handoffs and execute one tenant-scoped durable scheduling quantum. Docs · Understand Durable invocations Execute exact model and tool attempts with durable starts, staged ordered Tool coordination, streaming validation, and no-dispatch terminal recovery. Docs · Understand Provider-native Agent Compile and operate the durable multi-turn graph with bounded output repair, ordered parallel read-only Tools, write barriers, policy, accounting, and cancellation evidence. Docs · Integrate Local Rust Tools Generate digest-pinned schemas, register typed local code, and preserve the durable invocation boundary. Docs · Integrate AgentService v1 Authorize and expose exact durable Agent revisions through the versioned embedding boundary. Docs · Integrate Agent HTTP v1 Submit, recover, read and cancel through authenticated bounded JSON HTTP. Docs · Integrate General MCP Tool client Discover and call bounded stateless MCP 2026-07-28 Tools with JSON/SSE, OAuth, custom headers, and mediated MRTR. Docs · Integrate MCP OAuth client Bind one MCP resource to challenge-driven discovery, PKCE, issuer validation, durable credentials, and bounded replay. Docs · Integrate MCP Remote Tool Bind one strict stateless MCP 2026-07-28 Tool with pinned identity, schemas, durable dispatch, and reconciliation. Docs · Integrate MCP Server profile Expose bounded Tools, Resources, Prompts, Completion, and MRTR behind the strict stateless production boundary. Docs · Integrate MCP Skills Publish and activate Final SEP-2640 static Skills with immutable manifests, origin-scoped approval, and verified lazy reads. Docs · Integrate MCP conformance status See the frozen official runner inventory, implemented evidence, and exact boundary of current MCP claims. Docs · Integrate A2A 1.0 Client Discover and pin one agent, call all eleven operations, and reconcile durable unknown sends only through attested remote guarantees. Docs · Integrate Durable artifact storage Materialize terminal A2A parts into immutable PostgreSQL metadata and private integrity-checked object bytes. Docs · Integrate A2A 1.0 Server Expose bounded HTTP+JSON and JSON-RPC/SSE through identity-first policy and a durable service contract. Docs · Integrate A2A conformance status Inspect the frozen official TCK, audited harness patch, exact result, and server-only claim boundary. Docs · Operate Fair scheduling Configure replica-safe weighted tenant selection, exact starvation bounds, rollout, and retention. Docs · Operate PostgreSQL provider Configure, migrate, verify, and test the implemented durability provider. Docs · Operate Host qualification Record bounded capacity, recovery and fault evidence without turning CI into a production SLO claim. Docs · Project Versioning and releases Pin the public alpha exactly and understand compatibility, MSRV, durable-data, and release gates. Docs · Project Implementation status See what is implemented, in progress, and deliberately not claimed. Home Architecture map What exists, what is active, and what remains planned. Home Current cut Implemented slices and explicit gaps. Home Roadmap The path from contracts to a qualified v1. Repository Source code StateKnot/StateKnot on GitHub. Repository RFCs Draft architecture and durable execution contracts. Repository Security policy Private vulnerability reporting and support policy.
↑↓ navigate ↵ open 39 results

Pre-alpha documentation

Bind one MCP Tool without weakening durability.

Discover a stateless MCP 2026-07-28 Tool once, pin its identity and schemas locally, and preserve ambiguous write outcomes.

Accept one deliberately narrow profile

Transport
Verified HTTPS in production; literal-loopback HTTP only for managed sidecars and tests. Redirects, HTTP retries, sessions, and SSE fail closed.
Discovery
One modern discovery at startup, bounded Tool catalog paging, exact protocol version, required Tools capability, and pinned self-reported server name/version.
Schemas
Remote input/output JSON Schemas must exactly match RFC 8785 canonical bytes in the authoritative local registry. Remote annotations never define local risk or policy.
Results
Complete structured content only, bounded and validated locally. The current profile rejects artifact, image, audio, embedded-resource, and resource-link materialization.

Freeze the binding at readiness

Build the local ToolDescriptor from reviewed configuration. A server upgrade or schema change requires a new binding; runtime calls never rediscover silently.

Rust · startup discovery
let adapter = McpRemoteTool::connect(
    local_descriptor,
    "lookup_issue",
    ProviderEndpoint::https("https://mcp.example.com/v1/")?,
    McpServerIdentity::new("issue-service", "2026.09.0")?,
    Arc::new(schema_registry),
    Arc::new(authorization_provider),
    McpHttpOptions::default(),
)
.await?;

TLS authenticates the configured endpoint. The discovered implementation name/version is self-reported metadata: pinning detects drift, but does not replace mTLS or an authenticated gateway when stronger server identity is required.

Resolve secrets per admitted attempt

Multi-tenant deployments should implement McpAuthorizationProvider over vault-backed handles. The adapter waits for its call gate before resolving attempt credentials, redacts authorization from Debug, clears the slot after exchange, and never copies credentials into MCP metadata. Static bearer authorization is intended only for controlled single-tenant bindings.

Keep a lost write ambiguous

  1. Validate locally

    Reject input outside the pinned schema before network dispatch.

  2. Call once

    Each admitted durable attempt sends one tools/call.

  3. Do not invent success

    If a locally declared write loses its response, return Unknown external effect, AmbiguousExternalOutcome, and ReconcileFirst.

  4. Validate the result

    Accept only complete structured output that passes the pinned local output schema.

Reconcile without calling the Tool again

A trusted worker or operations boundary may convert an exact Unknown physical attempt into a validated result or error. The runtime binds the evidence to the invocation and attempt, validates result JSON against the frozen local schema, and commits a distinct audit event in one fenced PostgreSQL transaction. It never resolves or dispatches the Tool provider.

Rust · authoritative reconciliation
let reconciliation = ToolReconciliationHandoff::result(
    live_fence,
    unknown_invocation,
    reconciliation_event_id,
    authoritative_result,
)?;

match executor.commit_tool_reconciliation(reconciliation).await? {
    ToolReconciliationOutcome::Committed { .. } => acknowledge(),
    ToolReconciliationOutcome::Idempotent { .. } => acknowledge(),
}

Exact retries are idempotent. A handoff retains its authoritative evidence across persistence failures and can be rebound only to a new live fence for the same run.

Record a confirmed failure without resending the write

The privileged stateknot_reconcile_tool_error_v1 operations Tool requires its own stateknot:reconcile-error scope and current resource/evidence authorization. It accepts only confirmed not_applied or applied effects for the exact original Unknown attempt and atomically records Failed with an authorization audit. Unknown or partial effects remain unresolved.

The host fixes RetryAdvice::Never. Not applied does not mean execution never started, no charges, or safe retry. Lost responses recover the same receipt from the identical request; success/failure races have one winner. The existing success-result Tool and its scope remain separate. This does not settle provider charges or complete production acceptance.

Follow the failure reconciliation integration and incident guide for host registration, closed request fields, evidence verification and PostgreSQL 16/17 qualification.

Know what this profile rejects

  • Stateful sessions, SSE, legacy initialization, and reconnect.
  • MRTR, Tasks, incomplete results, progress, and artifact content.
  • Tools requiring StateKnot idempotency-key injection; generic MCP has no safe standard carrier for that durable key.
  • Server behavior, Resource/Prompt clients, roots, sampling, elicitation, logging, and MCP Apps. The separate Server profile does not broaden this strict Remote Tool contract.

Run the profile and durable contracts

Shell · MCP contract and real PostgreSQL recovery
cargo test -p stateknot-integrations --test mcp_contract --locked
cargo test -p stateknot-integrations --test mcp_durable --locked -- --test-threads=1

The suite proves discovery order, identity/schema pinning, credential headers, annotation distrust, pre-registration drift rejection, and ambiguous lost writes. The PostgreSQL 16/17 matrix additionally proves durable-before-dispatch state, a lost write response, Unknown, duplicate suppression, authoritative reconciliation, and one physical network call. Read the full profile and operations contract and the frozen MCP conformance status. StateKnot does not claim complete official MCP client or server conformance.