@praxa/mcp-contractscontains 12 protocol-only tool definitions.@praxa/sdkcontainscreatePraxaAgentTools(), which binds the same operations to aPraxaClient.
0.3.0. They contain no provider credential or
server-side action authority.
Prerequisites
Before you begin, prepare:- the exact published Praxa package versions used by the tutorial;
- a trusted agent host with explicit tool, approval, timeout, and output policies;
- deployment-specific OAuth or backend-owned provider clients where the selected lane requires them;
- synthetic tenant, subject, prompt, and tool fixtures for positive and adversarial tests;
- an acceptance assertion that proves the host registers 12 exact tools and passes safe-read, wrong-scope, approval, and replay canaries.
1. Install and create the client
2. Connect an agent framework
- Vercel AI SDK
- OpenAI remote MCP
- Framework-neutral host
The AI SDK accepts raw JSON Schema through Framework approval is defense in depth. Praxa still performs server-side
scope, tenant, policy, purpose, and revocation checks.
jsonSchema().3. Preserve the wire identifiers
The packages use Praxa-branded exports, but compatibility wire values remain Aura-named:aura_* tools on the wire. A display label in your own UI may use
Praxa branding, but discovery and invocation must use the exported value.
4. Start with read-only tools
5. Verify the integration
- List tools and require all expected exported wire names.
- Invoke a safe read with the matching scope.
- Invoke that read without its scope and require
403. - Invoke a keyed mutation twice with the same body and require one logical mutation.
- Change the body while reusing the key and require a conflict.
- Revoke the token and require subsequent tool calls to fail closed.
- Confirm the framework never receives or logs a provider credential.
Import and schema tests prove the package. The disposable canary proves your
framework adapter, OAuth issuance, Gateway deployment, and server-side policy
boundary together.
Troubleshooting
Best practices
- Enable the smallest tool or source set needed for the workflow.
- Require approval for mutations and independently for destructive actions.
- Derive tenant, subject, purpose, and credential from trusted host context.
- Bound tool inputs, output bytes, concurrent calls, retries, and total turn time.
- Verify a run, event, trace, receipt, or source status independently of model prose.
Optimize for production
- Reduce tool definitions and provider sources to the relevant set before each turn.
- Use deterministic filtering and pagination before placing results in model context.
- Cache only versioned, non-sensitive contracts and read-only metadata.
- Measure tool-selection accuracy, approval rate, p50/p95 call latency, context bytes, retries, and verified completion.
Cleanup and next steps
- Revoke disposable delegated grants and remove test host configuration.
- Delete provider fixtures through the provider’s own lifecycle when applicable.
- Disable mutation tools until their negative and approval tests pass again after upgrades.
- Retain only redacted tool, run, trace, and receipt identifiers needed for evaluation.