Prompts
Three guided MCP workflows — audit a payment, set up an agent, explain a failure. Each composes multiple tool calls into a structured procedure.
MCP prompts are reusable, parameterised templates that the server returns in response to prompts/get. The client (Claude Desktop, Cursor, OpenAI Agents SDK) presents the prompt's messages to the model, which then drives the tool calls. Prompts encode the right order of tool calls for common workflows.
Source: mcp/src/prompts/.
Three prompts
| Name | What it walks the user through |
|---|---|
agenttrust_audit_payment | Simulate a payment, read the policy, read the payee's reputation, surface the decision |
agenttrust_setup_agent | Bootstrap a fresh agent identity + first PolicyAccount in one atomic init_policy self-heal |
agenttrust_explain_failure | Given a failed payment's reason code, explain root cause + remediation |
agenttrust_audit_payment
Required args: payer_agent, payee_agent, amount, mint, policy_id. Optional: caller.
The prompt walks the model through:
agenttrust_get_policy({ agent_asset: payer_agent, policy_id })— read the spending caps, velocity threshold, counterparty tier requirement, required capability.agenttrust_get_quantu_reputation({ agent_asset: payee_agent })— read the payee's tier, risk, confidence.agenttrust_simulate_payment({ caller, payer_agent, payee_agent, amount, mint, policy_id })— run the gate.- Compare the simulation result to the policy thresholds + payee reputation. Surface
Allow,Deny(reason), orRequireValidation(capability)with the relevant numbers.
Use case: "Audit this payment before I send it." The model produces a structured explanation of the decision rather than a yes/no answer.
agenttrust_setup_agent
Required args: use_case. The use_case is free-text — the prompt uses it to suggest reasonable defaults for the policy fields (per-tx cap, velocity window, counterparty tier minimum).
The prompt walks the model through:
- Use
agenttrust_init_policyto bootstrap a brand-new agent + policy in one atomic tx. Omitagent_assetto let the tool generate one. The output'sagentAssetfield is the agent's canonical pubkey for downstream calls. The same call self-healsagent_account+atom_stats(Quantu),PolicyAuthority+KillSwitchState(AgentTrust), and lands thePolicyAccount+VelocityLedger— all under one signature, withhealedSteps: ["register_agent_via_cpi", "init_authority", "init_killswitch"]returned in the structured envelope. - Confirm the result by calling
agenttrust_get_policy({ agent_asset: <agentAsset from step 1>, policy_id: 1 }).
Use case: "Set up a basic AgentTrust policy for a new agent." The prompt + init_policy's self-heal land a working agent identity plus policy in one or two turns.
agenttrust_explain_failure
Required args: reason_code (1..15). Optional: payer_agent, payee_agent, policy_id.
The prompt walks the model through:
agenttrust_explain_decision({ reason_code })— translate to canonical name + remediation hint.- If the optional context is present, run the relevant lookup (
get_quantu_reputation,get_velocity,get_killswitch,get_validation_attestation) to inspect the actual on-chain state that drove the deny. - Surface the contradiction in plain language ("the policy requires
min_counterparty_tier = 3but the payee'stier_immediate = 1").
Use case: "Why did my last payment fail with reason code 6?" The prompt produces an explanation grounded in real on-chain state, not training-data guesses.
How clients invoke prompts
// Pseudocode — the actual API depends on the MCP client.
const prompts = await mcp.request("prompts/list");
// → [{ name: "agenttrust_audit_payment", description, arguments }, …]
const audit = await mcp.request("prompts/get", {
name: "agenttrust_audit_payment",
arguments: {
payer_agent: "5Pfa…K8y",
payee_agent: "C9pY…B3dR",
amount: "1000000",
mint: "EPjF…Dt1v",
policy_id: 1,
caller: "4tSE…hRG",
},
});
// → { messages: [{ role: "user", content: { type: "text", text: "Walk me through auditing this payment…" } }, … ] }The model then picks tools to call, the client surfaces the tool results back to the model, and the prompt's structure produces a grounded answer.
In Claude Desktop, prompts appear as slash commands when an MCP server is connected. Type /agenttrust_audit_payment in chat → the UI prompts for the required arguments → the model executes the workflow.
Validation
Phase M validated all three prompts via direct prompts/get calls. All three return non-empty messages arrays with structured user prompts referencing the right tools. Missing-argument probes return clean -32603 missing required argument errors. Full report: docs/proofs/phase-m-mcp-e2e.md §M1.5.
Phase P verified agenttrust_explain_failure end-to-end with Claude sonnet driving the workflow against live devnet state — the model called agenttrust_explain_decision(6) then agenttrust_get_killswitch to inspect the actual policy fields, and produced a remediation in plain language.
Source
- Prompts:
mcp/src/prompts/ - Server wiring:
mcp/src/server.ts