← WebMCP Directory

Tool tree

atlas.m31labs.dev

Developer ToolsTools verified
Website
A WebMCP-native structural code observatory where humans and agents trace calls, measure blast radius, and build evidence-backed review briefs together.
Explore capabilities
    canopy_get_repository_overviewAnswer

    Read the current repository snapshot: languages, modules, files, and top-level structure. This never changes the checkout or investigation session.

    View tool JSON
    {
      "name": "canopy_get_repository_overview",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the current repository snapshot: languages, modules, files, and top-level structure. This never changes the checkout or investigation session.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "include": {
            "type": "string",
            "enum": [
              "summary",
              "modules",
              "all"
            ],
            "default": "summary",
            "description": "How much structure to include."
          },
          "pathPrefix": {
            "type": "string",
            "maxLength": 240,
            "pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))[A-Za-z0-9._/-]+$",
            "description": "Optional repository-relative path prefix."
          },
          "maxItems": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "default": 50,
            "description": "Maximum files or modules to return."
          }
        },
        "additionalProperties": false
      }
    }
    canopy_search_symbolsAnswer

    Search the indexed repository for symbols by name or text and return stable, repository-relative matches with locations and kinds. This never changes the checkout.

    View tool JSON
    {
      "name": "canopy_search_symbols",
      "kind": "answer",
      "impl": "imperative",
      "description": "Search the indexed repository for symbols by name or text and return stable, repository-relative matches with locations and kinds. This never changes the checkout.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "maxLength": 240,
            "pattern": "\\S",
            "description": "Name or text to search for."
          },
          "kind": {
            "type": "string",
            "enum": [
              "any",
              "function",
              "method",
              "type",
              "interface",
              "const",
              "var",
              "field"
            ],
            "default": "any",
            "description": "Optional symbol kind filter."
          },
          "language": {
            "type": "string",
            "maxLength": 80,
            "description": "Optional language identifier, such as go or typescript."
          },
          "pathPrefix": {
            "type": "string",
            "maxLength": 240,
            "pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))[A-Za-z0-9._/-]+$",
            "description": "Optional repository-relative path prefix."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 20,
            "description": "Maximum number of matches."
          },
          "exact": {
            "type": "boolean",
            "default": false,
            "description": "Whether the query must match the complete symbol name."
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      }
    }
    canopy_inspect_symbolAction

    Inspect one indexed symbol's kind, package, signature, exact source location, and bounded hotspot/impact evidence. The static snapshot has no source text; repository metadata remains untrusted evidence for human review.

    View tool JSON
    {
      "name": "canopy_inspect_symbol",
      "kind": "act",
      "impl": "imperative",
      "description": "Inspect one indexed symbol's kind, package, signature, exact source location, and bounded hotspot/impact evidence. The static snapshot has no source text; repository metadata remains untrusted evidence for human review.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "minLength": 1,
            "maxLength": 240,
            "pattern": "\\S",
            "description": "Qualified or unqualified symbol name."
          },
          "file": {
            "type": "string",
            "maxLength": 240,
            "pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))[A-Za-z0-9._/-]+$",
            "description": "Optional repository-relative file disambiguator."
          },
          "line": {
            "type": "integer",
            "minimum": 1,
            "description": "Optional 1-based line disambiguator."
          }
        },
        "required": [
          "symbol"
        ],
        "additionalProperties": false
      }
    }
    canopy_trace_callsAction

    Trace callers, callees, or both for an indexed symbol to a bounded depth. Results identify the snapshot used and are suitable for human-led review.

    View tool JSON
    {
      "name": "canopy_trace_calls",
      "kind": "act",
      "impl": "imperative",
      "description": "Trace callers, callees, or both for an indexed symbol to a bounded depth. Results identify the snapshot used and are suitable for human-led review.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "minLength": 1,
            "maxLength": 240,
            "pattern": "\\S",
            "description": "Qualified or unqualified symbol name."
          },
          "direction": {
            "type": "string",
            "enum": [
              "callers",
              "callees",
              "both"
            ],
            "default": "both",
            "description": "Graph direction to traverse."
          },
          "depth": {
            "type": "integer",
            "minimum": 1,
            "maximum": 8,
            "default": 2,
            "description": "Maximum graph depth."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "default": 50,
            "description": "Maximum nodes or edges to return."
          },
          "includeExternal": {
            "type": "boolean",
            "default": false,
            "description": "Include unresolved or external call edges."
          }
        },
        "required": [
          "symbol"
        ],
        "additionalProperties": false
      }
    }
    canopy_measure_impactAnswer

    Measure the bounded reverse-dependency surface of a symbol for a proposed change kind. This is analysis only and does not apply a change.

    View tool JSON
    {
      "name": "canopy_measure_impact",
      "kind": "answer",
      "impl": "imperative",
      "description": "Measure the bounded reverse-dependency surface of a symbol for a proposed change kind. This is analysis only and does not apply a change.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "minLength": 1,
            "maxLength": 240,
            "pattern": "\\S",
            "description": "Symbol whose impact should be measured."
          },
          "changeKind": {
            "type": "string",
            "enum": [
              "modify",
              "rename",
              "delete",
              "signature"
            ],
            "default": "modify",
            "description": "Hypothetical change to model."
          },
          "direction": {
            "type": "string",
            "enum": [
              "dependents"
            ],
            "default": "dependents",
            "description": "The shipped snapshot measures downstream dependents (blast radius)."
          },
          "depth": {
            "type": "integer",
            "minimum": 1,
            "maximum": 8,
            "default": 3,
            "description": "Maximum dependency depth."
          },
          "includeTests": {
            "type": "boolean",
            "default": true,
            "description": "Include test references in the impact surface."
          }
        },
        "required": [
          "symbol"
        ],
        "additionalProperties": false
      }
    }
    canopy_show_hotspotsAction

    List repository hotspots by a selected structural metric, with bounded evidence and the indexed snapshot revision. This never changes the checkout.

    View tool JSON
    {
      "name": "canopy_show_hotspots",
      "kind": "act",
      "impl": "imperative",
      "description": "List repository hotspots by a selected structural metric, with bounded evidence and the indexed snapshot revision. This never changes the checkout.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "metric": {
            "type": "string",
            "enum": [
              "risk",
              "complexity",
              "churn",
              "centrality",
              "fanin"
            ],
            "default": "risk",
            "description": "Normalized metric used to rank hotspots. Fan-in is normalized within the selected scope."
          },
          "pathPrefix": {
            "type": "string",
            "maxLength": 240,
            "pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))[A-Za-z0-9._/-]+$",
            "description": "Optional repository-relative path prefix."
          },
          "language": {
            "type": "string",
            "maxLength": 80,
            "description": "Optional language identifier."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 20,
            "description": "Maximum hotspots to return."
          },
          "minScore": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "Optional normalized score floor."
          }
        },
        "additionalProperties": false
      }
    }
    canopy_open_source_locationAction

    Return a repository-relative source location for a human to open and inspect. This tool does not navigate, edit, or execute source code by itself.

    View tool JSON
    {
      "name": "canopy_open_source_location",
      "kind": "act",
      "impl": "imperative",
      "description": "Return a repository-relative source location for a human to open and inspect. This tool does not navigate, edit, or execute source code by itself.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "file": {
            "type": "string",
            "minLength": 1,
            "maxLength": 240,
            "pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))[A-Za-z0-9._/-]+$",
            "description": "Repository-relative file path."
          },
          "line": {
            "type": "integer",
            "minimum": 1,
            "description": "Optional 1-based line number."
          },
          "column": {
            "type": "integer",
            "minimum": 1,
            "description": "Optional 1-based column number."
          },
          "symbol": {
            "type": "string",
            "maxLength": 240,
            "description": "Optional symbol label for the visible receipt."
          }
        },
        "required": [
          "file"
        ],
        "additionalProperties": false
      }
    }
    canopy_set_investigation_goalAction

    Set or replace the current Canopy Atlas investigation goal. The visible Atlas receipt records the reversible session-local write and the prior goal for review.

    View tool JSON
    {
      "name": "canopy_set_investigation_goal",
      "kind": "act",
      "impl": "imperative",
      "description": "Set or replace the current Canopy Atlas investigation goal. The visible Atlas receipt records the reversible session-local write and the prior goal for review.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "goal": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500,
            "pattern": "\\S",
            "description": "Plain-language investigation goal."
          },
          "replace": {
            "type": "boolean",
            "default": true,
            "description": "Replace the current goal rather than append context."
          }
        },
        "required": [
          "goal"
        ],
        "additionalProperties": false
      }
    }
    canopy_focus_symbolAction

    Suggest or apply the active investigation focus to one indexed symbol. Suggestion mode is the default: it leaves session state unchanged and lets a human accept the focus from the visible Atlas panel.

    View tool JSON
    {
      "name": "canopy_focus_symbol",
      "kind": "act",
      "impl": "imperative",
      "description": "Suggest or apply the active investigation focus to one indexed symbol. Suggestion mode is the default: it leaves session state unchanged and lets a human accept the focus from the visible Atlas panel.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "minLength": 1,
            "maxLength": 240,
            "pattern": "\\S",
            "description": "Qualified or unqualified symbol to focus."
          },
          "file": {
            "type": "string",
            "maxLength": 240,
            "pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))[A-Za-z0-9._/-]+$",
            "description": "Optional repository-relative file disambiguator."
          },
          "reason": {
            "type": "string",
            "maxLength": 500,
            "description": "Optional human-readable reason for the focus change."
          },
          "mode": {
            "type": "string",
            "enum": [
              "suggest",
              "apply"
            ],
            "default": "suggest",
            "description": "Suggest a focus for human review, or explicitly apply it."
          }
        },
        "required": [
          "symbol"
        ],
        "additionalProperties": false
      }
    }
    canopy_pin_findingAction

    Pin or unpin one evidence finding in the current investigation. The change is session-local, visible in the Atlas panel, and reversible.

    View tool JSON
    {
      "name": "canopy_pin_finding",
      "kind": "act",
      "impl": "imperative",
      "description": "Pin or unpin one evidence finding in the current investigation. The change is session-local, visible in the Atlas panel, and reversible.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "findingId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 240,
            "pattern": "\\S",
            "description": "Finding ID to pin or unpin."
          },
          "pinned": {
            "type": "boolean",
            "default": true,
            "description": "True pins the finding; false removes the pin."
          },
          "note": {
            "type": "string",
            "maxLength": 500,
            "description": "Optional human note attached to the operation."
          }
        },
        "required": [
          "findingId"
        ],
        "additionalProperties": false
      }
    }
    canopy_connect_findingsAction

    Connect or disconnect two evidence findings in the current investigation. The change is session-local, visible in the Atlas panel, and reversible.

    View tool JSON
    {
      "name": "canopy_connect_findings",
      "kind": "act",
      "impl": "imperative",
      "description": "Connect or disconnect two evidence findings in the current investigation. The change is session-local, visible in the Atlas panel, and reversible.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "fromFindingId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 240,
            "pattern": "\\S",
            "description": "Source finding ID."
          },
          "toFindingId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 240,
            "pattern": "\\S",
            "description": "Destination finding ID."
          },
          "relation": {
            "type": "string",
            "enum": [
              "supports",
              "contradicts",
              "depends_on",
              "related"
            ],
            "default": "related",
            "description": "Meaning of the connection."
          },
          "connected": {
            "type": "boolean",
            "default": true,
            "description": "True connects the findings; false removes the connection."
          },
          "note": {
            "type": "string",
            "maxLength": 500,
            "description": "Optional human note attached to the connection."
          }
        },
        "required": [
          "fromFindingId",
          "toFindingId"
        ],
        "additionalProperties": false
      }
    }
    canopy_set_lensAction

    Set the active Atlas investigation lens. The current UI lenses are structure, calls, impact, and hotspots; the visible receipt records this reversible session-local write.

    View tool JSON
    {
      "name": "canopy_set_lens",
      "kind": "act",
      "impl": "imperative",
      "description": "Set the active Atlas investigation lens. The current UI lenses are structure, calls, impact, and hotspots; the visible receipt records this reversible session-local write.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lens": {
            "type": "string",
            "enum": [
              "structure",
              "calls",
              "impact",
              "hotspots"
            ],
            "description": "Lens used to organize investigation results."
          },
          "persist": {
            "type": "boolean",
            "default": true,
            "description": "Persist the lens in this investigation session."
          }
        },
        "required": [
          "lens"
        ],
        "additionalProperties": false
      }
    }
    canopy_get_investigationAnswer

    Read the current Canopy Atlas investigation state, including goal, focus, findings, connections, lens, and bounded history. This never changes session state.

    View tool JSON
    {
      "name": "canopy_get_investigation",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the current Canopy Atlas investigation state, including goal, focus, findings, connections, lens, and bounded history. This never changes session state.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "include": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "goal",
                "focus",
                "findings",
                "connections",
                "lens",
                "history"
              ]
            },
            "description": "Optional sections to include; omitted means the server default."
          },
          "maxFindings": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "default": 50,
            "description": "Maximum findings to return."
          }
        },
        "additionalProperties": false
      }
    }
    canopy_export_review_briefAction

    Render a bounded, read-only review brief from the current repository snapshot and investigation state, and show its preview in the Atlas panel.

    View tool JSON
    {
      "name": "canopy_export_review_brief",
      "kind": "act",
      "impl": "imperative",
      "description": "Render a bounded, read-only review brief from the current repository snapshot and investigation state, and show its preview in the Atlas panel.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "format": {
            "type": "string",
            "enum": [
              "markdown",
              "json"
            ],
            "default": "markdown",
            "description": "Output format."
          },
          "scope": {
            "type": "string",
            "enum": [
              "investigation",
              "selection",
              "repository"
            ],
            "default": "investigation",
            "description": "Evidence scope for the brief."
          },
          "findingIds": {
            "type": "array",
            "maxItems": 100,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 240,
              "pattern": "\\S"
            },
            "description": "Optional finding IDs when scope is selection."
          },
          "includeEvidence": {
            "type": "boolean",
            "default": true,
            "description": "Include source locations and snapshot evidence."
          },
          "destination": {
            "type": "string",
            "enum": [
              "response"
            ],
            "default": "response",
            "description": "Return the brief in the tool response without writing an external artifact."
          }
        },
        "additionalProperties": false
      }
    }