Skip to main content
Glama
kindrat86

mcp-deal-flow-signal

Get Signal Methodology

get_methodology
Read-onlyIdempotent

Provide the full methodology behind startup engineering signal computation: data sources, metric definitions, signal classification, refresh cadence, and limitations. Use for trust or interpretability questions.

Instructions

Return the full methodology behind VC Deal Flow Signal: how startup engineering activity is sourced from the public GitHub API, how commit velocity and contributor-growth metrics are computed, how signal types are classified ('breakout' | 'acceleration' | 'steady' | 'cooling'), the refresh cadence, and the known limitations.

WHEN TO USE:

  • The user asks 'how is this calculated?', 'what does breakout mean?', 'can I trust this number?', or any trust / interpretability question.

  • You are writing a report, memo, or footnote and need a methodology section or citation.

  • Due-diligence / compliance wants to audit the data pipeline before citing it.

  • You need to explain why a specific signal was assigned (what triggers 'breakout' vs 'acceleration').

DO NOT USE FOR:

  • Fetching the startup data itself — use get_trending_startups, search_startups_by_sector, or get_startup_signal.

  • Getting the list of supported sectors or the refresh date — use get_signals_summary (it returns live counts and freshness).

  • Confirming whether a specific startup is tracked — use get_startup_signal.

BEHAVIOR:

  • Read-only, idempotent, no side effects.

  • Effectively static: methodology text is versioned with the service and only changes when the computation changes (rare — quarterly at most). Safe to call once per session and reuse across turns.

  • No authentication required.

  • Fetches /llms-full.txt and extracts the ## Methodology section between the ## Methodology and ## Glossary headings. The canonical methodology URL is included in the response so agents can surface it for citations.

  • On upstream failure: returns isError: true with HTTP status.

  • On malformed upstream text (missing headings): returns an empty methodology string; still surfaces the canonical URL so the user can click through.

PARAMETERS: None.

RETURNS: { methodology: string, url: string }. methodology is plain text covering data sources, metric definitions, classification thresholds, refresh cadence, and known limitations. url is the canonical methodology page at https://signals.gitdealflow.com/methodology — cite this URL in generated reports.

TYPICAL WORKFLOW: User asks a trust / interpretability question → get_methodology → quote the relevant section in your response and link the canonical URL.

LIMITATIONS: Returns one monolithic text block; no structured thresholds or versioning metadata are exposed via the tool. If you need the full service context (not just methodology), fetch /llms-full.txt directly via the URL returned in get_signals_summary().formats.llmsFullTxt.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
methodologyYesPlain-text methodology write-up.
urlYesCanonical methodology page on gitdealflow.com.

Implementation Reference

  • src/server.ts:717-774 (registration)
    Tool registration entry in the TOOLS array, defining name, description, input/output schemas, and annotations for get_methodology.
    {
      name: "get_methodology",
      title: "Get Signal Methodology",
      description: [
        "Return the full methodology behind VC Deal Flow Signal: how startup engineering activity is sourced from the public GitHub API, how commit velocity and contributor-growth metrics are computed, how signal types are classified ('breakout' | 'acceleration' | 'steady' | 'cooling'), the refresh cadence, and the known limitations.",
        "",
        "WHEN TO USE:",
        "- The user asks 'how is this calculated?', 'what does breakout mean?', 'can I trust this number?', or any trust / interpretability question.",
        "- You are writing a report, memo, or footnote and need a methodology section or citation.",
        "- Due-diligence / compliance wants to audit the data pipeline before citing it.",
        "- You need to explain why a specific signal was assigned (what triggers 'breakout' vs 'acceleration').",
        "",
        "DO NOT USE FOR:",
        "- Fetching the startup data itself — use `get_trending_startups`, `search_startups_by_sector`, or `get_startup_signal`.",
        "- Getting the list of supported sectors or the refresh date — use `get_signals_summary` (it returns live counts and freshness).",
        "- Confirming whether a specific startup is tracked — use `get_startup_signal`.",
        "",
        "BEHAVIOR:",
        "- Read-only, idempotent, no side effects.",
        "- Effectively static: methodology text is versioned with the service and only changes when the computation changes (rare — quarterly at most). Safe to call once per session and reuse across turns.",
        "- No authentication required.",
        "- Fetches `/llms-full.txt` and extracts the `## Methodology` section between the `## Methodology` and `## Glossary` headings. The canonical methodology URL is included in the response so agents can surface it for citations.",
        "- On upstream failure: returns `isError: true` with HTTP status.",
        "- On malformed upstream text (missing headings): returns an empty `methodology` string; still surfaces the canonical URL so the user can click through.",
        "",
        "PARAMETERS: None.",
        "",
        "RETURNS: `{ methodology: string, url: string }`. `methodology` is plain text covering data sources, metric definitions, classification thresholds, refresh cadence, and known limitations. `url` is the canonical methodology page at https://signals.gitdealflow.com/methodology — cite this URL in generated reports.",
        "",
        "TYPICAL WORKFLOW: User asks a trust / interpretability question → `get_methodology` → quote the relevant section in your response and link the canonical URL.",
        "",
        "LIMITATIONS: Returns one monolithic text block; no structured thresholds or versioning metadata are exposed via the tool. If you need the full service context (not just methodology), fetch `/llms-full.txt` directly via the URL returned in `get_signals_summary().formats.llmsFullTxt`.",
      ].join("\n"),
      inputSchema: {
        type: "object" as const,
        properties: {},
        additionalProperties: false,
      },
      outputSchema: {
        type: "object" as const,
        properties: {
          methodology: { type: "string", description: "Plain-text methodology write-up." },
          url: {
            type: "string",
            format: "uri",
            description: "Canonical methodology page on gitdealflow.com.",
          },
        },
        required: ["methodology", "url"],
      },
      annotations: {
        title: "Get Signal Methodology",
        readOnlyHint: true,
        destructiveHint: false,
        idempotentHint: true,
        openWorldHint: true,
      },
    },
  • Input schema (no parameters) and output schema ({methodology: string, url: string}) for get_methodology.
    inputSchema: {
      type: "object" as const,
      properties: {},
      additionalProperties: false,
    },
    outputSchema: {
      type: "object" as const,
      properties: {
        methodology: { type: "string", description: "Plain-text methodology write-up." },
        url: {
          type: "string",
          format: "uri",
          description: "Canonical methodology page on gitdealflow.com.",
        },
      },
      required: ["methodology", "url"],
    },
  • Handler logic: fetches /llms-full.txt, extracts the section between ## Methodology and ## Glossary headings, returns it as plain text along with the canonical methodology URL.
    case "get_methodology": {
      const text = await fetchText("/llms-full.txt");
      const methodSection =
        text.split("## Methodology")[1]?.split("## Glossary")[0] ?? "";
      const methodology = methodSection.trim();
      const url = `${BASE_URL}/methodology`;
      return {
        content: [
          {
            type: "text" as const,
            text: `VC Deal Flow Signal — Methodology\n\n${methodology}\n\nFull details: ${url}\n\n${FOOTER}`,
          },
        ],
        structuredContent: { methodology, url },
      };
    }
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds extra behavioral details: 'Read-only, idempotent, no side effects', notes it is effectively static and safe to cache, explains error handling ('returns isError: true') and malformed response handling. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear section headers (WHEN TO USE, DO NOT USE, BEHAVIOR, etc.) and front-loaded with purpose. While it is thorough, it remains efficient and each sentence adds value. Could slightly reduce length but overall good.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, a readable output schema, and moderate complexity, the description covers all necessary aspects: usage context, behavior, return structure, typical workflow, and limitations. It provides complete guidance for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters (0 params, 100% schema coverage). The description does not need to add parameter info. It goes beyond by explaining the return structure ({ methodology: string, url: string }) and provides context about the return values. Baseline for 0 params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Return the full methodology behind VC Deal Flow Signal' which clearly specifies the verb and resource. It lists exactly what the methodology covers (data sources, metrics, classification, etc.) and distinguishes from sibling tools like get_startup_signal, get_trending_startups, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description has explicit 'WHEN TO USE' and 'DO NOT USE FOR' sections with multiple bullet points, naming specific alternative tools for each forbidden case. This provides clear context and exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kindrat86/mcp-deal-flow-signal'

If you have feedback or need assistance with the MCP directory API, please join our Discord server