GitDealFlowsignals
A2A INTEGRATION · CUSTOM TOOL

Use GitDealFlow A2A with Semantic Kernel

Microsoft's enterprise AI orchestration SDK. Enterprise .NET / Python builders who need governed agent workflows over corporate signals.

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

Semantic Kernel registers our A2A endpoint as a native function/plugin so that any Kernel-driven agent (Microsoft 365 Copilot extension, Azure-hosted assistant, internal chatbot) can call GitDealFlow as a first-class tool. The SDK handles function-calling schema, prompt assembly, and orchestration; you supply a thin HTTP wrapper around the JSON-RPC POST and SK does the rest. Best fit when you already run Azure OpenAI and want VC engineering signals inside a governed Copilot stack.

Endpoint facts for Semantic Kernel 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 Semantic Kernel pathSemantic Kernel has no native MCP client yet, so the custom-tool path below (a thin JSON-RPC call) is the way in.

C# native function (Kernel plugin)

// dotnet add package Microsoft.SemanticKernel
using Microsoft.SemanticKernel;
using System.ComponentModel;

class GitDealFlowPlugin {
    private static readonly HttpClient _http = new();
    private const string A2A = "https://signals.gitdealflow.com/api/a2a";

    [KernelFunction, Description("Query GitDealFlow for startup engineering signals: trending, sector lookup, named startup, methodology, or scout receipts.")]
    public async Task<string> QueryAsync(
        [Description("One of: trending, sector, startup, methodology, receipts")] string skill,
        [Description("Optional args, e.g. sector slug or startup name")] Dictionary<string, object>? args = null) {

        var body = new {
            jsonrpc = "2.0", id = 1,
            method = "message/send",
            @params = new {
                message = new { role = "user", parts = new[] {
                    new { kind = "data", data = new { skill, args = args ?? new() } }
                }}
            }
        };
        var resp = await _http.PostAsJsonAsync(A2A, body);
        return await resp.Content.ReadAsStringAsync();
    }
}

var kernel = Kernel.CreateBuilder()
    // Use your Azure OpenAI deployment name (e.g. gpt-5, gpt-4.1, or whatever you've deployed)
    .AddAzureOpenAIChatCompletion("<your-deployment-name>", endpoint, apiKey)
    .Build();
kernel.Plugins.AddFromObject(new GitDealFlowPlugin());

Python, KernelFunction decorator

# pip install semantic-kernel
import semantic_kernel as sk
import requests
from semantic_kernel.functions import kernel_function

A2A = "https://signals.gitdealflow.com/api/a2a"

class GitDealFlowPlugin:
    @kernel_function(description="Query GitDealFlow A2A for VC engineering signals.")
    def query(self, skill: str, args: dict = None) -> str:
        body = {"jsonrpc":"2.0","id":1,"method":"message/send",
                "params":{"message":{"role":"user","parts":[
                    {"kind":"data","data":{"skill": skill, "args": args or {}}}
                ]}}}
        return str(requests.post(A2A, json=body, timeout=15).json())

kernel = sk.Kernel()
kernel.add_plugin(GitDealFlowPlugin(), plugin_name="gitdealflow")

What you can ask

  • Add VC signal lookup to a Microsoft 365 Copilot extension for the deal team.
  • Surface trending startups inside an internal Azure-hosted agent with audit logging.
  • Run a planner that asks GitDealFlow for fintech trending, then writes a memo via your default model.
  • Chain SK function-calling: classify user intent → call GitDealFlow → format response in corporate template.
  • Plug into a Teams bot so analysts can /signal Roboflow without leaving chat.

Gotchas

  • SK's auto-function-invocation requires planner mode (`FunctionChoiceBehavior.Auto()` in C#). Manual invoke works without it but skips the LLM picking the tool.
  • Azure OpenAI's tool-call response format differs slightly from OpenAI's, SK abstracts this but expect occasional schema drift on minor SDK versions.
  • Compliance: our A2A endpoint is no-auth public, fine for read-only signal lookups but log-everything if you wire into an audited Copilot stack.

When to pick which path

Because Semantic Kernel 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.

5example prompts are listed under "What you can ask" below, and the gotchas section covers the 3 known failure modes Semantic Kernel 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.