# visualize_graph

Open interactive HTML graph in browser showing file/symbol dependencies. Supports force/hierarchical/radial layouts, community coloring. Use granularity=symbol to see individual functions/classes/methods as nodes instead of files. Writes an HTML file to disk. For static Mermaid/DOT output use get_dependency_diagram instead. Returns JSON: { outputPath, nodes, edges }.

Agent View of the PolicyLayer registry record for `visualize_graph`. HTML page: https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/visualize-graph

## Facts

- Tool: `visualize_graph`
- Server: Trace (`nikolai-vysotskyi/trace-mcp`) — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp.md
- Homepage: https://github.com/nikolai-vysotskyi/trace-mcp
- Risk category: Execute (High risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "visualize_graph",
    "arguments": {}
  }
}
```

## Why visualize_graph is rated High

This tool performs two notable actions: it writes an HTML file to disk (a filesystem side effect) and opens it in the browser (triggering an external operation). While the primary purpose is visualization/read, the act of writing files and launching browser processes makes this Execute rather than Read.

From the tool's own definition: "'Open interactive HTML graph in browser' and 'Writes an HTML file to disk' — the tool triggers a browser action and writes a file to the filesystem"

## Use case

AI agents invoke visualize_graph to trigger actions in Trace. What it does depends on the arguments the agent supplies, and its effects often reach beyond the immediate call: builds kicked off, notifications sent, workflows started.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Trace:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "visualize_graph": {
      "limits": [
        {
          "counter": "visualize_graph_rate",
          "window": "minute",
          "max": 10,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Trace (190)

- `delete_corpus` — Destructive — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/delete-corpus.md
- `remove_dead_code` — Destructive — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/remove-dead-code.md
- `repair_index` — Destructive — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/repair-index.md
- `call_project_tool` — Execute — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/call-project-tool.md
- `reindex` — Execute — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/reindex.md
- `analyze_perf` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/analyze-perf.md
- `assess_change_risk` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/assess-change-risk.md
- `audit_config` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/audit-config.md
- `benchmark_project` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/benchmark-project.md
- `check_architecture` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/check-architecture.md
- `check_claudemd_drift` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/check-claudemd-drift.md
- `check_duplication` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/check-duplication.md
- `check_edit_safe` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/check-edit-safe.md
- `check_embedding_drift` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/check-embedding-drift.md
- `check_quality_gates` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/check-quality-gates.md
- `check_rename` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/check-rename.md
- `compare_branches` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/compare-branches.md
- `detect_antipatterns` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/detect-antipatterns.md
- `detect_ast_clones` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/detect-ast-clones.md
- `detect_communities` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/detect-communities.md
- `detect_drift` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/detect-drift.md
- `detect_topic_tunnels` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/detect-topic-tunnels.md
- `diff_graph_snapshots` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/diff-graph-snapshots.md
- `discover_claude_sessions` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/discover-claude-sessions.md
- `discover_hermes_sessions` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/discover-hermes-sessions.md
- `embed_repo` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/embed-repo.md
- `explain_architecture` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/explain-architecture.md
- `explain_symbol` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/explain-symbol.md
- `export_decisions` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/export-decisions.md
- `export_graph` — Read — https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/export-graph.md
- …and 160 more: https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=nikolai-vysotskyi-trace-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/nikolai-vysotskyi-trace-mcp
