WikifitaGitHub live67e8de5
outro · antigravity-ecosystem/antigravity-mcp-tools

MCP Tool Integration — Ghidra, Chrome DevTools, NotebookLM & WebFetch

Complete inventory and analysis of the 4 MCP servers with 100+ tools integrated into the Antigravity research harness: Ghidra (29), Chrome DevTools (31), NotebookLM (41), and WebFetch (1).

Baixar raw

MCP Tool Integration — Ghidra, Chrome DevTools, NotebookLM & WebFetch

Source: /Users/alefita/.gemini/antigravity/mcp_config.json and per-server tool definitions Total tools: 100+ across 4 MCP servers Configuration date: July 1-3, 2026


1. MCP Architecture Overview

1.1 What Is MCP

The Model Context Protocol (MCP) is a standard protocol for connecting AI agents to external tools and data sources. It defines:

  • A transport layer (Stdio for local processes, SSE for remote servers)
  • A tool schema format (JSON Schema for input/output)
  • A discovery mechanism (tools/list)
  • A lifecycle (initialize, call, response)

1.2 Global Configuration

{
  "notebooklm": {
    "command": "notebooklm-mcp",
    "status": "disabled"
  },
  "ghidra": {
    "command": "uv run --script /Users/alefita/.lib/ghidra-mcp/bridge_mcp_ghidra.py",
    "status": "active"
  },
  "fitalabs-webfetch": {
    "command": "https://api.unifita.app/mcp",
    "transport": "sse",
    "status": "active"
  }
}
ServerTransportStatusTool Count
GhidraStdio (local Python script)Active29
Chrome DevToolsStdio (local process)Active31
NotebookLMStdio (CLI binary)Disabled41
WebFetchStdio (JSON config)Active1
fitalabs-webfetchRemote SSEActive1 (web_fetch)

1.3 Integration Topology

graph TB
    subgraph "Antigravity Agent"
        AGENT[Agent Core]
        MCP_CLIENT[MCP Client]
    end

    subgraph "Local MCP Servers"
        GHIDRA_MCP["Ghidra MCP<br/>(uv run bridge_mcp_ghidra.py)"]
        CDP_MCP["Chrome DevTools MCP<br/>(CDP protocol)"]
        NLM_MCP["NotebookLM MCP<br/>(notebooklm-mcp) [disabled]"]
        WF_MCP["WebFetch MCP"]
    end

    subgraph "Remote MCP Servers"
        FITA["fitalabs-webfetch<br/>(api.unifita.app)"]
    end

    subgraph "External Tools"
        GHIDRA_APP["Ghidra<br/>(Reverse Engineering)"]
        CHROME["Chrome Browser<br/>(DevTools Protocol)"]
        NLM["Google NotebookLM<br/>(Cloud API)"]
    end

    AGENT --> MCP_CLIENT
    MCP_CLIENT -->|"Stdio"| GHIDRA_MCP
    MCP_CLIENT -->|"Stdio"| CDP_MCP
    MCP_CLIENT -->|"Stdio"| NLM_MCP
    MCP_CLIENT -->|"Stdio"| WF_MCP
    MCP_CLIENT -->|"SSE"| FITA

    GHIDRA_MCP <-->|"UDS/TCP"| GHIDRA_APP
    CDP_MCP <-->|"CDP WebSocket"| CHROME
    NLM_MCP <-->|"REST API"| NLM

2. Ghidra MCP Server — 29 Tools

2.1 Overview

The Ghidra MCP server provides a complete reverse engineering and debugging toolkit. It connects to running Ghidra instances via Unix Domain Sockets (UDS) or TCP, enabling the agent to import binaries, analyze functions, set breakpoints, and trace execution.

2.2 Tool Inventory

Instance Management (6 tools)

ToolFunctionKey Parameters
list_instancesDiscover running Ghidra instances via UDS/TCPNone
connect_instanceSwitch to a different Ghidra projectproject (name)
check_toolsVerify tool availabilitytools (comma-separated names)
list_tool_groupsList all tool categories with countsNone
load_tool_groupLoad all tools in a categorygroup (name or "all")
unload_tool_groupUnload a tool categorygroup (name)

Binary Import (1 tool)

ToolFunctionKey Parameters
import_fileImport binary with auto-analysisfile_path, project_folder, language, compiler_spec, auto_analyze

Supports ELF, PE, Mach-O, and raw firmware binaries. For raw binaries, the language must be specified (e.g., ARM:LE:32:Cortex).

Debugger — Full WinDbg Integration (22 tools)

The debugger category provides complete dynamic analysis via the dbgeng (WinDbg) engine:

Connection:

ToolFunction
debugger_attachAttach to a running process by name or PID
debugger_detachDetach from the debugged process
debugger_statusGet connection status, loaded modules, active traces

Breakpoints:

ToolFunction
debugger_set_breakpointSet software (INT3) or hardware breakpoint at a Ghidra address
debugger_remove_breakpointRemove breakpoint by ID
debugger_list_breakpointsList all active breakpoints with status

Execution:

ToolFunction
debugger_continueResume execution until breakpoint or exception
debugger_step_intoSingle-step into calls (configurable count)
debugger_step_overStep over calls (configurable count)

Inspection:

ToolFunction
debugger_registersRead all CPU registers (EAX-EDI, ESP, EBP, EIP, EFLAGS)
debugger_read_memoryRead memory region as hex dump with DWORD interpretation
debugger_read_argsRead function arguments based on calling convention
debugger_stack_traceGet call stack with return addresses mapped to Ghidra symbols
debugger_modulesList loaded modules (DLLs) with runtime and Ghidra base addresses

Tracing:

ToolFunction
debugger_trace_functionNon-breaking function tracing (~0.5ms overhead per hit)
debugger_trace_logRead trace log with timestamped function calls and arguments
debugger_trace_listList all active and completed traces with hit counts
debugger_trace_stopStop a function trace (ID or -1 for all)

Watchpoints:

ToolFunction
debugger_watch_memorySet hardware watchpoint on memory range (1/2/4 bytes, read/write/readwrite)
debugger_watch_logRead watchpoint hit log with values and accessors
debugger_watch_stopStop a watchpoint (ID or -1 for all)

Resolution:

ToolFunction
debugger_resolve_ordinalResolve DLL ordinal export to runtime and Ghidra addresses

2.3 Diablo 2 References

The Ghidra MCP tool definitions contain references to Diablo 2-specific entities:

  • DLL: D2Common.dll
  • Symbols: pUnit, nSkillId
  • Calling convention: __stdcall

This indicates active game reverse engineering work. Diablo 2 modding and analysis is a well-known RE community activity, and the tool definitions were likely configured with D2-specific parameters for convenience.

2.4 Auto-Translation Between Ghidra and Runtime Addresses

A critical feature: the debugger tools automatically translate between Ghidra's static analysis addresses and the runtime addresses of the debugged process. When a breakpoint is set at a Ghidra address in D2Common.dll, the MCP server calculates the runtime address using the module base address offset:

runtime_address = ghidra_address - ghidra_base + runtime_base

This eliminates the manual address calculation that normally makes Ghidra-debugger integration painful.


3. Chrome DevTools MCP Server — 31 Tools

3.1 Overview

The Chrome DevTools MCP server provides full browser automation via the Chrome DevTools Protocol (CDP). It enables the agent to navigate pages, fill forms, click elements, take screenshots, monitor network traffic, and run performance traces.

3.2 Tool Inventory

Navigation (5 tools)

ToolFunction
navigate_pageNavigate to URL
new_pageOpen new tab/page
close_pageClose a tab/page
select_pageSwitch to a specific tab
list_pagesList all open tabs

Interaction (9 tools)

ToolFunction
clickClick an element by selector
fillFill a single form field
fill_formFill multiple form fields at once
type_textType text character by character
press_keyPress a keyboard key (Enter, Tab, etc.)
hoverHover over an element
dragDrag from one element to another
upload_fileUpload a file to a file input
handle_dialogAccept/dismiss alert/confirm/prompt dialogs

Observation (6 tools)

ToolFunction
take_screenshotCapture visual screenshot (full page or viewport)
take_snapshotCapture DOM state as structured text
take_memory_snapshotCapture heap memory snapshot
screencast_startStart video screencast
screencast_stopStop video screencast
wait_forWait for element, navigation, or timeout

Network (2 tools)

ToolFunction
list_network_requestsList all network requests with status, type, timing
get_network_requestGet detailed info for a specific request (headers, body, response)

Console (2 tools)

ToolFunction
list_console_messagesList all console log/warn/error messages
get_console_messageGet detailed info for a specific console message

Performance (3 tools)

ToolFunction
performance_start_traceStart performance trace recording
performance_stop_traceStop trace and get results
performance_analyze_insightGet AI analysis of performance data

Audit (1 tool)

ToolFunction
lighthouse_auditRun Lighthouse audit (accessibility, SEO, performance, PWA)

Advanced (3 tools)

ToolFunction
evaluate_scriptExecute JavaScript in the page context
emulateEmulate device, geolocation, timezone
resize_pageResize the browser viewport

3.3 Use Cases in the Research Harness

Use CaseTools Used
Buganizer automation (see antigravity-browser-prompting)navigate_page, fill_form, click, take_snapshot
Moma searchnavigate_page, fill, press_key, take_snapshot, click
Web researchnavigate_page, take_snapshot, list_network_requests
Performance analysisperformance_start_trace, lighthouse_audit
ClickFix forensicsnavigate_page (via Tor), take_screenshot, list_network_requests

4. NotebookLM MCP Server — 41 Tools

4.1 Overview

The NotebookLM MCP server provides full programmatic control over Google NotebookLM — a research tool that uses AI to analyze, synthesize, and generate content from uploaded sources. With 41 tools, it is the most extensive MCP integration in the ecosystem.

Current status: Disabled in mcp_config.json. The notebooklm-mcp CLI binary is referenced but not active.

4.2 Tool Inventory

Notebook Management (6 tools)

ToolFunction
createCreate a new notebook
deleteDelete a notebook
getGet notebook details
listList all notebooks
renameRename a notebook
describeSet notebook description

Source Management (8 tools)

ToolFunction
addAdd source (URL, text, Google Drive, file, ChatGPT export)
deleteDelete a source
renameRename a source
describeSet source description
get_contentGet source content
list_driveList Google Drive files available for import
sync_driveSync Drive sources for latest content
listList all sources in a notebook

Research (3 tools)

ToolFunctionKey Parameters
research_startStart research generationmode: "fast" (~30s, ~10 sources) or "deep" (~5min, ~40 sources)
research_statusCheck research progressresearch_id
research_importImport research results as notesresearch_id

Querying (4 tools)

ToolFunction
notebook_queryAsk a question to a single notebook
notebook_query_startStart async query (for long-running)
notebook_query_statusCheck async query status
cross_notebook_queryAsk a question across multiple notebooks

Studio Artifacts (6 tools)

ToolFunction
studio_createGenerate artifact (10 types, see below)
studio_reviseRevise an existing artifact
studio_statusCheck generation progress
studio_deleteDelete an artifact
download_artifactDownload artifact to local filesystem
export_artifactExport artifact to external format

Supported artifact types (10):

  1. Audio overview (podcast-style)
  2. Video explainer
  3. Infographic
  4. Slide deck
  5. Report
  6. Flashcards
  7. Quiz
  8. Data table
  9. Mind map
  10. (Custom/studio type)

Notes (4 tools)

ToolFunction
createCreate a note
listList all notes
updateUpdate note content
deleteDelete a note

Sharing (4 tools)

ToolFunction
batchBatch share multiple notebooks
inviteInvite collaborator
publicSet public access
statusGet sharing status

System (6 tools)

ToolFunction
labelLabel a notebook
tagTag content
noteCreate annotation
pipelineRun multi-step pipeline
chat_configureConfigure chat settings
refresh_auth / save_auth_tokensAuthentication management
server_infoGet server version and capabilities

4.3 The NLM Skill File

A dedicated skill file at skills/nlm-skill/SKILL.md (35,031 bytes) provides comprehensive instructions for using NotebookLM within the research harness. This is the largest single skill file in the ecosystem, reflecting the complexity of the NotebookLM integration.

4.4 Research Workflow Example

flowchart TD
    subgraph "Source Ingestion"
        S1["Add URLs as sources"]
        S2["Upload PDFs"]
        S3["Import Google Drive docs"]
    end

    subgraph "Research Phase"
        R1["research_start(mode='deep')"]
        R2["research_status(poll)"]
        R3["research_import(to notes)"]
    end

    subgraph "Query Phase"
        Q1["notebook_query(specific question)"]
        Q2["cross_notebook_query(synthesis question)"]
    end

    subgraph "Artifact Generation"
        A1["studio_create(type='report')"]
        A2["studio_create(type='audio')"]
        A3["studio_create(type='flashcards')"]
        A4["download_artifact"]
    end

    S1 --> R1
    S2 --> R1
    S3 --> R1
    R1 --> R2
    R2 -->|"complete"| R3
    R3 --> Q1
    Q1 --> Q2
    Q2 --> A1
    Q2 --> A2
    Q2 --> A3
    A1 --> A4

5. WebFetch MCP — 1 Tool

5.1 Tool Definition

ToolFunctionParameters
web_fetchFetch URL content as clean markdownurl (required), max_length (default: 50,000 chars)

5.2 Implementation

The WebFetch MCP server fetches a URL via HTTP GET, parses the HTML response, extracts text content, and returns it as clean Markdown. It handles:

  • HTML-to-Markdown conversion
  • Character encoding detection
  • Content truncation to max_length
  • Basic JavaScript-rendered content (limited)

5.3 Usage Pattern

The agent uses WebFetch for:

  • Reading documentation pages
  • Fetching API specifications
  • Retrieving academic papers
  • Accessing raw content from URLs discovered via Chrome DevTools MCP

The 50,000 character default limit is sufficient for most web pages but may truncate long documents.


6. fitalabs-webfetch — Remote MCP

6.1 Configuration

{
  "fitalabs-webfetch": {
    "command": "https://api.unifita.app/mcp",
    "transport": "sse",
    "status": "active"
  }
}

This is a remote MCP server hosted at Alefita's own infrastructure (api.unifita.app). It uses Server-Sent Events (SSE) transport for persistent connections.

6.2 Significance

The existence of a custom MCP server at api.unifita.app indicates that Alefita built her own MCP-compatible infrastructure, likely for:

  • Custom tool integrations specific to her workflow
  • Proxy/gateway to other services
  • Secure access to private resources

7. Cross-Server Integration Patterns

7.1 Forensic Analysis Workflow

The ClickFix incident response (see clickfix-handoff) used multiple MCP servers in concert:

flowchart LR
    CDP["Chrome DevTools MCP"] -->|"navigate via Tor"| TARGET["Adversary Infrastructure"]
    CDP -->|"screenshot"| EVIDENCE["Forensic Evidence"]
    CDP -->|"network requests"| IOCs["IOC Extraction"]
    WF["WebFetch MCP"] -->|"fetch WHOIS"| WHOIS["Domain Registration"]
    WF -->|"fetch DNS"| DNS["DNS Records"]

7.2 Research Workflow

The unit distance research (see unit-distance) used:

  • WebFetch to access academic papers and OpenAI blog posts
  • NotebookLM (when enabled) for deep research generation
  • Chrome DevTools for browsing arXiv and research databases

7.3 Reverse Engineering Workflow

The Ghidra MCP enables a complete RE workflow:

flowchart TD
    IMPORT["import_file(binary)"] --> ANALYZE["Auto-analysis"]
    ANALYZE --> BROWSE["Browse functions, data, strings"]
    BROWSE --> ATTACH["debugger_attach(process)"]
    ATTACH --> BP["debugger_set_breakpoint(entry)"]
    BP --> RUN["debugger_continue()"]
    RUN --> INSPECT["debugger_registers() + debugger_read_memory()"]
    INSPECT --> TRACE["debugger_trace_function(key_fn)"]
    TRACE --> LOG["debugger_trace_log()"]
    LOG --> DOCUMENT["Document findings"]

8. Tool Distribution Analysis

8.1 By Category

CategoryTool CountPercentage
NotebookLM4141%
Chrome DevTools3131%
Ghidra2929%
WebFetch11%
Total102100%

8.2 By Domain

DomainToolsServers
Research & Knowledge42NotebookLM, WebFetch
Browser Automation31Chrome DevTools
Reverse Engineering & Debugging29Ghidra

8.3 Active vs. Disabled

StatusServersTools
ActiveGhidra, Chrome DevTools, WebFetch, fitalabs-webfetch62
DisabledNotebookLM41

The NotebookLM server is the largest but disabled, possibly due to authentication issues, API rate limits, or because it was configured for a specific research session and not needed for ongoing work.


9. Significance for the Antigravity Ecosystem

9.1 The Harness as Laboratory

The 100+ MCP tools transform the Antigravity harness from a conversational AI into a research laboratory:

  • Ghidra provides computational analysis (binary examination, debugging)
  • Chrome DevTools provides observational capability (web browsing, DOM inspection)
  • NotebookLM provides knowledge synthesis (research generation, cross-notebook querying)
  • WebFetch provides data retrieval (URL content extraction)

9.2 Domain Independence

The same tool set serves radically different research domains:

DomainTools UsedSessions
Mathematical researchWebFetch, NotebookLMUnit Distance Season 2
Incident responseChrome DevTools, WebFetchClickFix (session 9f6ac576)
Game reverse engineeringGhidra, Chrome DevToolsDiablo 2 analysis
System forensicsGhidra, Chrome DevToolsBinary analysis
Deep researchNotebookLM, WebFetchStrawberry Deep Research

9.3 The MCP Standard as Enabler

MCP's standardized tool schema means the agent does not need domain-specific training to use these tools. The tool definitions (JSON Schema) provide enough information for the agent to:

  1. Discover available tools via tools/list
  2. Understand input/output formats via schemas
  3. Compose tools into workflows (e.g., browse -> extract -> analyze)

This is the key architectural insight: MCP makes the harness tool-agnostic. Adding a new tool domain (e.g., database access, API testing, hardware control) requires only a new MCP server, not agent retraining.


Cross-References

  • antigravity-browser-prompting — Browser automation profiles for Buganizer and Moma (powered by Chrome DevTools MCP)
  • antigravity-hermes-wiki — The Hermes agent research wiki that documents the dual-agent MCP bridge architecture
  • antigravity-strawberry-research — The Strawberry Deep Research that was conducted using these tool integrations
  • antigravity-unified-scheduler — The Unified Scheduler Thesis connecting to Ghidra's SHA-256 analysis capabilities
  • clickfix-handoff — The ClickFix incident response that used Chrome DevTools and WebFetch for forensic analysis
  • unit-distance — The mathematical research that used WebFetch for accessing source materials