smithery.ai

mastra-skills

Use when building or working with Mastra agents - establishes best practices for agent development, tool creation, and workflow orchestration

First seen Jun 4, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,481 B
  • docs SUMMARY.md 162 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

Mastra Skills

Core principle: Build composable, observable, and testable AI agents.

When to Use This Skill

Always use when:

  • Creating new Mastra agents
  • Implementing agent tools
  • Setting up workflows
  • Debugging agent behavior
  • Integrating external APIs with agents

Don't use for:

  • Non-agent-related code
  • Pure frontend components without agent interaction

Documentation Quick Links

  • [reference.md](./reference.md) - Official API documentation links
  • [examples.md](./examples.md) - Official examples and how to use them
  • Official Mastra Docs - https://mastra.ai/docs/

Development Checklist

When creating a new agent, use TodoWrite to track:

  • Define clear agent purpose and capabilities
  • Identify required tools and integrations
  • Plan observability and logging strategy
  • Design agent memory and state management
  • Consider error handling and fallbacks
  • Write tests for key scenarios

Essential Requirements

Every Agent Must Have

  1. Clear purpose and instructions - Specific, not generic
  2. Descriptive name - Not 'agent1' or 'myAgent'
  3. Appropriate model selection - Choose based on task complexity
  4. Explicit tool registration - No implicit assumptions

Every Tool Must Have

  1. Descriptive ID - Clear what it does
  2. Clear description - For the LLM to understand
  3. Zod schema validation - Type-safe inputs
  4. Error handling - Never let tools crash agents
  5. Logging - For debugging and observability

Every Workflow Must Have

  1. Clear trigger schema - Validated inputs
  2. Proper step sequencing - Sequential vs parallel
  3. Error handling - In each step
  4. Observability hooks - beforeAll/afterAll for logging

Core Patterns

Basic Agent

import { Agent } from '@mastra/core';

const agent = new Agent({
  name: 'descriptive-name',
  instructions: 'Clear, specific instructions',
  model: {
    provider: 'ANTHROPIC',
    name: 'claude-sonnet-4-5',
  },
  tools: { /* ... */ },
});

📚 More details: [reference.md](./reference.md) | https://mastra.ai/docs/agents/

Basic Tool

import { z } from 'zod';

const tool = {
  id: 'descriptive-id',
  description: 'What this tool does',
  inputSchema: z.object({
    param: z.string().describe('Parameter description'),
  }),
  execute: async ({ context }) => {
    try {
      const result = await operation();
      return { success: true, data: result };
    } catch (error) {
      logger.error('Operation failed', { error, context });
      return { success: false, error: error.message };
    }
  },
};

📚 More examples: [examples.md](./examples.md) | https://mastra.ai/docs/tools/

Basic Workflow

import { Workflow } from '@mastra/core';

const workflow = new Workflow({
  name: 'workflow-name',
  triggerSchema: z.object({ input: z.string() }),
});

workflow
  .step({ id: 'step1', execute: async () => { /* ... */ } })
  .then({ id: 'step2', execute: async () => { /* ... */ } })
  .commit();

📚 More examples: [examples.md](./examples.md) | https://mastra.ai/docs/workflows/

Red Flags - Stop If You See

  • Agent without clear purpose
  • Tools without input validation
  • No error handling in tools
  • Missing observability/logging
  • Hardcoded credentials
  • No rate limiting for external APIs
  • Unbounded memory growth

Common Rationalizations

Excuse Reality
"Agent instructions don't need to be specific" Vague instructions → unpredictable behavior
"Error handling adds complexity" Unhandled errors → crashed agents
"We can add observability later" Can't debug what you can't observe
"Tool schemas are optional" Invalid inputs → runtime failures

Integration Checklist

When integrating external services, use TodoWrite to track:

  • Create typed tool interface
  • Add input validation with Zod
  • Implement error handling
  • Add logging for debugging
  • Consider rate limiting
  • Handle authentication securely
  • Test with edge cases
  • Document tool usage

Testing Requirements

// Unit test for tools
describe('myTool', () => {
  it('should handle valid input', async () => {
    const result = await myTool.execute({
      context: { param: 'test' },
      mastra: mockMastra,
    });
    expect(result.success).toBe(true);
  });
});

// Integration test for agents
describe('myAgent', () => {
  it('should respond to queries', async () => {
    const response = await myAgent.generate([
      { role: 'user', content: 'test query' }
    ]);
    expect(response.role).toBe('assistant');
  });
});

📚 More examples: [examples.md](./examples.md)

Quick Workflow

  1. Need API details? → Check [reference.md](./reference.md)
  2. Need examples? → Check [examples.md](./examples.md)
  3. Building something? → Follow checklists above, use TodoWrite
  4. Stuck? → Check official docs at https://mastra.ai/docs/

Final Rule

Every agent must have:
1. Clear purpose and instructions
2. Type-safe tools with validation
3. Error handling and observability
4. Tests covering key scenarios

Follow these principles for reliable, maintainable Mastra agents.