Fastify Adapter
The @mastra/fastify package provides a server adapter for running Mastra with Fastify.
info
For general adapter concepts (constructor options, initialization flow, etc.), see Server Adapters.
InstallationDirect link to Installation
Install the Fastify adapter and Fastify framework:
npm install @mastra/fastify@latest fastify
Usage exampleDirect link to Usage example
server.ts
import Fastify from 'fastify';
import { MastraServer } from '@mastra/fastify';
import { mastra } from './mastra';
const app = Fastify({ logger: true });
const server = new MastraServer({ app, mastra });
await server.init();
app.listen({ port: 3000 }, (err, address) => {
if (err) {
console.error(err);
process.exit(1);
}
console.log(`Server running on ${address}`);
});
Constructor parametersDirect link to Constructor parameters
app:
FastifyInstance
Fastify app instance
mastra:
Mastra
Mastra instance
prefix?:
string
= ''
Route path prefix (e.g., `/api/v2`)
openapiPath?:
string
= ''
Path to serve OpenAPI spec (e.g., `/openapi.json`)
bodyLimitOptions?:
BodyLimitOptions
Request body size limits
streamOptions?:
StreamOptions
= { redact: true }
Stream redaction config. When true (default), redacts sensitive data (system prompts, tool definitions, API keys) from stream chunks before sending to clients.
customRouteAuthConfig?:
Map<string, boolean>
Per-route auth overrides. Keys are `METHOD:PATH` (e.g., `GET:/api/health`). Value `false` makes route public, `true` requires auth.
tools?:
ToolsInput
Available tools for the server
taskStore?:
InMemoryTaskStore
Task store for A2A (Agent-to-Agent) operations
Manual initializationDirect link to Manual initialization
For custom middleware ordering, call each method separately instead of init(). See manual initialization for details.
ExamplesDirect link to Examples
- Fastify Adapter - Basic Fastify server setup
RelatedDirect link to Related
- Server Adapters - Shared adapter concepts
- MastraServer Reference - Full API reference
- createRoute() Reference - Creating type-safe custom routes