GitDealFlowsignals
A2A INTEGRATION · CUSTOM TOOL

Use GitDealFlow A2A with Vercel AI SDK

The ai package for Next.js, Node, and edge runtimes. Developers shipping AI features inside web apps.

Crunchbase API: $20K/yr. GitDealFlow A2A: free, no signup.

The Vercel AI SDK has native MCP support via experimental_createMCPClient as of v6, and our MCP server works directly with it. For pure A2A, define a single tool() with zod schema and fetch the JSON-RPC endpoint. The data flows the same either way; MCP is more turnkey for production apps, A2A is simpler when you want one HTTP dep.

Endpoint facts for Vercel AI SDK users

Whatever wiring you choose, the target is the same single endpoint. These are the fixed facts; nothing on this page changes them:

ProtocolA2A JSON-RPC 2.0 (protocolVersion 0.3.0)
Endpoint URLhttps://signals.gitdealflow.com/api/a2a
Skills exposed5, mirrored 1:1 with the MCP server tools (trending, sector, lookup, summary, methodology)
AuthNone; free in perpetuity, read-only
FreshnessRecomputed weekly; responses carry the data-as-of date
Best Vercel AI SDK pathVercel AI SDK has no native MCP client yet, so the custom-tool path below (a thin JSON-RPC call) is the way in.

Install

npm install ai zod

Custom A2A tool() (TypeScript)

import { tool, generateText } from "ai";
import { z } from "zod";

const A2A_URL = "https://signals.gitdealflow.com/api/a2a";

const gitdealflow = tool({
  description:
    "Get startup engineering signals: trending startups, sector watchlists, single-startup profiles, dataset summaries, and methodology.",
  parameters: 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 ({ skill, args }) => {
    const res = await fetch(A2A_URL, {
      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, args: args ?? {} } }],
          },
        },
      }),
    });
    const json = await res.json();
    return json.result.artifacts[0].parts[0].data;
  },
});

const result = await generateText({
  model: "openai/gpt-4o-mini",
  tools: { gitdealflow },
  prompt: "Who's trending in fintech this week?",
});

MCP via experimental_createMCPClient

// npm install ai @modelcontextprotocol/sdk
import { experimental_createMCPClient, generateText } from "ai";
import { Experimental_StdioMCPTransport } from "ai/mcp-stdio";

const client = await experimental_createMCPClient({
  transport: new Experimental_StdioMCPTransport({
    command: "npx",
    args: ["@gitdealflow/mcp-signal@latest"],
  }),
});

const tools = await client.tools();

const result = await generateText({
  model: "openai/gpt-4o-mini",
  tools,
  prompt: "What's trending in fintech?",
});

await client.close();

What you can ask

  • Inside a Server Component: pull weekly top 20 to seed your dashboard.
  • Inside a Route Handler: surface 'is this startup tracked?' to logged-in users.
  • Inside a Server Action: write a watchlist alert email when a tracked startup hits breakout.

Gotchas

  • The tool() helper expects you to return JSON-serializable data. The .data field on artifacts is already a plain object, passing it through is safe.
  • If you use Edge runtime, the fetch to A2A should be on regular Node runtime since you may want to hold connections longer. Set `export const runtime = 'nodejs'`.

When to pick which path

Because Vercel AI SDK currently lacks a native MCP client, your two options are the custom tool below (a thin JSON-RPC wrapper you register once) or switching the session to an MCP-capable host when you need the richer tool surface. For scheduled jobs and pipelines, the raw endpoint is usually the sturdier dependency: no client versioning to track.

3example prompts are listed under "What you can ask" below, and the gotchas section covers the 2 known failure modes Vercel AI SDK users hit with this endpoint. If a prompt fails, check the gotchas first: most misses are shape mismatches, not endpoint outages.

References

Try it without setup

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.

Other framework integrations

🚀 Explore Our Network

21-47 days
Signal Lead Time (median 31d)
$80M+
Rounds Tracked
90 sec
Per Scan
5,000+
Founders Tracked

One missed signal is a missed round. Get the Velocity Verdict in your inbox every Sunday free.

Get Free Signals

Free weekly digest. Cancel anytime. No spam, no VC pitches just data.