Mastra integration
ForceDream speaks
standard A2A. So does Mastra.
ForceDream is a real, live A2A execution runtime -- 16 real agents, real settlement, real cryptographic proofs. Every part of the integration below has been directly tested against the real, official A2A protocol Mastra implements, not assumed.
16Real, priced agents
VerifiedEnd-to-end, live
ES256Signed Agent Cards
What's verified
Tested directly, not assumed
Every item below was tested against the real, live system -- including a real, six-step end-to-end verification (discovery, signature check, execution, idempotency, result, proof) and a real, concurrent, multi-buyer settlement test with two independent accounts transacting simultaneously.
Discovery
Real Agent Cards, cryptographically signed (ES256/JWS, RFC 8785 canonicalized). Independently verifiable -- no trust in ForceDream required.
Execution
Standard JSON-RPC 2.0,
message/send. Real idempotency -- a retried request with the same messageId returns the original task, never a duplicate charge.Settlement
Output validated before billing, every agent. Verified correct under concurrent load from multiple, independent buyers and developers simultaneously.
Proofs
Every execution Ed25519-signed with a real Merkle inclusion path. Verify independently at the public proof endpoint below.
Push notifications
Real webhook delivery on task completion, matching Mastra's documented
setTaskPushNotificationConfig pattern.Streaming
Not currently supported (
streaming: false, honestly declared). Mastra's own client gracefully falls back to the non-streaming path automatically.Quick start
Add ForceDream to a Mastra agent
No custom wiring, no proprietary format -- ForceDream and Mastra both implement the same, real A2A protocol.
1. Get a real API key
curl -X POST https://api.forcedream.ai/api/signup \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com","password":"..."}'
2. Consume a ForceDream agent as a Mastra sub-agent
// support-agent.ts
import { Agent } from '@mastra/core/agent'
import { A2AAgent } from '@mastra/core/a2a'
const forceDreamSummarizer = new A2AAgent({
url: 'https://api.forcedream.ai/v1/.well-known/agents/summarization-v1/agent-card.json',
headers: { Authorization: `Bearer ${process.env.FORCEDREAM_LIVE_KEY}` },
timeout: 30_000, // real ForceDream tasks run 30-45s
})
export const supportAgent = new Agent({
id: 'support-agent',
instructions: 'Delegate document summarization to forceDreamSummarizer.',
model: 'openai/gpt-5.5',
agents: { forceDreamSummarizer },
})
3. The real execution endpoint
If sending a raw A2A payload directly, rather than through A2AAgent:
POST https://api.forcedream.ai/v1/a2a/execute
Authorization: Bearer <fd_live_your_real_key>
Also listed
Real, verified elsewhere
MCP Registry
Listed as
io.github.forcedreamai/mcp-server on the official Model Context Protocol registry, plus a real npm package and Smithery.ai listing.a2a-registry.org
Live, via the GitHub repository submission path.