Arrgon
Turns the free Google Gemini Desktop App into an autonomous coding agent by exposing an MCP server over stdio or HTTP; Gemini calls file tools (list, read, write, patch, search, move, delete) and a sandboxed command runner to perform read โ edit โ verify coding loops on a local project workspace.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ArrgonRead src/app.py, fix the bug in fetchUser, and run pytest to verify"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ก What is Arrgon?
Arrgon is a local Model Context Protocol (MCP) server that gives Google Gemini the ability to read, write, search, and patch code files โ and run developer commands like flutter analyze, pytest, git diff, npm test, etc. โ all inside a sandboxed, zero-shell environment on your machine.
Use Gemini as a free AI coding agent. No API keys. No subscriptions. Just connect Arrgon to the Gemini Desktop App and start prompting.
What can you do with it?
๐ "Read
lib/main.dartand find all TODO comments in the project"โ๏ธ "Add error handling to the
fetchUser()function and runflutter analyzeto check for issues"๐งช "Write a unit test for the auth module, then run
pytestto verify it passes"๐ "Refactor
utils.pyto use dataclasses and checkgit diffto review the changes"
Gemini autonomously loops through read โ edit โ verify cycles until the task is done.
Related MCP server: MCP ToolHub
๐ Quickstart (2 Minutes)
Prerequisites
Python 3.10+ installed (python.org)
Gemini Desktop App installed (gemini.google.com/app)
Step 1: Clone & Install
git clone https://github.com/omkar-ukirde/Arrgon.git
cd Arrgon
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txtStep 2: Connect to Gemini Desktop App
Open the Gemini Desktop App โ Settings (gear icon) โ Connected Apps โ Add custom connected app.
You will see two setup methods. Use Local MCP (recommended):
Option A: Local MCP (Recommended)
The Gemini app launches and manages the server process for you. Zero maintenance.
Field | Value |
Setup method | Local MCP |
Server name |
|
Description |
|
Command | See below ๐ |
Sandbox | Full access |
Command โ paste the full path to start_mcp.sh:
/full/path/to/Arrgon/start_mcp.shExample (on macOS):
/Users/yourname/Arrgon/start_mcp.sh๐ก Changing your project folder:
Edit
DEFAULT_WORKSPACEinsidestart_mcp.shto point to whatever project directory you want to work on (e.g.,/Users/yourname/MyProject), orPass the directory directly as an argument in the Command field:
/Users/yourname/Arrgon/start_mcp.sh /Users/yourname/MyProjectAlways choose Full access under Sandbox settings so Arrgon can read and write to your workspace without permission errors.
Click Next โ Connect, and you're done!
Option B: Cloud MCP (HTTP Mode)
If you prefer running the server yourself in a terminal (useful for debugging or switching projects):
1. Start the server:
cd Arrgon
./run_server.sh /path/to/your/project2. In Gemini Desktop App, choose Cloud MCP and enter:
Field | Value |
URL |
|
Note: You must keep the terminal running. Closing it stops the server.
Step 3: Start Coding with Gemini
Go back to the Gemini chat and try:
"List all files in my project and give me an overview of the codebase structure"
Gemini will call Arrgon's tools to browse your files, read code, and respond with a structured overview. From there, you can ask it to make changes, run tests, debug errors โ anything a coding assistant would do.
โ๏ธ How It Works
โโโโโโโโโโโโโโโโโโโโโโโ MCP (stdio or HTTP) โโโโโโโโโโโโโโโโโโโโโโโโ
โ Gemini Desktop โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโบ โ Arrgon โ
โ App (free) โ JSON-RPC tool calls โ MCP Server โ
โ โ โ โ
โ "Fix the bug in โ โโโบ read_file("src/app.py") โ Reads files โ
โ src/app.py and โ โโโ file content with line #s โ Writes atomically โ
โ run the tests" โ โโโบ patch_file(search, replace) โ Searches code โ
โ โ โโโ "Successfully patched" โ Runs safe commands โ
โ โ โโโบ run_command("pytest") โ โ
โ โ โโโ test results โ All sandboxed to โ
โ โ โ your workspace dir โ
โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโArrgon exposes 8 MCP tools that Gemini calls autonomously. Gemini decides which tools to call and in what order โ forming edit โ verify loops on its own.
๐ก๏ธ Security
Arrgon is designed to be safe for autonomous AI usage on your local machine. Every operation is sandboxed.
run_command โ Zero-Shell Terminal Runner
The run_command tool is the most security-critical component. Here's what makes it safe:
Layer | Protection |
| Commands are parsed with |
Binary whitelist | Only pre-approved developer tools are allowed: |
Subcommand whitelist | Even allowed binaries are restricted to safe subcommands. For example, |
Destructive token blocklist | Tokens like |
Hard timeout | Commands are killed after 60 seconds (configurable 5sโ180s) to prevent hangs from interactive prompts. |
Output truncation | Massive outputs are truncated to 15,000 characters so they don't crash Gemini's context window. |
Filesystem Sandbox
Layer | Protection |
Path traversal defense | All paths are resolved against |
Symlink escape detection | Paths are fully resolved with |
Atomic writes | Files are written to a temporary file first, then atomically swapped via |
Single-match patching |
|
๐ง Available Tools
Tool | Description |
| Lists workspace files with sizes, filtering out |
| Reads file content with numbered lines. Supports |
| Creates or replaces a file atomically. Auto-creates parent directories. |
| Exact search-and-replace on code. Requires a unique match to prevent unintended edits. |
| Regex or text search across all code files. Returns file paths, line numbers, and snippets. |
| Moves or renames files/directories within the workspace. |
| Deletes a single file (directory deletion is blocked for safety). |
| Sandboxed CLI runner for whitelisted dev commands (see Security). |
๐๏ธ Customization
Environment Variables
Variable | Default | Description |
|
| Root directory for all file operations |
|
| Host to bind HTTP server (Cloud MCP mode only) |
|
| Port for HTTP server (Cloud MCP mode only) |
Adding More Commands
Edit the ALLOWED_COMMANDS dictionary in mcp_coding_agent.py to allow more tools:
ALLOWED_COMMANDS: dict[str, Optional[set[str]]] = {
# Add your own:
"cargo": {"build", "test", "check", "clippy"},
"go": {"build", "test", "vet", "fmt"},
"make": {"test", "build", "lint"},
# ... existing entries ...
}Set a value of None to allow any subcommand for a binary (only for trusted tools like test runners):
"mypy": None, # Any arguments are allowedSwitching Projects
Local MCP: Edit the command in Gemini Desktop App settings to point to a different workspace directory.
Cloud MCP: Stop the server (Ctrl+C) and restart with a new path:
./run_server.sh /path/to/different/project๐งช Running Tests
Arrgon includes 18 automated tests covering command validation, path security, file operations, and HTTP endpoint integration:
source .venv/bin/activate
pytest -vtest_mcp_coding_agent.py::test_validate_command_allowed PASSED
test_mcp_coding_agent.py::test_validate_command_shell_operators_blocked PASSED
test_mcp_coding_agent.py::test_validate_command_blocked_tokens PASSED
test_mcp_coding_agent.py::test_validate_command_unauthorized_binaries_and_subcommands PASSED
test_mcp_coding_agent.py::test_validate_command_empty PASSED
test_mcp_coding_agent.py::test_resolve_safe_path_valid PASSED
test_mcp_coding_agent.py::test_resolve_safe_path_traversal_blocked PASSED
test_mcp_coding_agent.py::test_write_and_read_file PASSED
test_mcp_coding_agent.py::test_read_file_errors PASSED
test_mcp_coding_agent.py::test_patch_file PASSED
test_mcp_coding_agent.py::test_search_code PASSED
test_mcp_coding_agent.py::test_list_files PASSED
test_mcp_coding_agent.py::test_move_or_rename_file PASSED
test_mcp_coding_agent.py::test_delete_file PASSED
test_mcp_coding_agent.py::test_run_command_allowed_execution PASSED
test_mcp_coding_agent.py::test_run_command_blocked PASSED
test_mcp_coding_agent.py::test_run_command_invalid_directory PASSED
test_mcp_coding_agent.py::test_streamable_http_initialization_and_tool_list PASSED
============================== 18 passed ==============================๐ Project Structure
Arrgon/
โโโ mcp_coding_agent.py # Main MCP server (all tools + security)
โโโ test_mcp_coding_agent.py # Automated test suite (18 tests)
โโโ run_server.sh # Helper script for HTTP mode
โโโ requirements.txt # Python dependencies
โโโ LICENSE # MIT License
โโโ README.md # This file๐ค Contributing
Contributions are welcome! Some ideas:
Add more tool commands (Rust/Cargo, Go, Make, Docker, etc.)
Add a
create_directorytool for scaffolding projectsAdd
undo_patchwith file backup/restoreWindows support improvements (PATH handling, shell detection)
Multi-workspace support for monorepos
# Fork, clone, and run tests
git clone https://github.com/YOUR_USERNAME/Arrgon.git
cd Arrgon
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
pytest -v๐ License
MIT License โ use it however you want, free forever.
This server cannot be deployed
Maintenance
Related MCP Connectors
Persistent cloud workspaces for AI agents: run commands, edit files, use git and a browser.
Work on your own computers from Claude or ChatGPT: run commands, edit and search files.
Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.
Securely search and manage workspace context files for AI agents and teams.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to develop within a local project workspace by reading and modifying files, running commands and tests, checking Git state, and persisting progress as history sessions that can be restored in later conversations.Apache 2.0
- FlicenseAqualityAmaintenanceEnables coding agents to perform workspace-confined file operations, read-only Git inspection, and structured shell commands, while requiring out-of-band human approval for mutations and external executions and maintaining an audit trail.143-
- AlicenseNot gradedqualityAmaintenanceEnables AI clients to safely read, search, understand, and edit local project code and files, with Git inspection, code indexing, and controlled command execution within permissioned workspaces.1 npm6MIT
- AlicenseAqualityBmaintenanceEnables coding agents to safely inspect and modify project files within explicitly allowed workspace roots, with controls for file operations, git status/diff, and optionally allowlisted command execution.11Apache 2.0