Quick start with AI
The fastest way to get going with BEST is to paste one of these prompts into your AI assistant (GitHub Copilot, Claude, ChatGPT, or Cursor). Each prompt is designed to be copy-paste ready — fill in the parts in [brackets] and send it.
Prompt 1 — Make your service BEST-compliant
Use this when you have an existing service and want to add a BEST surface to it.
Make my [ASP.NET Core / Express / FastAPI / Spring Boot] service BEST-compliant.
I need these four endpoints:
- GET /.well-known/best — discovery manifest
- GET /commands — catalogue listing accepted commands with JSON Schema
- POST /commands — CloudEvents 1.0 entry point
- GET /queries — query catalogue
Auth: X-Api-Key header. Set authentication.type = "apikey" in the manifest.
Spec reference: https://behavioralstate.io/specs
What to expect: The LLM will scaffold the four routes, a manifest class or JSON file, and a command handler stub. Review the generated /.well-known/best and ensure it includes the authentication block and at least one entry in capabilities.
Prompt 2 — Configure best-mcp for your LLM client
Use this when your BEST service is running and you want to use it directly from your LLM client.
Configure best-mcp so I can use my BEST service from [VS Code Copilot / Claude Desktop / Cursor].
Service base URL: [https://api.example.com/best]
API key: [my-api-key]
Tenant ID: [my-tenant-id] ← remove this line if not multi-tenant
Output the exact env vars and mcpServers JSON block to add to my client config.
best-mcp docs: https://behavioralstate.io/specs/transports/mcp
What to expect: The LLM will produce the env block and mcpServers JSON snippet. For VS Code you add it to .vscode/mcp.json; for Claude Desktop to claude_desktop_config.json; for Cursor to cursor_mcp.json. See MCP transport for full details.
Prompt 3 — Validate your BEST endpoint
Use this when you have implemented BEST and want a second opinion before shipping.
Check that my BEST endpoint correctly implements the spec.
URL: [https://api.example.com]
Verify:
1. GET /.well-known/best — valid manifest, authentication block present
2. GET /commands — lists commands with schema, version, dataschema URI
3. POST /commands — accepts CloudEvents 1.0 (specversion, source, type, dataschema, data)
4. dataschema is the absolute catalogue URI: {base}/commands/{name}/{version} (e.g. "https://api.example.com/commands/submit-order/1.0")
Spec: https://behavioralstate.io/specs
What to expect: The LLM will walk through each endpoint, point out missing fields or incorrect formats, and suggest fixes. Common issues: dataschema not matching the catalogue's absolute URI, missing authentication block in the manifest, or command payload wrapped in an extra object rather than placed directly in CloudEvent data.
Tips
- Fill in
[brackets]before sending — the more context you give, the better the output. - Iterate — after the LLM generates code, paste the result back and ask it to test against the spec or add missing error handling.
- Use the playground at behavioralstate.io/playground to inspect your live manifest and test commands interactively once the service is running.