Integration mastra
Give Mastra the web without giving up your privacy.
Cited answers, clean Markdown, matching JSON, and browser tasks for Mastra, as native Mastra tools.
@tabstack/mastra
ollama.com/blog
docs.openwebui.com
ANSWER
Two runtimes shipped it.
Why Mastra
Tabstack, inside Mastra.
@tabstack/mastra adds Tabstack to Mastra as typed createTool definitions. Spread them into an Agent and it gets cited research, clean page content, matching JSON, and browser tasks.
post /research
query: "which runtimes…"
mode: "balanced"First call
Start with a current question.
Mastra makes the call, and Tabstack handles the web. Research searches live sources, reads the pages, and returns a cited answer, so your agent gets the findings without running every search itself.
npm install @tabstack/mastra @mastra/core zod
export TABSTACK_API_KEY="your-key-here"
import { Agent } from "@mastra/core/agent";
import { tabstackTools } from "@tabstack/mastra";
const agent = new Agent({
id: "web-researcher",
name: "Web Researcher",
instructions: "Answer questions with current information, and always cite your sources.",
model: "anthropic/claude-sonnet-4-6",
tools: tabstackTools,
});
const result = await agent.generate("What are Vercel's pricing plans, with sources?");
console.log(result.text);
Tools
Five tools, one key.
tabstackTools is keyed by tool name. Pass all five, or import the ones an agent should reach.
| Tool | Returns |
|---|---|
research_question | A cited answer from multiple live sources |
extract_page_content | A page as clean Markdown |
extract_structured_data | JSON matching a schema you define |
generate_structured_data | A page transformed into the JSON you describe |
automate_browser_task | A completed browser task, from plain-language steps |