文档 · 开始 文档概览 选择正确的阅读入口,并了解当前 pre-alpha 边界。 文档 · 开始 快速开始 安装锁定的工具链,并在本地验证仓库。 文档 · 开始 Core 合约示例 无需 Runtime 依赖,编译首个 Agent、类型化 Tool、Model Stream 与显式协议映射。 文档 · 开始 强类型 Agent 生成并固定类型化 Schema,再绑定第一方 OpenAI 与 Anthropic Adapter。 文档 · 开始 进程内 Agent 无需 HTTP 运行强类型 Agent,同时保留 PostgreSQL 持久化、鉴权、恢复与自持有角色。 文档 · 开始 持久化准入 原子提交已认证 Intent、数据库时间、首 Event 与初始 Checkpoint。 文档 · 开始 可恢复 Run 与 Result 使用持久化 Ingress Key 提交、恢复原 Run,并读取经过验证的公开 Result。 文档 · 理解 编译确定性 Graph 构建 Schema-pinned Graph,验证拓扑,并冻结 Canonical Digest。 文档 · 理解 子图与循环 组合共享状态子图、有界循环与能够在中断后恢复的显式返回路径。 文档 · 理解 Skill 组合 在能力包、共享状态子图、持久子 Run 与受保护 MCP Skill 之间选择,不创建第二套 Runtime。 文档 · 理解 持久执行模型 理解 Journal、Checkpoint、Lease、Fence 与恢复证据如何协同。 文档 · 理解 可恢复 Graph Runtime 注册精确可执行代码、重放非初始状态,并在一个 Fence 下驱动确定性有界 Sibling Batch。 文档 · 理解 可恢复 Agent Loop 提交 Lifecycle Handoff,并执行一个 Tenant-scoped 可恢复调度 Quantum。 文档 · 理解 可恢复调用执行 通过持久化 Start、分阶段有序 Tool Coordination、Streaming 校验与 No-dispatch Terminal Recovery 执行精确 Model/Tool Attempt。 文档 · 理解 Provider-native Agent 编译并运维支持有界 Output Repair、有序 Parallel Read-only Tool 与 Write Barrier 的可恢复多轮 Graph,并固定 Policy、Accounting 与 Cancellation Evidence。 文档 · 集成 本地 Rust Tool 生成 Digest-pinned Schema、注册强类型本地代码,并保留持久执行边界。 文档 · 集成 AgentService v1 通过带版本的嵌入式边界授权并暴露精确版本的可恢复 Agent。 文档 · 集成 Agent HTTP v1 通过经过认证、有资源上限的 JSON HTTP 接口提交、找回、读取与取消 Agent。 文档 · 集成 通用 MCP Tool Client 通过 JSON/SSE、OAuth、Custom Header 与受控 MRTR 发现和调用有界 Stateless MCP 2026-07-28 Tool。 文档 · 集成 MCP OAuth Client 将一个 MCP Resource 绑定到 Challenge-driven Discovery、PKCE、Issuer 校验、持久化 Credential 与有界 Replay。 文档 · 集成 MCP Remote Tool 固定 Identity、Schema、可恢复 Dispatch 与 Reconciliation,绑定严格 Stateless MCP 2026-07-28 Tool。 文档 · 集成 MCP Server Profile 在严格 Stateless 生产边界后暴露有界 Tools、Resources、Prompts、Completion 与 MRTR。 文档 · 集成 MCP Skills 通过不可变 Manifest、Origin-scoped 审批与校验后延迟读取发布并激活 Final SEP-2640 静态 Skill。 文档 · 集成 MCP Conformance 状态 查看冻结的官方 Runner 清单、已实现证据与当前 MCP 声明的精确边界。 文档 · 集成 A2A 1.0 Client 发现并固定一个 Agent,调用全部 11 个 Operation,并只依据已背书的远端保证对持久化 Unknown Send 执行 Reconciliation。 文档 · 集成 Artifact 持久化存储 将 Terminal A2A Part 物化为不可变 PostgreSQL Metadata 与私有、经过完整性校验的 Object Bytes。 文档 · 集成 A2A 1.0 Server 通过 Identity-first Policy 与可恢复 Service 合约暴露有界 HTTP+JSON 和 JSON-RPC/SSE。 文档 · 集成 A2A Conformance 状态 查看冻结的官方 TCK、已审计 Harness Patch、精确结果与 Server-only 声明边界。 文档 · 运维 公平调度 配置 Replica-safe 加权 Tenant Selection、精确 Starvation Bound、Rollout 与 Retention。 文档 · 运维 PostgreSQL Provider 配置、迁移、校验并测试已实现的持久化 Provider。 文档 · 运维 宿主验证 记录有界容量、恢复与故障证据,避免把 CI 结果误写成生产 SLO。 文档 · 项目 版本与发布 精确固定公共 Alpha,并理解兼容性、MSRV、持久化数据与发布门禁。 文档 · 项目 实现状态 区分已经实现、正在开发和明确尚未支持的能力。 首页 架构图 查看已经实现、正在开发和规划中的边界。 首页 当前实现 已经实现的切片与明确缺口。 首页 路线图 从合约走向可验证 v1 的开发顺序。 仓库 源代码 StateKnot/StateKnot on GitHub. 仓库 RFCs 架构与持久执行合约草案。 仓库 安全策略 私密漏洞报告与支持策略。
↑↓ 选择 ↵ 打开 39 项结果

Pre-alpha 文档

安全调用一个 Stateless MCP Tool。

连接有界 StateKnot MCP 2026-07-28 Tool Client,理解 Trust Boundary,处理 MRTR,并复现固定官方证据。

选择正确的 MCP 边界

McpClient
动态互操作:发现有界 Tool Catalog、保留不可信 Wire Schema、调用 Tool、 接收 Request-scoped SSE,并由 Host 介入 Multi-round Input。
McpRemoteTool
需要恢复与结果核对的外部副作用:固定已审核 Server/Input/Output Identity,先提交 Dispatch Evidence,保留不确定 Write,并在不 Redispatch 的前提下 Reconcile。

发现并调用一个 Tool

生产 Endpoint 强制 HTTPS。每个 Stateless POST 都独立解析 Authorization, 因此生产 Provider 可以轮换 Credential。不要把 Secret 放入 Endpoint URL、 Request Metadata 或 Log。

Rust · 通用 Tool Client
use std::sync::Arc;

use serde_json::json;
use stateknot_integrations::{
    ApiKey, McpClient, McpClientIdentity, McpClientOptions,
    McpToolCall, ProviderEndpoint, StaticMcpBearerAuthorization,
};

let client = McpClient::connect(
    ProviderEndpoint::https("https://mcp.example.com/mcp/")?,
    McpClientIdentity::new("inventory-agent", "1.0.0")?,
    Arc::new(StaticMcpBearerAuthorization::new(
        ApiKey::new(std::env::var("MCP_TOKEN")?)?,
    )),
    McpClientOptions::default(),
)
.await?;

let catalog = client.list_tools().await?;
let tool = catalog.find("inventory_lookup").ok_or("Tool unavailable")?;
let response = client.call_tool(tool, json!({ "sku": "STK-001" })).await?;

match response.into_outcome() {
    McpToolCall::Complete(result) => println!("{}", result.content().len()),
    McpToolCall::InputRequired(pending) => {
        // 把每个请求路由到可信 Host 子系统,绝不自动批准。
        println!("{} inputs required", pending.input_requests().len());
    }
    _ => return Err("unsupported future outcome".into()),
}

依赖 Catalog 形态前先检查 rejected_tools()。无效 x-mcp-header Descriptor 会被单独排除,永远不可调用,也不会隐藏 有效 Sibling。

始终把 Discovery 与 Output 视为不可信

  • Tool Description、Annotation、Schema、Content、Structured Content、 Notification 与 Server Instruction 都不会自动授予权限。
  • Network $ref 会被保留但绝不 Dereference;执行本地 Validation 前必须应用 Offline Allowlist Schema Policy。
  • String、Integer、Boolean x-mcp-header 只从静态可达 Property 派生。不安全 Byte 使用 MCP Base64 Sentinel,Null 与缺失值被省略。
  • Tool-level isError 仍是可供 Agent 恢复的 Result;Transport 与 Protocol Failure 是类型化 Client Error。

每一轮 MRTR 都必须由 Host 介入

input_required Result 拥有原始 Tool、Arguments、Client 与 Opaque requestState。Host 必须把每个声明 Request 路由到可信子系统,并 精确返回所需 Key。resume 会消费 Pending Value、使用全新 JSON-RPC ID、在 State 存在时精确回传,而且绝不跨调用泄漏。StateKnot 不会自动批准 Elicitation 或虚构 Roots/Sampling 数据。

给每次 Exchange 设置边界

资源默认值
Logical Request / 并发请求30 s / 16
Catalog Page / Entry16 / 1,024
Request / JSON Response16 MiB / 2 MiB
SSE Line / Event / Total512 KiB / 2 MiB / 64 MiB
每个 Response 的 Notification1,024

Logical Request Deadline 的硬上限为 24 小时。Redirect 与 Generic Retry 被禁用;Timeout 或 Tool Response 丢失后绝不自动 Replay。Protocol Version Negotiation 在 Server 明确声明该版本后获得一次有界 Retry。Bearer Challenge 只有 Authorization Provider 显式批准后才默认获得一次 Replay,并使用新 JSON-RPC ID。详见MCP OAuth Client 合约。

复现证据

Shell · 本地与官方门禁
cargo test -p stateknot-integrations --test mcp_client_contract --locked
bash conformance/mcp-client/run-2026-07-28.sh

固定官方 Runner 通过全部 32 个计分 Client 场景,包括全部 25 个 OAuth 场景: 371 项计分 Assertion Success、0 Failure,11 项 Surface 外检查明确 Skip。 提出兼容性声明前请阅读精确 Conformance 边界。