DocsDeploymentMastra Client

Mastra Client SDK

The Mastra Client SDK provides a simple and type-safe interface for interacting with your Mastra Server from your client environment.

Development Requirements

To ensure smooth local development, make sure you have:

  • Node.js 18.x or later installed
  • TypeScript 4.7+ (if using TypeScript)
  • A modern browser environment with Fetch API support
  • Your local Mastra server running (typically on port 4111)

Installation

npm install @mastra/client-js

Initialize Mastra Client

To get started you’ll need to initialize your MastraClient with necessary parameters:

import { MastraClient } from "@mastra/client-js";
 
const client = new MastraClient({
  baseUrl: "http://localhost:4111", // Default Mastra development server port
});

Configuration Options

You can customize the client with various options:

const client = new MastraClient({
  // Required
  baseUrl: "http://localhost:4111",
 
  // Optional configurations for development
  retries: 3,           // Number of retry attempts
  backoffMs: 300,       // Initial retry backoff time
  maxBackoffMs: 5000,   // Maximum retry backoff time
  headers: {            // Custom headers for development
    "X-Development": "true"
  }
});

Example

Once your MastraClient is initialized you can start making client calls via the type-safe interface

// Get a reference to your local agent
const agent = client.getAgent("dev-agent-id");
 
// Generate responses
const response = await agent.generate({
  messages: [
    {
      role: "user",
      content: "Hello, I'm testing the local development setup!"
    }
  ]
});

Available Features

Mastra client exposes all resources served by the Mastra Server

  • Agents: Create and manage AI agents, generate responses, and handle streaming interactions
  • Memory: Manage conversation threads and message history
  • Tools: Access and execute tools available to agents
  • Workflows: Create and manage automated workflows
  • Vectors: Handle vector operations for semantic search and similarity matching

Best Practices

  1. Error Handling: Implement proper error handling for development scenarios
  2. Environment Variables: Use environment variables for configuration
  3. Debugging: Enable detailed logging when needed
// Example with error handling and logging
try {
  const agent = client.getAgent("dev-agent-id");
  const response = await agent.generate({
    messages: [{ role: "user", content: "Test message" }]
  });
  console.log("Response:", response);
} catch (error) {
  console.error("Development error:", error);
}