These are the stable $id URLs referenced by PtcRunner documents. Point your
editor at one to get completion and validation while authoring:
{
"$schema": "https://ptc-runner.dev/schemas/ptc-project-config.schema.json",
"kind": "ptc-project",
"version": 1,
"application": {"path": "ptc.json"}
}
PtcRunner keeps configuration responsibilities in three separate files. Credential values and provider declarations do not belong in the project file, and project choices do not become part of application content identity.
ptc-project.json — paths to the other files, local artifact policy, and Viewer
preferences. This is the document you hand to ptc run, ptc doctor,
ptc repl, and ptc viewer.
ptc.json — workflow, components, input, provider selections, and narrower
limits. Model-authorable application selection; runtime loading remains authoritative.
ptc-host.json — installed providers, credential references, commands,
endpoints, and outer limits. Runtime loading remains
authoritative.
The V5 command envelope written by ptc run --envelope FILE and
project runs by default. An atomic, no-replace file whose status and exit-code
relationship is sealed by the command contract. Known early failures also
print this envelope on stdout and include a closed error.cause.
The loopback gateway document: listener policy, bearer credential binding, fixed application tools, exact pins, admission limits, and private audit storage.
https://ptc-runner.dev/schemas/ptc-gateway-config.schema.jsonEach schema above is published verbatim from priv/schemas/ in
the repository, so the hosted copy and the runtime validator are always the same bytes.
PtcRunner speaks exactly one MCP revision, 2026-07-28, and refuses anything
older. A copy of that wire schema is published here because upstream’s generated document
is not quite the wire PtcRunner implements: JSONValue there narrows numbers to
integers and omits null, and the closed JSON-RPC error envelope PtcRunner accepts has no
upstream definition at all. Those two corrections are the entire delta — everything else
is upstream byte-for-byte at commit 5f5440bb — and the document states them
in its own $comment.
The definitions a tools server must satisfy to be acquirable: DiscoverRequest,
ListToolsRequest, CallToolRequest, their result responses, and
PtcRunnerJSONRPCErrorResponse. Wire shape only — the
MCP reference owns the narrower runtime policy, which a
schema-valid server can still fail.
Third-party, and licensed accordingly: Apache-2.0 and MIT, per
THIRD_PARTY_NOTICES.md.
It has no runtime validator to stay identical to, so it is checked in under site/
and this page is its only distribution — it is in neither the Hex package nor the
standalone release.