Documentation

DOC / 20 / OPENSDK

Tooling protocol

Negotiate editor and MCP clients over bounded JSON-RPC without granting ambient project or network authority.

In this guideTooling protocol
Getting startedProject structureCLI referenceDeveloper loopIncremental buildsRouting and pagesRust viewsEvents and foldsSchemas and snapshotsHyphae verified syncTyped contentBrowser runtimeDOM ownershipNative runtime previewPortable deploymentFull-stack betaOpenSDK previewComponents and languagesBrowser framework conformanceTooling protocolCompatibility and deprecationAdaptive assetsArtifact trustRelease trustPerformance evidenceErrors and diagnosticsVoluntary telemetryBuild and deployCrates and APILicensing and policy

One bounded tooling plane

The OpenSDK tooling host uses newline-delimited JSON-RPC 2.0 over standard input and output. Editors negotiate through pliego/handshake; the reference MCP adapter exposes the same capability handshake after completing the MCP 2025-11-25 initialization lifecycle.

OpenSDK
0.4.0-beta.1
JSON-RPC
2.0 over bounded newline-delimited messages
MCP
2025-11-25 reference client surface

Negotiate before diagnostics

shell
cargo run -p pliego-cli --locked -- sdk tooling-host \
  --protocol pliego \
  --feature diagnostic-links

The native handshake must include protocolVersion 0.4.0-beta.1. Missing or incompatible versions fail before any diagnostic or project method becomes available.

MCP is a client, not a privilege

shell
cargo run -p pliego-cli --locked -- sdk tooling-host \
  --protocol mcp \
  --feature diagnostic-links
npm run check:opensdk:tooling

The MCP client receives no implicit filesystem root, network access, sampling, elicitation, or project capability. Its reference tool accepts only the empty arguments object declared by its schema and cannot bypass OpenSDK admission policy.

Fail with structured boundaries

The host accepts at most 10,000 requests per process and 1 MiB per JSON line. Invalid JSON-RPC versions, unknown fields, unsupported MCP versions, pre-initialization calls, unknown methods, and unknown tools return structured errors; notifications produce no response.