Raccoon MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| RACCOON_HOST | No | Host binding for the HTTP MCP server. The Windows installer defaults this to 127.0.0.1. | 127.0.0.1 |
| RACCOON_ROOT | Yes | Path to an existing isolated workspace. This is the file-tool boundary, not a Shell sandbox. | |
| RACCOON_TOKEN | Yes | A random secret token for the server. | |
| RACCOON_READ_ONLY | No | Controls read-only mode. The Windows installer defaults this to 1. | 1 |
| RACCOON_ENABLE_SHELL | No | Controls whether Shell access is enabled. The Windows installer defaults this to 0. | 0 |
| RACCOON_FILESYSTEM_UNRESTRICTED | No | Controls whether filesystem access is unrestricted. The Windows installer defaults this to 0. | 0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingB | Verify that Raccoon is online locally or on a configured federated device. |
| system_infoB | Return basic host and Raccoon runtime information. |
| fs_listB | List one directory. Accepts absolute paths when RACCOON_FILESYSTEM_UNRESTRICTED=1; relative paths start at RACCOON_ROOT. |
| fs_read_manyB | Read multiple UTF-8 files in one call using byte budgets instead of line limits. |
| fs_read_chunkA | Read an arbitrary byte range from a text or binary file. Repeated calls can read files of any size without loading the whole file into memory. |
| fs_write_chunkB | Write UTF-8 or base64 data by rewrite, append, or absolute byte offset. Chunked calls remove any practical whole-file size limit. |
| fs_write_textA | Create or replace a UTF-8 text file. main.cs requires fs_transaction with a compile validation command. Accepts absolute paths when RACCOON_FILESYSTEM_UNRESTRICTED=1; relative paths start at RACCOON_ROOT. |
| fs_write_manyA | Create or replace many UTF-8 text files concurrently while preserving per-file locking. |
| fs_apply_patch_manyA | Apply validated exact-text replacements to many files in one call. main.cs requires fs_transaction with compile validation. A file is not written if any replacement for that file fails validation. |
| shell_runB | Run one shell command in the specified working directory. Requires RACCOON_ENABLE_SHELL=1. Absolute working directories are allowed when RACCOON_FILESYSTEM_UNRESTRICTED=1. |
| project_build_testC | Run a sequence of build/test/lint commands in one call and return compact per-step results. Requires RACCOON_ENABLE_SHELL=1. |
| git_summaryB | Return branch/status plus working-tree and staged diff summaries without invoking an arbitrary shell. |
| process_startA | Start a long-running shell process and return a session ID for incremental output reads. Requires RACCOON_ENABLE_SHELL=1. |
| process_readB | Read new stdout/stderr events from a process session using a cursor. Can wait briefly for new output. |
| process_writeC | Send input to a running process session. Requires RACCOON_ENABLE_SHELL=1. |
| process_killB | Terminate a process session started by Raccoon. Requires RACCOON_ENABLE_SHELL=1. |
| process_listB | List persistent process sessions currently retained by Raccoon. |
| adb_devicesB | List ADB devices with state, model, product and transport metadata. |
| adb_shellC | Run a command through adb shell on an optional target device. |
| adb_pushC | Push a local workspace file to an Android device. |
| adb_pullC | Pull a file from an Android device into the local workspace. |
| adb_installC | Install an APK from the local workspace using adb install. |
| adb_uninstallB | Uninstall an Android package, optionally retaining its data. |
| adb_screenshotC | Capture the current Android screen through adb exec-out and return it as an MCP image. |
| adb_inputC | Send tap, swipe, text or keyevent input through adb. |
| adb_appC | Start, stop or clear an Android package. |
| adb_packagesC | List installed Android packages with optional third-party and text filtering. |
| adb_ui_dumpC | Run uiautomator dump and return structured UI nodes with text, resourceId, content description, bounds and interaction flags. |
| adb_find_and_tapB | Find an Android UI node by text/resourceId/content description and tap its center instead of guessing screen coordinates. |
| android_app_snapshotB | Return package version, PID, resumed activity and relevant crash-buffer state for one Android package. |
| adb_logcat_startB | Start persistent adb logcat and return a normal Raccoon process session for cursor reads. |
| screenshot_captureC | Capture the virtual desktop or one monitor and return the PNG directly as an MCP image. |
| visual_compareC | Compute pixel-level visual change metrics and optionally save a red-channel difference image. |
| db_infoB | Inspect SQLite schema and basic page/database metadata. |
| db_query_startB | Prepare a SQLite query, return its first batch, and retain the iterator for subsequent batches. |
| db_query_nextC | Read the next rows from a retained SQLite streaming query iterator. |
| db_query_closeB | Close a retained SQLite query session and database handle. |
| db_query_sessionsC | List currently retained SQLite streaming query sessions. |
| db_executeB | Execute mutating SQLite SQL or a parameterized statement. |
| build_cache_runB | Hash declared inputs and command, restore cached outputs on hit, or run and cache outputs on miss. |
| build_cache_statsB | List build-cache entries, hit counts and disk usage. |
| build_cache_clearC | Clear one content-addressed build-cache key or the entire cache. |
| resource_snapshotC | Sample system CPU/memory and return top memory-consuming processes plus governor state. |
| process_resource_snapshotB | Sample CPU, memory, handles, threads and priority for one PID. |
| resource_governor_configureB | Enable/disable automatic admission throttling for heavy shell/build work based on CPU, memory and concurrency. |
| resource_governor_statusB | Return automatic throttling configuration, active heavy operations and queued work. |
| process_resource_watch_startC | Continuously sample one PID and optionally lower priority or terminate it when CPU/memory thresholds are exceeded. |
| process_resource_watch_readC | Read recent resource samples and threshold violations from a process watch. |
| process_resource_watch_stopC | Stop and remove a process resource watch. |
| process_resource_watch_listC | List active resource watches. |
| fs_transactionB | Transactional source edits: main.cs requires validate.command to compile its project. Strict UTF-8 input, persistent byte backup, forced UTF-8 BOM, integrity statistics, atomic replacement and read-back verification; compile failure restores exact original bytes. Other files support optional validation. |
| git_commit_scopeA | Stage and commit only explicit files/directories. Refuses to run when unrelated changes are already staged and verifies the staged set before commit. |
| worktree_taskA | Create, list or remove Raccoon-managed Git worktrees so concurrent AI chats can develop on isolated branches without sharing one working tree. |
| secret_listB | List names from the protected Raccoon secret store without returning secret values. |
| http_probeC | Call an HTTP endpoint with optional secret references, structured assertions and bounded retry. Resolved secret values are never returned in tool output. |
| android_dev_cycleC | Build, install a development APK, restart it, wait for startup, assert UI text, inspect crash state, and verify an optional production package was not changed. |
| cloudflare_deploy_verifyC | Run one deployment command, wait for a new deployment/version condition, capture values, optionally activate traffic using captured values, then run secret-aware HTTP/API assertions. |
| wait_untilB | Run an idempotent command repeatedly until a structured stdout/stderr/JSON condition matches or a timeout/attempt limit is reached. Replaces model-side polling loops. |
| dev_pipeline_validateA | Validate a persistent task DAG with variable capture, safe conditions, retryUntil polling, locks and explicit runners without executing it. |
| dev_pipeline_startB | Start a persistent background DAG. Returns immediately. Locks coordinate pipelines in this service; use matching lock names for shared resources. Retries require idempotent nodes. |
| dev_pipeline_statusC | Read pipeline state, bounded result tails and artifact paths. |
| dev_pipeline_listC | List persistent pipeline runs, newest first. |
| dev_pipeline_waitB | Wait up to 30s for revision change or completion; supply last revision to avoid polling unchanged state. Tasks continue if this request disconnects. |
| dev_pipeline_logsB | Read bounded persisted node logs. Logs may contain command output; no automatic secret scrubbing. |
| dev_pipeline_resumeA | Retry selected nodes and their descendants, preserving other completed results. Interrupted executions require reconciliation before confirmInterrupted=true. Resume does not change commands; submit a new graph to change them. |
| dev_pipeline_cancelB | Cancel queued nodes and terminate owned process trees. Already-started external side effects are not automatically rolled back. Poll state until active nodes settle. |
| foreground_control_acquireC | Reserve the human-interaction foreground for AI GUI work and show a topmost Windows overlay until released or heartbeat expiry. |
| foreground_control_heartbeatC | Renew the current foreground-control lease and optionally update the task shown in the overlay. |
| foreground_control_pauseC | Pause or resume the active AI foreground-control lease. GUI automation should refuse input while paused. |
| foreground_control_releaseB | Release the active foreground-control lease and dismiss the Windows overlay. |
| foreground_control_statusB | Return the current foreground-control owner, task, pause state and heartbeat expiry. |
| desktop_actionsA | Run a batch of Windows mouse, keyboard, scroll, wait and window-activation actions. Foreground control is acquired automatically, a visible AI-control overlay is shown for the whole batch, heartbeat is maintained, and the lease is released when complete. Pass leaseId only when intentionally joining a manually acquired foreground-control session. |
| desktop_windowsA | List visible top-level Windows windows with title, process ID and native handle. This is read-only and does not claim foreground control. |
| list_devicesB | List the local Raccoon node and configured federated Raccoon peers with online/offline state. |
| who_am_iC | Return the operating-system identity running Raccoon and local tool usage. |
| shutdownC | Gracefully request shutdown of the current Raccoon server. |
| get_configB | Get Raccoon runtime, host, workspace and compatibility configuration. |
| set_config_valueC | Set a mutable Raccoon compatibility setting. |
| read_fileB | Read text with line pagination, Excel ranges, images, PDF pages, DOCX outline/XML, or a URL. |
| read_multiple_filesC | Read multiple local files concurrently, including viewable images, without failing the whole batch. |
| write_fileC | Write or append text; create Excel workbooks from JSON arrays; create DOCX from markdown-like text. |
| write_pdfC | Create a PDF from markdown/HTML/CSS/SVG or modify an existing PDF with insert/delete operations. |
| create_directoryC | Create a directory recursively. |
| list_directoryC | List a directory recursively with depth control and nested overflow protection. |
| move_fileC | Move or rename a file or directory. |
| copy_fileC | Copy a file or directory recursively. |
| delete_pathC | Delete a file or directory recursively. |
| start_searchC | Start a progressive file-name or file-content search. |
| get_more_search_resultsC | Read a range of results from a progressive search. |
| stop_searchC | Stop a progressive search while retaining its results briefly. |
| list_searchesC | List retained progressive search sessions. |
| get_file_infoB | Get file metadata, text line counts, and Excel sheet dimensions. |
| edit_blockC | Perform exact text replacement, DOCX XML replacement, or Excel range update. |
| start_processC | Start a persistent process/REPL and return its PID, initial output and state. |
| read_process_outputC | Read managed process output with new-output, absolute and tail line pagination. |
| interact_with_processC | Send input to a managed process/REPL and wait for its response. |
| force_terminateC | Terminate a persistent process started through Raccoon. |
| list_sessionsC | List retained Raccoon process sessions. |
| list_processesB | List all operating-system processes with PID, CPU and memory details. |
| kill_processB | Forcefully terminate an operating-system process by PID. |
| get_usage_statsC | Get Raccoon tool usage, success/failure and performance statistics. |
| get_recent_tool_callsB | Get recent in-memory Raccoon tool calls with arguments, results, status and duration. |
| give_feedback_to_raccoonC | Open the Raccoon GitHub issue form in the default browser. |
| give_feedback_to_desktop_commanderC | Compatibility alias that opens the Raccoon feedback page. |
| get_promptsC | Retrieve one of Raccoon's five built-in onboarding prompts. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 105 tools
The toolset contains numerous overlapping tools across process management (start_process vs process_start, list_sessions vs process_list), file operations (fs_read_many vs read_multiple_files, fs_write_text vs write_file), and feedback aliases, making it hard to pick the right tool without deep inspection. While descriptions sometimes differentiate (e.g., recursive vs non-recursive listing), the sheer volume and redundancy cause frequent ambiguity.
Names are mostly snake_case but follow inconsistent patterns: some use domain prefixes (fs_, process_, adb_, dev_pipeline_), while similar operations use bare verb_noun (read_file, write_file) or noun_verb (process_start vs start_process). The mixed conventions, especially duplicate families for the same domain, reduce predictability.
With 105 tools, the surface is far beyond the recommended 3-15 range and even the 25+ threshold for 'too many,' indicating severe over-scoping. The server would be very difficult for an agent to navigate and likely contains many redundant or rarely used tools.
Coverage is broad and deep across file system, process, ADB, desktop, git, build, pipeline, database, and configuration domains, with full lifecycle tools in many areas. Minor gaps exist (e.g., no explicit secret set/delete, limited git operations), but shell_run can often compensate when enabled.