Skip to main content
Glama

agy-mcp

MCP server for Antigravity IDE — skill management, config bridge, and agent orchestration.

Wraps Antigravity's local ~/.agents/ directory (skills, .skill-lock.json, config.json) as MCP tools, so an assistant can list, read, install, and search Antigravity skills, and read or write Antigravity configuration, without shelling out manually.

Status (0.2.0)

Single-file server (src/agy_mcp/server.py) exposing 11 tools plus agy_help, covered by a 34-test pytest suite (skill CRUD, config, GitHub install with stubbed clone, security regressions) running in CI on Linux + Windows, Python 3.11 and 3.12.

Security note: 0.1.0 joined caller-supplied skill names directly into filesystem paths, so agy_delete_skill("..") could delete arbitrary directories and agy_read_skill("../victim") could read files outside the skills directory. 0.2.0 validates every skill name against a strict charset and containment-checks the resolved path before any read, write, or delete. Because this server is driven by an LLM, treat these regressions as load-bearing — see tests/test_security.py before weakening name validation.

Related MCP server: OSource-Manager

Tools

Tool

Description

agy_list_skills

List installed skills from ~/.agents/skills/, merged with lock metadata

agy_read_skill

Read a skill's full SKILL.md

agy_search_skills

Search skill names and content

agy_install_skill

Write or update a skill's SKILL.md, register it in the lock file

agy_delete_skill

Remove an installed skill

agy_install_skill_from_github

Clone a GitHub repo, pull a SKILL.md out of it, install as a skill

agy_get_config / agy_set_config

Read/write Antigravity's config.json

agy_list_providers

List configured LLM providers from config

agy_skill_lock_status

Read .skill-lock.json (sources, versions)

agy_version

Report the installed Antigravity CLI version

agy_help

List all tools

Quick start

cd D:\Dev\repos\agy-mcp
uv sync
uv run agy-mcp

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "agy-mcp": {
      "command": "uv",
      "args": ["run", "--directory", "D:\\Dev\\repos\\agy-mcp", "agy-mcp"]
    }
  }
}

By default it reads and writes ~/.agents/ — override with the AGENTS_DIR environment variable (resolved per call, so it can also be set just for tests).

Development

uv sync --group dev        # pytest, pytest-asyncio, ruff, pre-commit
uv run pytest -q           # 34 tests, < 1s, no network
uv run ruff check src tests
uv run ruff format src tests
just bootstrap             # Windows: also installs the pre-commit hook

CI (.github/workflows/ci.yml) runs lint + tests on ubuntu-latest and windows-latest across Python 3.11/3.12; scripts/ci.ps1 mirrors the same gates locally on Windows.

Requirements

  • Python 3.11+

  • uv

  • FastMCP 3.4+

Available Tools

12 tools
agy_delete_skillA

Permanently remove an installed skill.

Return Format

{"success": bool, "name": str}

Examples

agy_delete_skill("old-skill")

Inputs: skill_name (required), ctx. Returns: object

agy_get_configB

Read the full Antigravity configuration.

Return Format

{"config": dict, "path": str}

Inputs: ctx. Returns: object

agy_helpB

Show all available agy-mcp tools and usage.

Inputs: ctx. Returns: object

agy_install_skillB

Create or update a skill by writing its SKILL.md.

Also registers the skill in .skill-lock.json as a local skill.

Return Format

{"success": bool, "name": str}

Examples

agy_install_skill("my-skill", "# My Skill\n\nBe helpful and concise.")

Inputs: content (required), skill_name (required), ctx. Returns: object

agy_install_skill_from_githubA

Install a skill directly from a GitHub repository.

Clones the repo temporarily and extracts the skill directory.

Return Format

{"success": bool, "repo": str, "skill_name": str}

Examples

agy_install_skill_from_github("sandraschi/python-expert") agy_install_skill_from_github("sandraschi/mcp-central-docs", "skills/fleet-expert")

Inputs: repo (required), ctx, skill_path. Returns: object

agy_list_providersA

List configured LLM providers from Antigravity config.

Reads the providers section from config.json.

Return Format

{"providers": [{"name": str}], "count": int}

Inputs: ctx. Returns: object

agy_list_skillsA

List all installed Antigravity agent skills with source info.

Scans ~/.agents/skills/ and merges metadata from .skill-lock.json.

Return Format

{"skills": [{"name": str, "source": str, "source_type": str}], "count": int}

Inputs: ctx. Returns: object

agy_read_skillA

Read a skill's full SKILL.md content.

Return Format

{"name": str, "content": str, "meta": dict}

Examples

agy_read_skill("python-expert")

Inputs: skill_name (required), ctx. Returns: object

agy_search_skillsB

Search across all installed skill names and content.

Return Format

{"results": [{"name": str, "match": str}], "count": int}

Examples

agy_search_skills("python") agy_search_skills("docker")

Inputs: query (required), ctx. Returns: object

agy_set_configA

Set a configuration value in Antigravity config.json.

Creates the config file if it doesn't exist.

Return Format

{"success": bool, "key": str, "value": any}

Examples

agy_set_config("default_model", "claude-sonnet-4-6")

Inputs: key (required), value (required), ctx. Returns: object

agy_skill_lock_statusB

Read the .skill-lock.json to see installed skill sources and versions.

Return Format

{"version": int, "skills": [{"name": str, "source": str, "source_type": str}], "count": int}

Inputs: ctx. Returns: object

agy_versionA

Get the installed Antigravity CLI version.

Return Format

{"version": str, "path": str}

Inputs: ctx. Returns: object

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 12 tools

    Disambiguation4/5

    Most tools target clearly distinct actions (list/read/search/install/delete skills vs. config get/set), but agy_list_skills and agy_skill_lock_status both report installed skill source info and could be confused. The detailed return formats and examples help resolve most ambiguity.

    Naming Consistency4/5

    Tools consistently use the agy_ prefix with snake_case and a mostly verb_noun pattern like agy_list_skills and agy_set_config. Minor exceptions like agy_help, agy_version, and agy_skill_lock_status deviate from the verb_noun convention but remain readable and predictable.

    Tool Count5/5

    12 tools is well-scoped for a server managing Antigravity skills, configuration, providers, and version info. Each tool has a defined role, and the count is appropriate without feeling bloated or sparse.

    Completeness4/5

    The skill lifecycle is well covered: list, read, search, install, delete, and GitHub-based install are all present, with config get/set and provider listing. Minor gaps exist such as no direct provider add/remove tool or config deletion, but these can be worked around via set_config.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI agents to discover, install, and manage SKILL.md skills from a Git-backed registry via MCP tools for search, install, and list operations.
      20 npm
      2
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables managing a canonical library of agent skills and MCP servers, syncing them across multiple development harnesses, and adding, importing, or configuring them through MCP tools.
      218 npm
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables MCP-capable agents to search, inspect, lint, and safely install Agent Skills from the skillmd registry mid-conversation.
      20 npm
      143
      MIT