PromptKing exposes one server-side MCP endpoint across six vendor surfaces. Connect from a client that supports Streamable HTTP and the required OAuth flow; support varies by client and version.
This page and the start_here tool teach the same protocol. Humans read the page; agents read the tool. Same truth.
MCP Endpoint
https://www.promptking32.com/api/mcp/mcpUse with a compatible server-side MCP client. OAuth begins on the first protected call.
SERVER-SIDE MCP · SHIPPED
Headless and always reachable
The tools live on the backend. Services, command-line agents and scheduled jobs can use them without the website being open.
WEBMCP · DESIGNED NEXT
Human-present and page-aware
The tools live in an open page and use its current state and signed-in session. This is a complementary browser surface, not a replacement for server MCP.
System Context — Out-of-Path Architecture
PromptKing
↑ consumes metadata · emits decisions ↓
↓ Governance Decisions
↓ Evidence Receipts (SHA-256)
↓ MCP Governance Signals
↓ Your enforcement stack (SIEM · IT governance · vendor controls)
PromptKing does not touch agent traffic. Decisions travel — PromptKing does not.
Agent calls start_here. The port returns the governance contract: what tools exist, what the protocol expects, how to enroll. The agent learns the port without human configuration.
Agent registers via enroll or register_agent. Receives an agent ID, correlation ID, and autonomy tier. Identity is established — every subsequent call is attributed. Reading this page is not the same as your principal authorizing this specific registration: if your current task did not explicitly ask you to register with PromptKing, confirm with your principal first.
Before acting, the agent declares intent and cost via check_policy. The policy engine evaluates against org rules and returns a verdict: ALLOWED, APPROVAL_REQUIRED, or MODEL_RESTRICTION. No enforcement — the agent decides whether to proceed.
After acting, the agent reports what happened via report_outcome. An evidence receipt is issued with a SHA-256 integrity hash. Append-only — the receipt exists forever, independently verifiable at /verify/[id].
Selected tools are shown below. Named profiles narrow the executable surface for governance, finance, read-only and enrollment use cases; the full profile contains 27 tools.
Governance Consultation
start_hereSelf-teaching protocol — agents learn the portenrollRegister an agent with identity + autonomy tiercheck_policyCHK-2: evaluate an action against org policyreport_outcomeCHK-3: declare outcome, receive evidence receiptIntelligence Readers
get_overviewOrg-level KPIs: spend, utilization, savingsget_seat_fleetPer-seat detail: plan, cost, recommendationget_seat_detailDeep dive on a single seatget_savings_opportunitiesRanked rightsizing recommendationsget_github_creditsGitHub AI Credits burn rate + model breakdownget_governance_scoresWatsonx model governance healthget_executive_reportCFO / COO / CRO persona reportsget_forecast30-day spend forecast with variance bandsGovernance Readers
get_trajectoryFull trajectory with linked governance artifactsget_trajectory_statusArchetype, cycles, cost, recent decisionsget_decision_receiptSingle policy decision as structured receiptlist_containment_signalsActive containment events for a trajectoryAgent Identity
register_agentCHK-1: register with SPIFFE identity + autonomy tierWire format — read this before writing a bare HTTP client
Transport is MCP Streamable HTTP: one JSON-RPC request per POST to the endpoint above — not a separate long-lived SSE GET channel. Successful tool and protocol responses are framed as Server-Sent Events (content-type: text/event-stream), not bare JSON. Each response body contains event: and data: lines — the JSON-RPC payload is on the data: line. Naive JSON.parse(body) fails. Reference parser:
// Parse an MCP Streamable-HTTP SSE response body (Node 18+, no deps)
function parseSse(body) {
const events = []
for (const chunk of body.split('\n\n')) {
const data = chunk.split('\n')
.filter(l => l.startsWith('data:'))
.map(l => l.slice(5).trim()).join('')
if (data) events.push(JSON.parse(data))
}
return events // JSON-RPC messages; the tool result is in result.content[0].text
}Requests are plain JSON-RPC over POST with Authorization: Bearer. Registration (CHK-1) returns a top-level agent_id. Outcome (CHK-3) returns the canonical receipt_id, its stored hash, and a ready-to-open verify_url — the same bytes the public verifier serves.
Or skip the plumbing entirely — the public reference runner is one dependency-free Node file that completes the full governed handshake with one enrollment token: PROMPTKING_ENROLLMENT_TOKEN="..." node promptking-governed-run.cjs (pass the token via environment or stdin — never on the command line). The enrollment token is one opaque string — paste it whole, exactly as the dashboard gives it to you; do not split it or interpret any part of it. You do not need a seat id: omit --seat — identity derives from your token binding, server-side, every call. --seat asserts which seat you expect to be operating as. The server independently derives your identity from your token binding and rejects the call on mismatch (PRINCIPAL_BINDING_VIOLATION). --seat never selects or switches identity. It demonstrates the protocol, reads the public verification record back, and prints your receipt's verify URL — it contains no governance logic and needs no PromptKing account beyond the token.
Static example — illustration only · not live evidence
Static example for illustration only — not live evidence. Every governed run produces a receipt, independently verifiable — the hash is recomputed in your browser, not by our server. The link below is one fixed historical receipt (issued 2026-07-16) kept so you can see what verification looks like. It is not proof that you (or any other agent) completed a handshake. Every valid PromptKing receipt carries an issuance timestamp and verifies at /verify/[id]. A receipt without a verifiable timestamp is not evidence.
Protocol stats (live)
Loading live stats...
Numbers are live production counts — early-stage, honest, not inflated.
What we never touch
PromptKing processes metadata only — agent identity, cost declarations, policy verdicts, and governance signals. We never see your prompts, your model responses, your files, or your users' content. We never sit between your agent and the vendor API. Decisions travel. PromptKing does not.