Skip to main content
Glama
dave1362

RCA-MCP Connector

rca_graph_add_edge

Add a directed causal edge (source→target) between existing nodes, with strength and confidence scoring, while automatically rejecting cycles to keep the graph acyclic.

Instructions

Add a directed causal edge (source → target) to a graph. Both nodes must already exist -- add them first with rca_graph_add_node. Automatically rejects edges that would create a cycle (DAG enforcement) rather than silently allowing an invalid graph.

Args: params (EdgeOpInput): - graph_id: the graph to add to - source, target: existing node names (cause -> effect) - weight: causal strength, 0.0-1.0 (default 1.0) - confidence: how sure you are of this edge, 0.0-1.0 (default 1.0) -- distinct from weight; a weak-but-certain edge and a strong-but-uncertain one score differently - method: free-text provenance label, e.g. "manual", "granger_causality", "domain_expert" -- display only

Returns: str: JSON {added_edge, weight, confidence, total_edges}, or a value/not_found error if either node doesn't exist or the edge would create a cycle

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv4.1.15
    • addedInput schema / $defs / EdgeOpInput / properties / client_id / description
      Added value: +"Client namespace ID"
    • addedInput schema / $defs / EdgeOpInput / properties / token / description
      Added value: +"API key to authenticate this request"
  2. Changed6 schema fields changedv4.1.14
    • addedInput schema / $defs / EdgeOpInput / properties / confidence / description
      Added value: +"How confident you are in this edge, 0.0-1.0 (default 1.0)"
    • addedInput schema / $defs / EdgeOpInput / properties / graph_id / description
      Added value: +"Graph to add the edge to"
    • addedInput schema / $defs / EdgeOpInput / properties / method / description
      Added value: +"How this edge was determined, e.g. 'manual', 'granger_causality', 'domain_expert' — free text, used for provenance display only"
    • addedInput schema / $defs / EdgeOpInput / properties / source / description
      Added value: +"Cause node name (must already exist in the graph)"
    • addedInput schema / $defs / EdgeOpInput / properties / target / description
      Added value: +"Effect node name (must already exist in the graph)"
    • addedInput schema / $defs / EdgeOpInput / properties / weight / description
      Added value: +"Causal strength, 0.0-1.0 (default 1.0 = full strength)"
  3. First observedv4.1.13

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations, the description discloses important behavior: DAG enforcement via automatic cycle rejection rather than silent acceptance, error results when nodes are missing or cycles would form, and the semantic distinction between weight and confidence. This adds genuinely useful behavioral context beyond the structured fields.

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?

The description is well-structured and front-loaded: the core operation and key constraint appear first, followed by a concise parameter list and return behavior. Every sentence adds information, and bullet-style formatting makes it easy for an agent to parse.

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?

For a graph mutation tool, the description covers the essential context: required ordering (nodes first), DAG constraints, parameter semantics, and return/error behavior. The output schema exists and the description still explains what the returned JSON contains, so an agent has enough to call the tool 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?

Although schema description coverage is listed at 0%, the description compensates by walking through key parameters: graph_id, source, target, weight, confidence, and method. It adds interpretive meaning—especially the weight-versus-confidence distinction and the display-only nature of method—but omits token and client_id parameters, which slightly reduces completeness.

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 states a specific verb and resource: 'Add a directed causal edge (source → target) to a graph.' It also distinguishes itself from the sibling rca_graph_add_node by explicitly instructing that nodes must be added first, making the tool's role unambiguous.

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?

The description gives clear context: nodes must already exist and should be created via rca_graph_add_node, and cycle-causing edges will be rejected. It provides a useful prerequisite and an implied exclusion, though it does not explicitly contrast with every nearby sibling such as rca_graph_remove_edge.

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