Skip to main content
Glama

Kaleidoscope MCP (SEC & financial data)

Graph Path (bounded relationship-path finder between two people/companies — warm-intro / degrees-of-separation) [beta]

graph_path
Read-onlyIdempotent

Find the relationship path(s) between two people (or a person and a company) — the 'Paths In' / Find-Path / warm-intro-meter primitive. Bounded BFS over the person↔person connected_to graph (professional/board/deal co-occurrence ties), depth ≤ max_hops (default 3). Returns the shortest paths as node sequences with the per-hop tie strength and an overall score (strength_product = product of ties, favors short strong paths; strength_min = weakest link).

from_id + to_id are graph_resolve node UUIDs. If to_id is a company, the final hop is a leadership edge (board member / officer / employee) into it, so a path reads person →connected_to→ person →board_member→ company. Top-level connected + min_hops are the warm-path meter ('reachable via N hops'). Bidirectional beam search — bounded, returns strong short paths (not every possible path). to_type optional (inferred).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "from_id": "<from_id>",
      "to_id": "<to_id>"
    },
    "name": "graph_path"
  }
}

Input Schema

NameRequiredDescriptionDefault
to_idYesTarget node UUID — a person or a company (graph_resolve).
from_idYesSource PERSON node UUID (graph_resolve).
to_typeNoOptional — target type; inferred if omitted.
max_hopsNoMax path length in edges (default 3, max 4). 2-3 is the useful range.
top_pathsNoHow many best paths to return (default 5, max 25).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the description is free to add genuinely new behavior: BFS depth ceiling, bidirectional beam-search approximation, shortest-path selection, and the two scoring formulas (`strength_product` vs `strength_min`). It also discloses a non-obvious structural rule — when `to_id` is a company the last hop becomes a leadership edge (board_member/officer/employee) — which an agent could not infer from annotations or schema.

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

Conciseness5/5

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

Front-loaded with the bolded one-line purpose, then prerequisites, then return semantics, then the company-hop caveat. Dense with backticked field names but every sentence carries distinct information; no filler.

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?

There is no output schema, yet the description specifies the return shape: node sequences, per-hop tie strength, `strength_product`/`strength_min`, plus top-level `connected` and `min_hops`. Combined with the boundedness caveat and the company-target rule, an agent has everything needed to call and interpret this correctly.

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?

Schema coverage is 100%, so the schema carries the baseline; the description still adds meaning beyond it by explaining that `from_id` must be a person node, that `to_id` may be a company and how that changes the final hop, and that `to_type` is only an optional override. The scoring fields tied to `max_hops`/`top_paths` behavior (short-and-strong bias) add useful interpretive context.

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?

States a specific verb and resource ('Find the relationship path(s) between two people (or a person and a company)') and pins down the graph and edge type it traverses (`connected_to` person↔person ties). It is clearly distinguishable from graph_resolve (UUID resolution) and graph_neighbors (adjacency) named among the siblings.

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

Usage Guidelines4/5

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

Gives the operative context — the 'Paths In' / warm-intro / degrees-of-separation primitive — and the prerequisite that both IDs must come from graph_resolve. It also frames expectations by noting this is bounded beam search returning strong short paths, 'not every possible path.' It stops short of an explicit when-not or a named alternative for exhaustive path enumeration, so it is clear but not fully routing.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources