Cognitive Diagram Navigation MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 18 tools
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.
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.
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.
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.