Introducing Built-in Tools for Mastra Agents

Five ready-to-use tools for common agent tasks.

Paul ScanlonPaul Scanlon·

Aug 13, 2026

·

4 min read

Your Mastra agents can now use five built-in tools for common tasks like: creating a TODO list, or searching the web.

The following tools are included in @mastra/core and can be used with both agents and workflows:

If you're prototyping an agent, built-in tools can get you up and running faster, and when you’re ready, you can swap them out for provider-specific tools.

All built-in tools integrate with Studio — task lists render as a live panel, ask-user prompts as a chat pause, and plan approvals as an approve/reject card, making it easier to interact and test your agent during development.

Get started

Install @mastra/core:

GNU BashTerminal
npm install @mastra/core
note

Task tracking

Manage a durable, thread-scoped task list — write, update, complete, and check tasks. Available using TaskSignalProvider, which registers four task tools (task_write, task_check, task_update, and task_complete). Memory is required to persist list states.

TypeScriptsrc/mastra/agents/task-tracking-agent.ts
import { Agent } from "@mastra/core/agent";
import { Memory } from "@mastra/memory";
import { TaskSignalProvider } from "@mastra/core/signals";
 
export const taskTrackingAgent = new Agent({
  id: "task-tracking-agent",
  name: "Task Tracking Agent",
  instructions: "Track your progress with the task tools.",
  model: "anthropic/claude-opus-5",
  memory: new Memory(),
  signals: [new TaskSignalProvider()]
});

Use the model's native web search capability. Supports OpenAI, Anthropic, Google Gemini, and xAI:

TypeScriptsrc/mastra/agents/web-search-agent.ts
import { Agent } from "@mastra/core/agent";
import { webSearchTool } from "@mastra/core/tools";
 
export const webSearchAgent = new Agent({
  id: "web-search-agent",
  name: "Web Search Agent",
  instructions: "Use web search when you need current information.",
  model: "anthropic/claude-opus-5",
  tools: { webSearchTool }
});

Web fetch

Fetch a URL over HTTP or HTTPS and return the page's text content. Blocks localhost and private IPs, follows up to 5 redirects, and truncates at 100,000 characters:

TypeScriptsrc/mastra/agents/web-fetch-agent.ts
import { Agent } from "@mastra/core/agent";
import { webFetchTool } from "@mastra/core/tools";
 
export const webFetchAgent = new Agent({
  id: "web-fetch-agent",
  name: "Web Fetch Agent",
  instructions: "Fetch the page the user links to before answering.",
  model: "anthropic/claude-opus-5",
  tools: { webFetchTool }
});

Ask user

Suspend the run to ask the user a question, then resume with their answer. Supports free-text, single-select, and multi-select prompts.

TypeScriptsrc/mastra/agents/ask-user-agent.ts
import { Agent } from "@mastra/core/agent";
import { askUserTool } from "@mastra/core/tools";
 
export const askUserAgent = new Agent({
  id: "ask-user-agent",
  name: "Ask User Agent",
  instructions: "Ask the user for clarification when the request is ambiguous.",
  model: "anthropic/claude-opus-5",
  tools: { askUserTool }
});

Submit plan

Suspend the run with a plan file path so the user can approve or reject it. Pair with workspace tools so the agent can write the plan file before submitting.

TypeScriptsrc/mastra/agents/submit-plan-agent.ts
import { Agent } from "@mastra/core/agent";
import { submitPlanTool } from "@mastra/core/tools";
import { LocalFilesystem, Workspace, mkdirTool, readFileTool, writeFileTool } from "@mastra/core/workspace";
 
export const submitPlanAgent = new Agent({
  id: "submit-plan-agent",
  name: "Submit Plan Agent",
  instructions: "You draft plans and submit them for review.",
  model: "anthropic/claude-opus-5",
  workspace: new Workspace({
    id: "submit-plan-workspace",
    filesystem: new LocalFilesystem({ basePath: process.cwd() })
  }),
  tools: { submitPlanTool, writeFileTool, readFileTool, mkdirTool }
});

For more information and full configuration options, see:

Share:
Paul Scanlon
Paul ScanlonTechnical Product Marketing Manager

Paul Scanlon sits between Developer Education and Product Marketing at Mastra. Previously, he was a Technical Product Marketing Manager at Neon and worked in Developer Relations at Gatsby, where he created educational content and developer experiences.

All articles by Paul Scanlon