Code Logic Visualization MCP Server - Analyzes source code using Tree-sitter AST parsing and provides interactive graph visualization of code structure, control flow, and dependencies
VisualSynapse has 16 tools with reasonable naming conventions (verb-based: create_, set_, get_, list_, delete_, add_, remove_, search_, update_, highlight_, analyze_). However, definitions suffer from several critical gaps: descriptions are often too long and lack action-oriented clarity, parameter descriptions are present but inconsistent in quality, output schemas are NOT documented anywhere in the visible code, and error handling is minimal. The server relies on implicit behavior rather than explicit contracts. Per-tool analysis shows strong naming but weak schema and output documentation, a pattern seen in alpha-stage tools that haven't undergone production code review.
Adds a directed edge between two existing nodes. IMPORTANT: The 'label' parameter is REQUIRED. Always provide a descriptive label that explains the relationship.
Adds a custom node to a specific session graph. Use this tool to manually insert nodes representing code entities, logic steps, or data points.
Analyzes source code files using AST parsing and generates an interactive code flow graph.
Clears all nodes and edges from the current session while preserving the session.
Creates a new graph session and sets it as active for the workspace. IMPORTANT: Only create a new session when explicitly requested by the user. When working with the same codebase or making incremental changes to existing graphs, reuse the current session instead of creating a new one.
Deletes a graph session and all its associated data. Use this tool to clean up old or unused analysis sessions to free up resources or clear clutter. WARNING: This action is irreversible. All nodes and edges within the session will be permanently removed.
No output schemas documented for any tool. LLMs cannot predict what fields will be returned or their types. This violates the foundational pattern that all tools must document return structures.
Destructive operations (delete_session, clear_graph) lack confirmation steps or dry-run support. An agent could accidentally delete entire sessions or clear graphs with no recovery path.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 46 | - | v1 |
Retrieves a code snippet from a file at specified line numbers for reference within the graph context.
Retrieves the current graph for a session, including all nodes and edges.
Lists sessions for a workspace and shows the currently active one. Use this first when entering a workspace to discover available sessions.
Highlights a node with a specific color for visual emphasis.
Lists all available graph sessions. Use this to see which sessions already exist before creating a new one, or to find a session ID to query.
Removes a directed edge from the session.
Removes a node and its connections from the session (active or explicit).
Searches for nodes in a session matching a query string (searches id, label, and type).
Sets the active session for a workspace. Subsequent tool calls can omit session_id.
Updates the position of a node in the canvas for the current session.
Error handling is implicit and unguided. Tools do not return actionable error messages with recovery suggestions. E.g., 'Session not found. Call list_sessions() to see available sessions.' guidance is absent.
Parameter descriptions for READ-only tools (get_workspace_sessions, list_sessions, get_graph, search_nodes) are minimal (50 chars or less). Descriptions should clarify when to call them and what they return.
No pagination support visible for list_sessions or get_workspace_sessions. If workspaces have many sessions, returning all at once could exhaust context. Limit and pagination parameters should be added.
Tool descriptions sometimes exceed 1024 characters or are overly verbose with examples. E.g., create_session includes a long IMPORTANT note that could be in a separate discovery tool or system prompt.