Skip to main content
Glama
angrysky56

Cognitive Diagram Navigation MCP Server

by angrysky56

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
diagram_createA

Create a new diagram with specified nodes and edges.

A diagram is the primary unit of reasoning, representing a directed acyclic graph.

Args: nodes: List of node specifications. Each must have: - id: Unique identifier (string) - label: Human-readable label (string) - type: One of 'operation', 'terminal', 'control', 'composite' - metadata: Optional dict of additional properties - embedding: Optional list of floats for semantic search

edges: List of edge specifications. Each must have:
    - source: Source node ID (string)
    - target: Target node ID (string)
    - label: Relationship label (string)
    - weight: Optional numeric weight (default: 1.0)
    - properties: Optional dict of additional properties

Returns: dict with diagram_id, num_nodes, num_edges, validity

diagram_loadC

Load and return complete diagram structure.

Args: diagram_id: ID of diagram to load

Returns: dict with full diagram structure or error

navigate_breadth_firstB

Explore diagram structure using breadth-first traversal.

Systematically visits nodes level by level, useful for understanding structure.

Args: diagram_id: ID of diagram to explore start_node: Starting node ID max_depth: Maximum exploration depth (default: 5)

Returns: dict with explored_nodes, edges_traversed, total_explored

navigate_guidedB

Find guided path from start to goal node.

Uses shortest-path algorithm for optimal traversal.

Args: diagram_id: ID of diagram start_node: Starting node ID goal_node: Target node ID heuristic: 'distance' (default), 'reward', or 'semantic_similarity'

Returns: dict with path, cost, num_steps, found flag

analyze_reachabilityB

Analyze reachability from source node.

Computes all nodes reachable from source and their distances.

Args: diagram_id: ID of diagram source: Source node ID targets: Optional specific nodes to check

Returns: dict with reachable_nodes list, distances, target_reachability

explore_reasoning_spaceB

Wander the diagram based on a curiosity metric using NavigationMemory.

Prioritizes nodes that have a low exploration_count.

Args: diagram_id: ID of diagram start_node: Starting node ID steps: Number of steps to take (default: 5) temperature: Exploration factor (0.0 = greedy unvisited, 1.0 = highly random)

Returns: dict with path, steps_taken, and updated exploration_counts

diagram_extractC

Extract a subgraph into a composite node.

Args: diagram_id: Source diagram ID node_ids: List of nodes to extract composite_label: Label for the new composite node

Returns: dict containing success status, new diagram ID, and new composite node ID

apply_rewrite_ruleA

Apply a formal Double-Pushout (DPO) rewrite rule to a diagram.

Args: diagram_id: Target diagram ID rule_spec: Serialize RewriteRule dict with 'lhs' and 'rhs' patterns match_mapping: Mapping of rule LHS node IDs to diagram node IDs (from pattern_match)

Returns: dict containing success status and modified diagram stats

export_proofB

Export a diagram's transformation history as a structured proof.

Args: diagram_id: ID of diagram to export proof for output_format: 'text' (natural language) or 'json' (structured)

Returns: dict with proof steps and metadata

check_diagram_equivalenceC

Check if two diagrams are structurally equivalent (isomorphic).

Args: diagram_id_1: First diagram ID diagram_id_2: Second diagram ID

Returns: dict with equivalence status

explore_equivalent_statesA

Explore alternative diagram states reachable via rewrite rules.

Constructs a meta-graph of structurally unique diagram configurations.

Args: diagram_id: Starting diagram ID rules: List of serialized RewriteRule dicts max_depth: Maximum BFS depth max_states: Maximum number of unique states to discover

Returns: dict with metadata about discovery and unique states

pattern_matchB

Find all pattern matches within a diagram.

Implements subgraph matching to locate structural patterns.

Args: diagram_id: ID of diagram to search pattern: Pattern spec with 'nodes' (dict) and 'edges' (list) Each edge tuple: (source_id, target_id, constraints_dict)

Returns: dict with matches list, num_matches

compute_metricsB

Compute structural metrics on diagram.

Computes graph-theoretic properties useful for understanding complexity.

Args: diagram_id: ID of diagram metrics: List of metrics to compute. Options: - 'chain_length': Longest path in DAG - 'branching_factor': Average out-degree - 'density': Overall connectivity - 'num_nodes': Node count - 'num_edges': Edge count - 'is_dag': Whether diagram is acyclic

Returns: dict with computed metrics

node_semantic_searchB

Search for nodes semantically similar to a target embedding.

Args: diagram_id: ID of diagram target_embedding: The embedding vector (list of floats) to compare against top_k: Maximum number of results to return (default: 5) threshold: Minimum cosine similarity score to include (default: 0.5)

Returns: dict with similar nodes and similarity scores

diagram_saveC

Force an immediate sync of a specific diagram to disk.

Args: diagram_id: ID of diagram to save

Returns: dict containing success status

diagram_list_savedA

List all diagram IDs currently persisted on disk.

Returns: dict with list of saved diagram IDs

diagram_deleteB

Delete a diagram from both active memory and persisted storage.

Args: diagram_id: ID of diagram to delete

Returns: dict containing success status

server_infoA

Return server capabilities and status information.

Returns: dict with version, capabilities, active_diagrams, resources

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 18 tools

Disambiguation3/5

Most tools have distinct purposes, but there is a cluster of overlapping traversal tools (navigate_breadth_first, navigate_guided, analyze_reachability, explore_reasoning_space) and two 'explore' tools (explore_equivalent_states, explore_reasoning_space) that could be confused. Pattern_match vs check_diagram_equivalence and compute_metrics vs analyze_reachability also have fuzzy boundaries, though descriptions help distinguish them.

Naming Consistency3/5

Most names follow a verb_noun pattern, but prefixing is inconsistent: some tools use a 'diagram_' prefix (diagram_load, diagram_save, diagram_create, diagram_delete, diagram_list_saved), while others in the same domain omit it (pattern_match, export_proof, compute_metrics). Readable but not predictable.

Tool Count3/5

18 tools is on the heavy side for what is essentially a graph/diagram reasoning server, and the traversal/exploration family feels padded with several variants (BFS, guided, curiosity, reachability) that partially duplicate each other.

Completeness4/5

Strong lifecycle coverage: create, load, save, list, delete, plus analysis (metrics, reachability, equivalence, pattern match), navigation, rewrite rules, semantic search, and proof export. The main gap is no direct node/edge-level edit/add/remove operation outside of rewrite rules, which agents may occasionally need.

Maintenance

ActivityInactive
ResponsivenessNo issues