Files
Artemis-Eapil/mcp_server/README.md
T
somew1nd ec5010220b feat(mcp): implement double-insurance global-only MCP and testing rules installation
- Install MCP configs and Artemis mobile testing rules strictly into user home directories (~), avoiding project workspace pollution
- Add double-insurance rules synchronization injecting into both primary global instruction files (e.g. ~/.gemini/GEMINI.md, ~/.claude/CLAUDE.md, ~/.cursorrules, ~/.codeium/windsurf/memories/global_rules.md) and modular rules/ directories
- Support JSONC parsing (comments and trailing commas) and automatic .bak backups when merging existing IDE configuration files
- Update README and Quick Start documentation to clarify automatic global MCP & rule mounting across all major AI IDEs
2026-08-18 18:40:38 -07:00

5.4 KiB

πŸ”Œ Universal MCP Server for ARTEMIS

This directory contains the universal Model Context Protocol (MCP) server for ARTEMIS, enabling seamless mobile device automation inside AI IDEs and agents like Antigravity, Cursor, Claude Code, OpenClaw, and Windsurf.

πŸ—οΈ Architecture

mcp_server/
β”œβ”€β”€ __init__.py           # Package exports (mcp, main)
β”œβ”€β”€ base.py               # Shared FastMCP instance
β”œβ”€β”€ server.py             # Server entrypoint (stdio / sse)
β”œβ”€β”€ rules.md              # AI Agent Testing Mindset & system prompt rules for IDEs
β”œβ”€β”€ background/           # Background process execution
β”‚   └── task_runner.py    # Subprocess runner for Artemis Agent
β”œβ”€β”€ notifiers/            # Multi-environment notification adapters
β”‚   β”œβ”€β”€ base.py           # BaseNotifier abstract class
β”‚   β”œβ”€β”€ agentapi.py       # Jetski / Antigravity AgentAPI notifier
β”‚   β”œβ”€β”€ webhook.py        # OpenClaw / CI / Discord / Slack webhook notifier
β”‚   β”œβ”€β”€ desktop.py        # Native OS toast notifier
β”‚   β”œβ”€β”€ file.py           # File audit logger
β”‚   └── composite.py      # Multi-channel notification dispatcher
β”œβ”€β”€ tools/                # Modular standard MCP tools
β”‚   β”œβ”€β”€ task_runner.py    # mobile_run_task
β”‚   β”œβ”€β”€ task_manager.py   # mobile_manage_task
β”‚   β”œβ”€β”€ device_state.py   # mobile_get_device_state
β”‚   └── inspect_trace.py  # mobile_inspect_trace
└── utils/                # Environment, device, and trace utilities
    β”œβ”€β”€ device_utils.py   # Cross-platform ADB and emulator resolver
    β”œβ”€β”€ env_utils.py      # Python interpreter and process manager
    └── trace_store.py    # Traces directory and status manager

🧠 AI Agent Behavioral Rules (rules.md)

When connecting ARTEMIS to AI coding assistants like Antigravity, Claude Code, Cursor, or Windsurf, providing the assistant with domain-specific testing discipline is critical for generating reliable test code.

The included rules.md file contains the Mobile Testing Mindset (ARTEMIS Integration) guideline. It teaches the AI agent how to properly collaborate with ARTEMIS:

  1. The Runnable Code Principle & Active Exploration: Instructs the AI to never guess or hallucinate UI transitions. Instead, it must first explore the live app via ARTEMIS MCP tools (mobile_run_task, etc.) to discover and verify real-world interaction paths before writing test scripts.
  2. Flash vs. Pro Routing Strategy: Guides the AI to choose Flash for rapid, straightforward UI actions (< 30 steps) and Pro for complex multi-agent planning, polling loops, or video/log diagnosis.
  3. Latency & Timing Compensation: Clarifies the difference between AI exploratory latency (e.g., model decision intervals) and the deterministic timing requirements of final test code.
  4. "Dynamic-First, Coordinate-Fallback" Locator Pattern: Teaches the AI to prioritize dynamic UI locators (Resource IDs, OCR text, semantics) for layout resilience, while implementing absolute coordinate fallbacks for maximum execution reliability.

How Global Rules & MCP are Installed

When you run uv run artemis mcp --install all (or target a specific IDE like --install cursor, --install claude, etc.), the installer automatically synchronizes both global MCP server configuration and global testing rules into the corresponding user home directories (without creating project-level rule files in your workspace):

  • Antigravity / Jetski: Automatically installs global rules to ~/.gemini/rules/artemis.md.
  • Cursor: Automatically installs global YAML-frontmatter rule file at ~/.cursor/rules/artemis.mdc.
  • Claude Code / Desktop: Automatically installs global rules to ~/.claude/rules/artemis.md.
  • Windsurf: Automatically installs global rules to ~/.codeium/windsurf/rules/artemis.md.
  • VS Code: Automatically installs global rules to ~/.vscode/rules/artemis.md.
  • Cline / Roo Code: Automatically installs global rules to ~/.cline/rules/artemis.md and ~/.roo/rules/artemis.md.
  • OpenClaw: Automatically installs global rules to ~/.openclaw/rules/artemis.md.

(Note: If you prefer manual configuration, you can also copy the contents of rules.md into your IDE's system prompt or global rules settings.)

πŸ› οΈ MCP Tools Overview

  • mobile_run_task: Asynchronously launches an autonomous mobile automation task (Flash or Pro model).
  • mobile_manage_task: Manages task lifecycle (status, stop, inject_instruction).
  • mobile_get_device_state: Real-time observer (screenshot or OCR+XML hierarchy).
  • mobile_inspect_trace: Granular trace inspection, visual action overlays, and agent reasoning.

πŸš€ How to Run & Configure

CLI Execution

# Start server over stdio
python -m mcp_server

# Or via Artemis CLI
uv run artemis mcp

IDE Configuration

Run the automated installer to detect and configure your IDE (Antigravity, Cursor, Claude Code/Desktop, OpenClaw):

uv run artemis mcp --install all
# Or install specifically for Antigravity:
uv run artemis mcp --install antigravity

Manual JSON Config Generation

Run uv run artemis mcp --generate-config antigravity (or all) to output ready-to-use configuration JSON with resolved .venv Python and project paths.