Loading...
TypeScript agent framework with first-class MCP support. TypeScript builders shipping agents alongside their Next.js or Hono apps.
Crunchbase API: $20K/yr. GitDealFlow A2A: free, no signup.
Mastra has native MCP via MCPClient as of v0.4. Add our package once and every Mastra agent in the project can call all five skills. The A2A endpoint is the cleaner fallback when you want to call the agent without MCP overhead from a serverless edge handler.
npm install @mastra/core @mastra/mcpimport { MCPClient } from "@mastra/mcp";
import { Agent } from "@mastra/core/agent";
import { openai } from "@ai-sdk/openai";
const mcp = new MCPClient({
servers: {
gitdealflow: {
command: "npx",
args: ["@gitdealflow/mcp-signal@latest"],
},
},
});
const tools = await mcp.getTools();
export const scoutAgent = new Agent({
name: "VC Scout",
model: openai("gpt-4o-mini"),
instructions: "Use the gitdealflow tools to surface live engineering signals.",
tools,
});import { createTool } from "@mastra/core/tools";
import { z } from "zod";
export const gitdealflowA2A = createTool({
id: "gitdealflow-a2a",
description: "Call GitDealFlow's A2A endpoint for VC signals.",
inputSchema: z.object({
skill: z.enum([
"get_trending_startups",
"search_startups_by_sector",
"get_startup_signal",
"get_signals_summary",
"get_methodology",
]),
args: z.record(z.string(), z.any()).optional(),
}),
execute: async ({ context }) => {
const r = await fetch("https://signals.gitdealflow.com/api/a2a", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
jsonrpc: "2.0", id: 1, method: "message/send",
params: { message: { role: "user", parts: [
{ kind: "data", data: { skill: context.skill, args: context.args ?? {} } },
]}},
}),
});
return (await r.json()).result.artifacts[0].parts[0].data;
},
});The interactive playground lets you send live JSON-RPC requests against the A2A endpoint with no install, no auth. Pick a skill, hit send, see the response.
Full launch story: I made my VC deal flow callable by Claude.