Skip to main content
Glama

⚡ Gemini Antigravity Bridge

The World's First Bidirectional MCP Bridge Between Google Gemini Spark & DeepMind Antigravity

PyPI DOI Glama Awesome MCP Servers Python MCP License Google AI Developers Forum Tests Google Gemini DeepMind Model Support Stars Discussions

Connect Google's cloud AI (Gemini Spark powered by Gemini 3.8 / 3.7) to your local agentic IDE (Antigravity) with 23 powerful MCP tools — enabling autonomous task dispatch, shared memory, file operations, and cross-agent orchestration.

Quick Start · Architecture · Tools · Connected Apps · Deploy


🌐 What Is This?

Gemini Antigravity Bridge is an MCP (Model Context Protocol) server that creates a persistent, bidirectional communication channel between:

  • ☁️ Google Gemini Spark (cloud-based AI assistant with Google Workspace access, powered by Gemini 3.8 / 3.7)

  • 💻 Google DeepMind Antigravity (local agentic IDE with full system access)

Optimized for Gemini 3.8's next-generation agentic reasoning, this enables a fully autonomous loop where Spark can dispatch coding tasks to your local machine, and Antigravity can request cloud intelligence back from Spark — all through a standardized, secure protocol.

┌──────────────────────────────────────────────────────────────────┐
│                    GEMINI SPARK (Google Cloud)                    │
│  📬 Gmail │ 📁 Drive │ 📅 Calendar │ 🎨 Canva │ 🎥 YouTube     │
└─────────────────────────┬────────────────────────────────────────┘
                          │ MCP over HTTPS
                          ▼
┌──────────────────────────────────────────────────────────────────┐
│              ⚡ GEMINI ANTIGRAVITY BRIDGE (MCP Server)            │
│                                                                  │
│  🔧 System Commands    📂 File Operations    🤖 Agent Dispatch   │
│  🧠 Shared Memory      🔄 Project Sync       📊 Status Reports  │
│                                                                  │
│  Tunnel: ngrok / Cloudflare (permanent HTTPS domain)             │
└─────────────────────────┬────────────────────────────────────────┘
                          │ Local MCP + Message Injection
                          ▼
┌──────────────────────────────────────────────────────────────────┐
│             ANTIGRAVITY IDE (Local Machine)                       │
│  🖥️ Terminal │ 📝 Code Editor │ 🌳 Git │ 🧪 Tests │ 🚀 Deploy  │
└──────────────────────────────────────────────────────────────────┘

Related MCP server: simple_mcp_demo

🏆 Why This Bridge?

Feature

This Project

Other MCP Servers

Bidirectional Cloud ↔ Local

Autonomous Agent Task Dispatch

Cross-Agent Shared Memory

Antigravity Conversation Injection

Spark Connected Apps Orchestration

Google Workspace Integration

✅ (via Spark)

Partial

Local File System Access

Some

System Command Execution

Some


🚀 Quick Start

Prerequisites

  • Python 3.10+

  • ngrok account (free tier) with a reserved domain

  • Google Gemini Spark (Advanced/Ultra subscription)

  • Google DeepMind Antigravity IDE

Installation

# Clone the repository
git clone https://github.com/nandhakumar-murugan/gemini-antigravity-bridge.git
cd gemini-antigravity-bridge

# Install dependencies or install package directly
pip install -r requirements.txt
# OR install as a CLI tool:
pip install -e .

# Configure environment
cp .env.example .env
# Edit .env with your NGROK_AUTHTOKEN and NGROK_DOMAIN

# Launch the bridge (via script or CLI)
gemini-bridge
# or: python run_with_tunnel.py

Connect to Gemini Spark

  1. Open Gemini Spark → Settings → Connected Apps

  2. Click "Add a custom app"

  3. Enter your public MCP URL: https://your-domain.ngrok-free.dev/mcp

  4. Spark will discover all 23 tools automatically!


🛠️ Available Tools (23)

🔧 System Execution

Tool

Description

run_system_command

Execute any shell/PowerShell command with captured stdout/stderr

run_batch_commands

Run multiple commands sequentially with error handling

📂 File Operations

Tool

Description

read_file

Read file contents from any path on the local machine

write_file

Create or overwrite files with specified content

edit_file

Surgically edit specific lines in existing files

append_file

Append content to the end of a file

batch_write_files

Create multiple files in a single operation

create_full_project

Scaffold an entire project directory structure

list_directory

List directory contents with metadata

🤖 Agent Orchestration

Tool

Description

run_agent_task

Launch an autonomous Antigravity coding subagent

get_agent_status

Check status and output of a running agent task

terminate_task

Kill a running agent task

🧠 Shared Memory & Sync

Tool

Description

get_bridge_history

Retrieve full cross-client operation history

save_session_note

Write a structured note to shared memory (tagged)

get_session_notes

Read session notes by tag or date range

sync_project_to_gemini

Sync project metadata to Spark's knowledge base

git_quick_status

Quick Git status check for any repository

🌐 Spark Connected Apps

Tool

Description

request_spark_connected_app_action

Dispatch tasks to Spark's connected apps (@Canva, @YouTube, @Gmail, etc.)

get_spark_connected_apps_catalog

List all available connected apps and capabilities

🔗 Antigravity Deep Integration

Tool

Description

list_antigravity_conversations

List all active Antigravity IDE conversations

inject_message

Inject a structured message directly into an Antigravity conversation

send_spark_to_antigravity_task

Dispatch a full task brief from Spark to Antigravity

get_antigravity_agent_report

Get the latest execution report for Spark to review


🔄 Spark Connected Apps

Through the bridge, Antigravity can orchestrate Spark's connected Google & third-party apps:

App

Capabilities

🎨 @Canva

Poster design, infographics, slide decks

📁 @Google Drive

Cloud file search, folder management

📝 @Google Docs

Document creation and collaboration

📌 @Google Keep

Quick notes, flashcards, checklists

🎥 @YouTube

Video search, transcript extraction

📬 @Gmail

Email reading, URL extraction

📓 @Gemini Notebook

Deep research and synthesis

📦 @Dropbox

Cloud storage sync via MCP


🏗️ Architecture

graph TB
    subgraph Cloud["☁️ Google Cloud"]
        Spark["Gemini Spark<br/>Consumer AI Assistant"]
        Gmail["📬 Gmail"]
        Drive["📁 Google Drive"]
        Calendar["📅 Google Calendar"]
        Canva["🎨 Canva"]
    end

    subgraph Bridge["⚡ Antigravity Bridge"]
        MCP["MCP Server<br/>(FastMCP + Starlette)"]
        Tunnel["HTTPS Tunnel<br/>(ngrok / Cloudflare)"]
        Memory["🧠 Shared Memory<br/>(bridge_history.json)"]
        Dashboard["📊 Web Dashboard"]
    end

    subgraph Local["💻 Local Machine"]
        AGY["Antigravity IDE"]
        Terminal["🖥️ Terminal"]
        Git["🌳 Git Repos"]
        Files["📂 File System"]
    end

    Spark -->|"MCP over HTTPS"| Tunnel
    Tunnel --> MCP
    MCP -->|"inject_message"| AGY
    MCP -->|"run_system_command"| Terminal
    MCP -->|"git_quick_status"| Git
    MCP -->|"read/write_file"| Files
    MCP --> Memory
    AGY -->|"save_session_note"| Memory
    Memory -->|"get_agent_report"| Spark
    Spark --> Gmail
    Spark --> Drive
    Spark --> Calendar
    Spark --> Canva

🚢 Deployment

Auto-Start on Windows Boot

The bridge includes a silent startup script that launches automatically when you log in:

📁 %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\
└── GeminiAntigravityBridge.vbs  (silent background launcher)

Cloud Deployment (24/7 Uptime)

# Using Docker
docker build -t gemini-antigravity-bridge .
docker run -d -p 8000:8000 --env-file .env gemini-antigravity-bridge

# Using Render.com / Google Cloud Run
# Push to GitHub → Connect repo → Deploy automatically

📋 Scheduled Monitoring

The bridge supports multi-tier automated monitoring via Gemini Spark schedules:

Tier

Cadence

Purpose

🔴 Instant Trigger

Real-time (on email arrival)

Zero-delay alerts for college & NPTEL emails

🟡 Hourly Sweep

Every 60 minutes

Broad monitoring across all platforms

🟢 Morning Briefing

Daily @ 8:00 AM

Strategic daily plan with exam schedules


🤝 Contributing

Contributions are welcome! Please read the Apache 2.0 License before submitting PRs.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feat/amazing-feature)

  3. Commit your changes (git commit -m 'feat: add amazing feature')

  4. Push to the branch (git push origin feat/amazing-feature)

  5. Open a Pull Request


📄 License

This project is licensed under the Apache License 2.0 — see the LICENSE file for details.


📚 Research Paper & Academic Citation

This framework implements the formal architecture introduced in the published research paper:

AgentShield: A Zero-Trust Runtime Guardrail Architecture for Autonomous Multi-Agent AI Systems with Bidirectional Context Synchronization
Nandhakumar Murugan
Department of Computer Science and Engineering (Cybersecurity), KGiSL Institute of Technology (KiTE), Autonomous
Permanent DOI: 10.5281/zenodo.22259022 | Open Access: Zenodo CERN Repository

If you reference or build upon this architecture in academic or enterprise research, please cite:

@article{murugan2026agentshield,
  title={AgentShield: A Zero-Trust Runtime Guardrail Architecture for Autonomous Multi-Agent AI Systems with Bidirectional Context Synchronization},
  author={Murugan, Nandhakumar},
  journal={Zenodo},
  year={2026},
  doi={10.5281/zenodo.22259022},
  url={https://doi.org/10.5281/zenodo.22259022}
}

👨‍💻 Author

Nandhakumar Murugan
B.E. Computer Science & Cyber Security | KGiSL Institute of Technology
Google Student Ambassador (GID: 36) | Open Source Contributor

GitHub LinkedIn


Built with ❤️ using Google Gemini, DeepMind Antigravity & Model Context Protocol

Available Tools

23 tools
append_fileB

Appends text to the end of an existing file (or creates it if it doesn't exist).

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNo
contentYes
file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of explaining side effects. It accurately discloses the core behavior — appending to an existing file or creating it if absent. It does not mention permission requirements, encoding, or newline handling, but these are minor for such a simple operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence with no filler. It efficiently conveys the essential operation and the create-if-missing fallback.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the primary action but leaves crucial context out: the 'source' parameter is not addressed, and no mention is made of the output or return value. Since the tool operates on files and has an output schema, a complete description should clarify these aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description names 'text' and 'file' informally, but it does not explicitly explain the three parameters. In particular, 'source' is completely unexplained — its role is unclear (e.g., whether it's a source file, a session reference, or something else). Since schema coverage is 0%, the description fails to compensate for the lack of parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: appending text to a file, with a explicit fallback to creating the file if it doesn't exist. The verb 'append' and resource 'file' make the purpose unambiguous, and it distinguishes naturally from siblings like write_file or edit_file by its specific behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given about when to use this tool versus alternatives. It doesn't state 'use this when you need to add to an existing file without overwriting' or contrast with write_file/edit_file. The behavior is implied but not directly advised.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

batch_write_filesA

Creates or updates multiple files in a single tool call. Reduces permission prompts from N to 1. Parameters: files: Dictionary of {"relative/or/abs/filepath": "file_content"} base_dir: Optional root directory (defaults to server CWD)

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYes
sourceNo
base_dirNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states it 'creates or updates' files, which is informative, but it does not mention whether it overwrites existing content without confirmation, whether it creates parent directories, or whether the operation is atomic. Given no annotations, lacks critical behavioral details that affect how an agent might use it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise, consisting of two short sentences. It avoids unnecessary detail and gets straight to the point, making it easy to parse and remember.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives a basic overview but omits important context such as return value structure, error handling behavior, and the purpose of the 'source' parameter. While it is sufficient for a simple batch write, the lack of these details may leave an agent uncertain about edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains the 'files' parameter as a dictionary mapping paths to content, and 'base_dir' as an optional root directory with a default. However, the 'source' parameter is not described at all, leaving its meaning ambiguous. Since only two of three parameters are covered, coverage is incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: it creates or updates multiple files in one call. It also implies a distinction from single-file operations, aligning with the sibling tools like write_file and edit_file, so the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a concrete usage scenario by noting it reduces permission prompts from N to 1, implying preference for batched writes when multiple files are involved. However, it does not explicitly contrast with alternatives like a loop of write_file calls or when to avoid using it (e.g., when you need individual error handling).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_full_projectA

Creates an entire project directory, writes all code files, and runs initial setup/test commands in a SINGLE tool call with 1 permission confirmation. Parameters: project_name: Name of the project folder to create. files: Dictionary of {"rel/path/filename.ext": "file content"} setup_commands: Optional list of commands to run inside the new project (e.g. ["pip install -r requirements.txt", "python test.py"]) working_dir: Parent directory where project folder will be created (defaults to CWD).

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYes
sourceNo
working_dirNo
project_nameYes
setup_commandsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It explains the side effects (creating directory, writing files, running commands) and mentions the permission confirmation, but does not disclose potential risks like overwriting existing files or the impact of running arbitrary setup commands.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, with a clear two-sentence overview followed by a flat parameter list. Every sentence adds value; no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and five parameters, the description is moderately complete. It covers the core action, but misses important context like return values, error conditions, and interaction with existing files—context that would be valuable for an agent deciding to invoke this powerful tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description only paraphrases parameter names. It adds no semantic depth beyond what the parameter names imply. The 'files' parameter's map structure and the behavior of 'setup_commands' are not elaborated, leaving the agent to infer from names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Creates an entire project directory, writes all code files, and runs initial setup/test commands') and distinguishes it from sibling file-writing tools by emphasizing it does all in one call with one permission confirmation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is the all-in-one project creation tool versus the granular write_file/edit_file/batch_write_files siblings. It could be more explicit about when to choose this over batch_write_files, but the single-call permission confirmation hint gives practical guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_fileC

Performs a precise surgical search-and-replace edit in an existing file. Avoids having to rewrite the entire file when making targeted code changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNo
file_pathYes
find_textYes
replace_textYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure, and it only says the edit is 'surgical search-and-replace.' It doesn't disclose failure modes (what happens if find_text isn't found or matches multiple locations), whether edits are in-place, or any safety caveats for a mutating operation. This is a significant gap for a destructive tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with the primary purpose front-loaded. The word 'surgical' adds little information, but overall the description is tight and wastes no words. It could afford to carry more useful content, but what's there is efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. But for a mutating tool with 0% parameter coverage, no annotations, and an undocumented 'source' parameter, the description is incomplete: it leaves match behavior, failure handling, and the extra parameter unexplained. An agent cannot fully predict tool behavior from this definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it mentions nothing about file_path, find_text, replace_text, or the unexplained 'source' parameter (anyOf string/null with default null). The three required params are somewhat self-explanatory by name, but the odd 'source' field is completely undocumented, and no syntax/format guidance is given for the find/replace strings.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: a surgical search-and-replace edit on an existing file. It implicitly differentiates from file-rewriting siblings (write_file, append_file) by noting it avoids rewriting the entire file, though it never names a sibling explicitly. Clear enough for an agent to understand the core operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Avoids having to rewrite the entire file when making targeted code changes' implies this tool is for targeted edits rather than full-file rewrites, which hints at when to prefer it over write_file. However, it never names alternatives explicitly, states when NOT to use it, or covers edge cases like multiple matches or non-existent files.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_agent_statusB

Fetches the live status and output of a running or completed agent task.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description conveys that this is a read-only retrieval operation and covers both running and completed tasks. However, it does not disclose return format, error behavior, or what happens if the task_id is invalid or not found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with a clear verb-object structure and no unnecessary words. It is appropriately sized for the tool's simple purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool, the description states the basic purpose but omits what the returned status and output look like. It also does not mention whether this is a polling endpoint or how it relates to launching agent tasks, leaving the caller with limited operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The task_id parameter is required, but the description gives no explanation of its format, source, or meaning beyond the field name. Since the schema also lacks a description for it, the tool description does nothing to clarify the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (fetches), the object (live status and output of an agent task), and the scope (running or completed). This makes the tool's purpose immediately understandable and distinguishes it from task-launching siblings like run_agent_task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to prefer this tool over alternatives such as get_antigravity_agent_report or get_bridge_history. There are no conditions, prerequisites, or typical usage scenarios mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_antigravity_agent_reportB

Retrieves the structured status report and latest responses from Antigravity. Shows completion notes, modified files, test outputs, and executive summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNo
task_idNo
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It clearly indicates a read-only retrieval and lists the report contents, but does not mention failure modes, prerequisites, or whether any state changes occur.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured, consisting of two focused sentences that convey the tool's purpose and output without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although the description lists the report contents, it lacks essential context about parameter roles, the relationship between task_id and conversation_id, and the expected output structure. This leaves an agent guessing about how to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The three parameters (source, task_id, conversation_id) are completely unexplained, with no indication of their purpose, format, or whether any combination is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action (retrieves structured status report and latest responses) and specifies the resource (Antigravity), plus the main content areas included. This distinguishes it from sibling tools like get_agent_status or get_bridge_history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no explicit guidance on when to use this tool versus similar sibling tools such as get_agent_status or list_antigravity_conversations. The usage context is only implicit from the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_bridge_historyB

Returns the full shared history of all tool calls made through this bridge.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
tool_filterNo
source_filterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It clearly discloses this is a read operation ('Returns') and specifies the scope ('full shared history of all tool calls'). However, it does not disclose whether history persists across sessions, how the limit/filter parameters interact with the returned data, or any other behavioral constraints. For a tool with zero annotation coverage, more disclosure would be warranted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence with no wasted words. It front-loads the core purpose clearly, though it may be under-specified given the number of parameters it fails to address.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, which covers return-value documentation, reducing the need for the description to explain returns. However, with 0% schema parameter coverage, no annotations, and no usage context, the description leaves significant gaps: the three parameters are undocumented and there is no guidance on filtering or limiting behavior. It is minimally adequate but thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate by explaining the parameters. It does not mention limit, tool_filter, or source_filter at all. The parameter names are somewhat self-explanatory and the schema provides types and defaults, but the description adds no meaning beyond what the schema offers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Returns the full shared history of all tool calls made through this bridge.' It is clear about what it does and its scope (full shared history). It distinguishes from siblings since none of the listed sibling tools concern history retrieval, though it doesn't explicitly name an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or when not to use it. The description leaves usage entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_session_notesB

Retrieves all saved session notes from the shared bridge log.

ParametersJSON Schema
NameRequiredDescriptionDefault
tag_filterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the burden for behavioral disclosure. The verb 'Retrieves' implies a read-only operation with no side effects, but no details are given about potential large result sets, errors, or how the 'shared bridge log' is accessed. This is minimally transparent but not fully explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no redundant words or filler. It is well-structured and immediately understandable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks context about when this tool is preferred over similar siblings like 'get_bridge_history' or 'save_session_note'. An output schema exists but is not shown in the prompt, so the description does not need to detail return values, yet it could still provide more contextual differentiators.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage for the single 'tag_filter' parameter is 0% with no description. The parameter name is self-explanatory to some degree and optional, but the description does not mention filtering or the expected value format, leaving semantics under-specified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb 'Retrieves' and identifies resource 'all saved session notes' from the 'shared bridge log', clearly indicating the tool's primary function. It is distinct from sibling tools like 'save_session_note' and 'get_bridge_history', though not explicitly contrasted with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as 'get_bridge_history' or 'save_session_note'. There is also no explanation of how or why to use the optional 'tag_filter' parameter, leaving usage context ambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_spark_connected_apps_catalogA

Returns the complete list and capabilities of external tools & Google Workspace apps connected to Gemini Spark that Antigravity can orchestrate.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description alone carries the burden. It only states the return behavior without disclosing side effects (e.g., read-only, no state changes). For a list tool, it's implicitly safe, but the description does not explicitly state that it performs no modifications or consumes significant resources.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no redundant words or unnecessary details. It is well-structured and front-loaded with the main action ('Returns'), making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (no parameters, no nested objects), the description is complete enough for a user to understand the tool's basic purpose. However, it does not describe the output format beyond 'list and capabilities', and the output schema is not shown in the prompt, so some context about the returned structure is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema coverage is 100% (no parameters). Therefore, the description does not need to explain parameter semantics. The baseline for 0 parameters is 4, and the description adequately matches this.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a complete list and capabilities of external tools and Google Workspace apps, which is a specific, actionable verb ('Returns') with a defined resource. It distinguishes itself from the sibling 'request_spark_connected_app_action' which likely performs an action rather than listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when needing to enumerate available apps and their capabilities, contrasting with the sibling action tool. However, it does not explicitly state when to use this over other listing tools or include exclusions, so it's clear but not fully explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_quick_statusB

Returns high-level Git status: active branch, changed files, untracked files, and recent commit.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNo
repo_dirNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description indicates that the tool returns status information, which suggests a read-only operation, but it does not explicitly disclose whether it modifies anything, what errors may occur, or whether authentication or repository validation is required. With no annotations, more explicit behavioral disclosure would be better.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that front-loads the main purpose and then lists the exact information returned. It contains no unnecessary words or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although the output fields are listed, the description omits crucial parameter semantics and does not provide enough context about how to invoke the tool correctly. The lack of parameter documentation makes the description incomplete for an agent that needs to call it with proper arguments.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The two parameters, 'source' and 'repo_dir', are completely undocumented in the description, and the schema provides no descriptions either. There is no indication of what values are expected, whether they are mutually exclusive, or how they affect the tool's behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Returns high-level Git status') and identifies the resource and scope. It distinguishes this tool from the broader sibling tools by focusing on a concise status summary rather than file operations or command execution.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when this tool should be used—when a quick, high-level Git status is needed—but it does not explicitly state when to prefer alternatives or when not to use it. There is no direct comparison with sibling tools such as run_system_command or read_file.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inject_messageC

Injects a message directly into any Antigravity conversation's inbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
senderNo
messageYes
priorityNo
conversation_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action 'injects directly' without revealing side effects, permission requirements, reversibility, or impact on existing conversations. This is insufficient for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the core action. While efficient, it omits important contextual details that could be added without significant bloat, making it slightly under-specified but not verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has five parameters and zero schema coverage, the description should clarify parameter semantics and usage context. It does neither, nor does it mention output or side effects. An agent would lack essential information to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does not mention any of the five parameters (conversation_id, message, title, sender, priority), leaving their meanings and formats unexplained. This fails to add value beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (inject a message) and the target (Antigravity conversation's inbox). It is specific and distinguishable from siblings like send_spark_to_antigravity_task, which focuses on tasks rather than direct message injection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention any prerequisites, exclusions, or selection criteria, leaving the agent to infer appropriate use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_antigravity_conversationsA

Lists ALL Antigravity projects/conversations with their real names, conversation IDs, last active time, message count, artifact count, and task count.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It implies a read-only operation via 'Lists', but does not explicitly state non-destructiveness or potential performance implications (e.g., large result set). It adds no behavioral details beyond the action itself, which is acceptable for a simple listing but not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the key action and resource, then enumerates return fields. No wasted words; every part adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists (though not shown), so return format is covered. With zero parameters and a clear description of scope and returned attributes, the tool is fully specified for an agent to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has zero parameters, so schema coverage is 100% trivially. The description adds context about what is returned, which is helpful, though no parameter explanations are needed. Baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific action ('Lists ALL Antigravity projects/conversations') and enumerates the exact data returned (real names, IDs, last active time, counts). It clearly distinguishes from siblings, which are about other operations like sending tasks or retrieving reports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose is self-evident as a list-all operation; no explicit when-to-use guidance is given, but no sibling tool performs the same function, so ambiguity is minimal. Clear context is provided by the description, and no exclusions are needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_directoryC

Lists files and directories at the specified path with file sizes.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNo
directory_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The verb 'lists' implies a read-only operation and the description says what is returned (names and sizes), which is the core behavior. However, with no annotations and no explicit statement about side effects, permissions, or error behavior, the description does not fully carry the transparency burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no redundant or promotional wording. It front-loads the action and then provides the key additional detail about file sizes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description leaves out important operational context: the meaning of 'source', whether the listing is recursive, whether hidden files are included, and what errors or permissions may arise. Without an output schema in view, the return shape beyond 'file sizes' is also unclear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no descriptions and the tool description only refers to 'the specified path' without clarifying which parameter is the path or what 'source' means. The 'directory_path' parameter is self-explanatory, but 'source' remains ambiguous and uncompensated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource (directory) and the action (list files and directories), and even adds the useful detail that file sizes are included. It is unambiguous enough for basic selection, though it does not explicitly contrast with sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to prefer this tool over similar capabilities such as run_system_command or read_file, and no mention of recursion, hidden files, or permission requirements. The agent must infer when this listing tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_fileC

Reads the content of a file from the local filesystem.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNo
file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose any behaviors such as error handling, file size limits, encoding assumptions, or whether the file must exist. The agent has no information about what happens on failure or edge cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no fluff or redundancy. It is well-structured and easy to read.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, but the unexplained 'source' parameter creates a gap in completeness. An agent cannot confidently invoke the tool without knowing whether 'source' is required or how it interacts with 'file_path'. The description does not provide enough context for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has two parameters, but the description does not explain their roles. 'file_path' is somewhat self-explanatory by name, but 'source' is ambiguous (e.g., alternative path, URI, or something else). The description fails to compensate for the lack of parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Reads' and the resource 'file from the local filesystem', which is specific. However, it does not differentiate from sibling tools like list_directory or run_system_command, but the core purpose is understandable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. With many sibling tools available (e.g., list_directory, run_system_command, edit_file), an agent has no indication when reading a file is the appropriate choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

request_spark_connected_app_actionB

Dispatches a task from Antigravity to Gemini Spark requesting execution via Spark's connected apps (e.g. @Canva, @Google Drive, @Google Docs, @Google Keep, @YouTube, @Gmail, @Dropbox). Spark will read this request on sync and execute the tool action in the Google ecosystem.

ParametersJSON Schema
NameRequiredDescriptionDefault
appYes
actionYes
sourceNo
contextNo
detailsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It does disclose that the task is dispatched and will be read and executed later by Spark, indicating asynchronous behavior. However, it does not mention side effects, error conditions, authentication requirements, or whether the tool returns an immediate acknowledgment vs. a final result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: two sentences, a clear action verb, and an illustrative list of example apps. It avoids unnecessary detail while covering the essential high-level behavior, making it easy to parse and remember.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no annotations, no parameter descriptions, and an unresolved output schema. The description provides the high-level purpose but fails to give enough context for correct invocation: it does not explain parameter semantics, return values, prerequisites (e.g., app must be in catalog), or what happens after dispatch. Given the moderate complexity of five parameters, the description is insufficient on its own.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover 0% of parameters, and the description only gives examples of values for 'app'. There is no explanation of what 'action', 'details', 'source', or 'context' should contain, nor how they relate to each other. The agent would have to guess or infer critical fields, making parameter semantics severely deficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's verb ('Dispatches a task'), the source/destination (Antigravity to Gemini Spark), and the purpose (execute actions via Spark's connected apps). It also provides concrete examples of target apps, making the purpose highly distinguishable from siblings like send_spark_to_antigravity_task or get_spark_connected_apps_catalog.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used when you need to request execution of an action through a connected app via Gemini Spark, but it does not explicitly contrast with sibling tools or state when not to use it. The async nature ('will read this request on sync') is mentioned, providing some usage context, but explicit guidance on alternatives is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_agent_taskC

Launches an autonomous Antigravity AI agent task using ANTIGRAVITY's credits and models. Routes the task into a real Antigravity conversation via message injection.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYes
sourceNo
workspace_dirNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the tool uses credits/models and routes via message injection, which is some behavioral context. However, it omits details like whether the task runs asynchronously, what the output contains, or side effects on conversations, making it only partially transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler, front-loading the core action. It is concise and well-structured, though it could use the space to add parameter or usage details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters, no annotations, and an output schema not shown, the description is incomplete. It lacks parameter explanations, usage context, output expectations, and prerequisites, so an agent would struggle to call it correctly without additional information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no information about the parameters (prompt, source, workspace_dir). It does not explain their meaning, defaults, or relationships, leaving the agent without any added guidance beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Launches') and resource ('autonomous Antigravity AI agent task'), and adds context about using credits/models and message injection. It is clear and distinct from generic actions, though it doesn't explicitly name sibling tools like inject_message or send_spark_to_antigravity_task to differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. It doesn't mention conditions, exclusions, or compare to related tools such as inject_message or send_spark_to_antigravity_task, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_batch_commandsA

Executes multiple shell/PowerShell commands sequentially in a single tool call. Reduces permission prompts from N to 1. Parameters: commands: List of shell command strings to execute in order. working_dir: Working directory for all commands. stop_on_error: If True, halts execution if any command returns non-zero exit code. timeout_per_command: Max seconds per command (default: 180s).

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNo
commandsYes
working_dirNo
stop_on_errorNo
timeout_per_commandNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral burden. However, it only mentions that commands are executed and does not disclose potential side effects, required permissions, return output, or error handling beyond the stop_on_error parameter. This leaves safety and behavior underspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with a clear main statement and a structured parameter list. No redundant words or filler, and the information is easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema (though not shown), so return-value details are not required in the description. It covers the core functionality, parameter meanings, and a key use-case benefit. Minor gaps like prerequisites or environment assumptions are not mentioned, but they are not critical for a batch command executor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description includes a 'Parameters' section that provides a one-line explanation for each parameter (e.g., 'commands: List of shell command strings to execute in order,' 'stop_on_error: If True, halts execution...'). This adds meaningful semantics beyond the bare schema titles, covering all five parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'executes' and the resource 'multiple shell/PowerShell commands,' and distinguishes it from sibling tools like run_system_command by highlighting the batch nature and the benefit of reducing permission prompts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states a usage guideline: 'Reduces permission prompts from N to 1,' which tells the agent when to prefer this tool (for multiple commands) over individual command execution.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_system_commandC

Executes a shell/PowerShell command on the local system (e.g. python, npm, git, tests, pip). Includes safety filtering and configurable timeout (default: 180s).

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNo
commandYes
working_dirNo
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of disclosing side effects. It mentions 'safety filtering' but does not clarify what commands are restricted, whether it can modify the system, or what the output looks like. No mention of permissions or potential destructive impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and to the point, using examples to illustrate the command type. No unnecessary filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the core purpose is clear, the description lacks essential context for safe and effective use: parameter semantics, output format, safety filtering details, and differentiation from similar tools. An agent would need additional information to call it correctly in all cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description only elaborates the timeout default. Parameters like command (required), working_dir, and the odd 'source' field are not explained. The agent must guess their meaning and usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: executing a shell/PowerShell command on the local system, with concrete examples (python, npm, git, tests, pip). This distinguishes it from the batch variant and other file/agent tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to choose this tool over similar siblings like run_batch_commands. It mentions safety filtering and timeout but does not explain scenarios or trade-offs, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_session_noteB

Saves a note or memory to the shared bridge session log.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
noteYes
sourceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the burden of explaining side effects. It only states that a note is saved, but does not clarify whether the note is appended or overwrites existing ones, whether it persists across sessions, or what the response indicates.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no unnecessary words or detail. It is highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives the core purpose but lacks broader context such as the relationship to 'get_session_notes', whether this is the only way to persist notes, or any expectations about the shared log. The existence of an output schema reduces the need to describe return values, but more context would help.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no descriptions, and the description only mentions 'note' without explaining the meaning or purpose of the 'tag' and 'source' parameters. This leaves the agent guessing about how to properly populate these fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('saves') and the object ('a note or memory to the shared bridge session log'), making the tool's purpose immediately obvious. It also distinguishes itself from the sibling tool 'get_session_notes'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_session_notes' or other logging tools. There is no mention of appropriate contexts or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_spark_to_antigravity_taskA

Sends a crystal-clear, structured task brief from Gemini Spark to Antigravity IDE. Automatically generates a formatted markdown instruction envelope with Task ID, objectives, context, step-by-step actions, and reporting instructions.

Parameters: objective: Clear 1-2 sentence primary goal. context: Optional background, architectural details, or file paths. required_actions: Optional ordered list of specific steps (e.g. ["write tests", "run pytest", "fix bugs"]). conversation_id: Target Antigravity conversation UUID (if None, targets most recent active). working_dir: Target working folder on disk.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNo
contextNo
objectiveYes
working_dirNo
conversation_idNo
required_actionsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that it automatically generates a formatted markdown instruction envelope, which is a useful behavioral detail, but it does not mention side effects, permissions, reversibility, or error handling. This is a moderate disclosure but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the primary purpose, and structured with a parameter list. Every sentence adds value, and there is no redundancy with the schema. It efficiently conveys both function and parameter usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, 1 required) and the presence of an output schema (implied), the description covers most essential aspects: it explains the core behavior, provides parameter details, and notes the default behavior for conversation_id. It lacks guidance on edge cases or how to obtain a conversation UUID, but is otherwise sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful semantics for 5 of 6 parameters, compensating for the 0% schema description coverage. Each described parameter includes purpose and examples (e.g., required_actions lists ordered steps). However, the 'source' parameter is missing from the description, leaving a gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sends a structured task brief from Gemini Spark to Antigravity IDE and describes the generated markdown envelope. It is specific about the verb, resource, and scope, and distinguishes it from siblings by its cross-IDE purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for sending task briefs but provides no explicit guidance on when to use this tool versus alternatives like run_agent_task or inject_message. It lacks exclusions or alternative routing, leaving the agent to infer the use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sync_project_to_geminiB

Called by Antigravity to push a complete project status report and architectural summary into the shared bridge memory. Gemini Spark can read this anytime to understand your exact project state.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNo
summaryYes
key_filesNo
tech_stackNo
project_nameYes
next_milestoneNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the burden. It does disclose the core side effect (pushing data into shared bridge memory) and indicates a sync-like write, but it does not clarify overwrite semantics, idempotency, persistence, or access requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The core purpose and consumer are stated upfront, making it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the output schema reduces the need to document return values, the description still lacks parameter-level guidance and usage conditions for a 6-parameter mutation with no input schema descriptions. It is not complete enough for an agent to invoke confidently in varied situations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has no descriptions (0% coverage), and the description does not explain the parameters. Most names are self-explanatory, but 'source' is ambiguous and there is no guidance on how key_files, tech_stack, next_milestone, or summary should be formatted or used.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action ('push') and the object ('complete project status report and architectural summary into the shared bridge memory'), and identifies the intended consumer ('Gemini Spark'). It is easy to distinguish from most siblings, though it does not explicitly name any alternative tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use guidance or contrast with sibling tools such as send_spark_to_antigravity_task or get_bridge_history. The phrase 'Called by Antigravity' gives some context but does not tell an agent when to choose this over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

terminate_taskA

Terminates or cancels a running agent task by task ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the action but does not disclose side effects, irreversibility, required permissions, or behavior when the task is not found. For a termination tool, more transparency about consequences would be expected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no redundant words. It is well-structured and directly communicates the tool's purpose without any fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple termination tool, the description covers the basic purpose and parameter. However, it omits details about success/failure behavior, return values, or any side effects on the task's resources. Given a moderate complexity, this is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, task_id, is clearly described in the tool description as the identifier used to select the task. The schema provides the type and required status, and the description clarifies its role, achieving full coverage for this simple parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Terminates or cancels'), the object ('running agent task'), and the method ('by task ID'). It is specific and easily distinguishable from sibling tools like run_agent_task and get_agent_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the appropriate context by specifying 'running agent task', making it clear when to use this tool. It does not explicitly list alternatives or when not to use, but the condition is enough for a simple termination action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_fileB

Creates or overwrites a file on the local filesystem with specified content. Automatically creates parent directories if they don't exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNo
contentYes
file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the key behaviors: creating or overwriting files and automatically creating parent directories. It does not mention confirmation prompts or permission issues, but the destructive overwrite action is explicitly stated, which is essential transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and direct, covering the main functionality and a valuable side effect in two sentences. No unnecessary wording or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core behavior, but the 'source' parameter is left unexplained and no information is given about return values or error conditions. For a simple write tool, the gap regarding 'source' is notable, leaving the description somewhat incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not explain any of the parameters. The schema shows file_path and content as required and self-explanatory, but 'source' is ambiguous and the description does not clarify its purpose or relationship to the other parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates or overwrites a file on the local filesystem with specified content, and also mentions auto-creating parent directories. It is specific and distinguishes this tool as a full-file writer, though it does not explicitly reference sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives like edit_file or append_file. It implies full-file replacement with 'overwrites' but does not state conditions for choosing this tool over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 23 tool updatesv0.1.0
    • First observedappend_file
    • First observedbatch_write_files
    • First observedcreate_full_project
    • First observededit_file
    • First observedget_agent_status
    • First observedget_antigravity_agent_report
    • First observedget_bridge_history
    • First observedget_session_notes
    • First observedget_spark_connected_apps_catalog
    • First observedgit_quick_status
    • First observedinject_message
    • First observedlist_antigravity_conversations
    • First observedlist_directory
    • First observedread_file
    • First observedrequest_spark_connected_app_action
    • First observedrun_agent_task
    • First observedrun_batch_commands
    • First observedrun_system_command
    • First observedsave_session_note
    • First observedsend_spark_to_antigravity_task
    • First observedsync_project_to_gemini
    • First observedterminate_task
    • First observedwrite_file

TDQS

C2.9/5.0

Scored across 23 tools

Disambiguation2/5

Multiple tools have overlapping purposes, such as run_system_command vs run_batch_commands, write_file vs batch_write_files, and run_agent_task vs send_spark_to_antigravity_task vs inject_message. The boundaries between session notes, bridge history, and agent status reports are also unclear, creating significant potential for misselection.

Naming Consistency3/5

Most tool names follow a verb_noun pattern, but the verbs are inconsistent across similar actions (e.g., run_agent_task, send_spark_to_antigravity_task, inject_message) and some names like git_quick_status do not follow the pattern. The naming is readable but not systematically consistent.

Tool Count3/5

With 23 tools, the set is at the high end of the 'heavy but not extreme' range. The broad scope of filesystem, shell, agent, notes, and external app operations partially justifies the count, but it feels larger than necessary and could be consolidated.

Completeness4/5

The toolset covers core filesystem operations, command execution, batch operations, agent task management, session notes, and external app integration. Minor gaps exist such as no explicit delete file/note tool and no direct list-agent-tasks function, but the primary workflows are well represented.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A comprehensive Model Context Protocol toolkit that transforms AI assistants into autonomous agents capable of executing real-world tasks across filesystems, web requests, Git workflows, databases, system commands, and AI integrations.
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    An AI-powered development assistant that enables LLMs to securely interact with local development tools including Git, filesystem, Docker, PostgreSQL, and GitHub via the Model Context Protocol.
    -