Unlimited Agent
Allows the agent to control Google Chrome, including opening URLs, managing tabs, and navigating pages.
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., "@Unlimited Agent show my Windows system information"
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.
Unlimited Agent
Unlimited Agent lets a private ChatGPT app operate the Windows PC that its owner paired: files, PowerShell, programs, screenshots, mouse and keyboard, clipboard, and Chrome.
It uses ChatGPT as the brain. It does not call a model API, consume Codex tokens, or install an OpenAI model API key. A user still needs a restricted Secure MCP Tunnel runtime credential (Tunnels: Read + Use) so the local bridge can authenticate to their own tunnel; that credential cannot perform model inference and is encrypted with Windows DPAPI.
Full remote control is powerful. Install only on a computer whose owner has knowingly consented. Keep the defaultbalanced + dangerous approval policy unless you understand the consequences of changing it.
What it can do
Read, search, create, edit, copy, move, and delete accessible files
Run PowerShell commands immediately or as background jobs
Launch local programs and inspect Windows/system information
Capture the primary or virtual desktop
List, focus, resize, minimize, maximize, or close windows
Send mouse clicks, scrolling, hotkeys, and text input
Read or replace clipboard text
Open URLs, select a Chrome profile, and control tabs/navigation
Make HTTP requests and download files without inheriting the tunnel credential
Reconnect automatically after Windows sign-in
The full 21-tool contract is in docs/TOOL_CONTRACT.md.
Related MCP server: ChatGPT Local Agent MCP
Requirements
Windows 10 or 11, x64
A ChatGPT account that can enable Developer mode and private apps/connectors
Access to OpenAI Platform Secure MCP Tunnels
Google Chrome for the Chrome-specific tools (the other tools do not require it)
Install and pair
Download
Unlimited-Agent-Setup-v0.1.0.exeandSHA256SUMS.txtfrom the latest release.Optionally verify the download:
Get-FileHash .\Unlimited-Agent-Setup-v0.1.0.exe -Algorithm SHA256Run the installer and accept the informed-consent notice. Windows SmartScreen may warn because community builds are not code-signed; verify the SHA-256 before choosing Run anyway.
In the setup window, select Open Secure MCP Tunnels. Create a tunnel in the OpenAI Platform tunnel settings, then copy its
tunnel_...ID.In OpenAI Platform API keys, create a dedicated project key restricted to Tunnels: Read + Use. Do not grant model or other API permissions. Paste it into the setup window.
Choose permissions. The recommended defaults are:
Permission mode:
balancedLocal approval:
dangerousSensitive-read approval: enabled
Allowed folder: your Windows user profile
Select Save and connect. The bridge starts in the background and is registered for the current Windows user at sign-in.
In ChatGPT, open Settings → Apps & Connectors → Advanced settings, enable Developer mode, create a private app, and select the tunnel you just paired. Name it
Unlimited Agent.
Open the desktop shortcut Unlimited Agent Status. CONNECTED and ready means the tunnel can serve the private ChatGPT app. Ask ChatGPT: “Use Unlimited Agent to show my Windows system information.”
OpenAI currently documents Secure MCP Tunnels as a private Developer-mode testing feature. They do not support public ChatGPT app-directory submission or one shared public tunnel. Consequently, every user must create their own private tunnel and private app even though the installer and source code are public. See the official Secure MCP Tunnel guide.
Permission modes
Mode | Behavior |
| Only inspection tools run. Changes, input, launches, and network calls are denied. |
| Paths must stay inside Allowed folders. Dangerous actions follow the approval setting. PowerShell remains available only after the configured approval because a command can address arbitrary resources. |
| All paths accessible to the signed-in Windows user are in scope. Approval settings still apply. |
Approval | Behavior |
| A local review window appears for writes, commands, input, launches, browser/network actions, and other mutations. With the recommended sensitive-read option, it also covers screenshots, window titles, and clipboard reads. |
| Every tool call requires local approval. |
| No local prompts. Use only on a fully trusted private installation. |
Open Unlimited Agent Settings on the desktop to re-pair, change the tunnel credential, or change permissions. Settings apply without reinstalling. A denied tool call returns a structured PERMISSION_DENIED result to ChatGPT. Tool calls are serialized, so Unlimited Agent cannot use its own mouse/keyboard tool to click a pending approval window.
Example requests
“Find all
.docxfiles modified this week in Documents and summarize their names. Don’t change anything.”“Create a folder on my desktop named
Trip, move the selected photos into it, and verify the count.”“Run the test suite in
C:\work\my-app; keep polling until it finishes and fix the first failure.”“Take a screenshot, focus Chrome, open the project dashboard, and tell me what is visible.”
“Start Notepad, type this meeting note, save it to Documents, then confirm the file exists.”
For GUI tasks, ChatGPT should iterate screenshot → window focus → input → screenshot. Unlimited Agent cannot bypass passwords, CAPTCHAs, MFA, UAC secure desktop, or locked Windows sessions.
Architecture
flowchart LR
A[Private ChatGPT app] --> B[OpenAI Secure MCP Tunnel]
B -->|outbound HTTPS session| C[tunnel-client]
C -->|stdio MCP| D[Unlimited Agent server]
D --> E[Central policy + local approval]
E --> F[Files / PowerShell / HTTP]
E --> G[Windows UI / Chrome / clipboard]server.mjsregisters the MCP tools and contains their implementations.policy.mjswraps every tool registration with canonical-path permission, reparse/hardlink-resistant folder checks, complete local approval details, overrides, and audit checks.scripts/windows-ui.ps1provides screen, window, input, and clipboard primitives through Windows APIs.scripts/start-tunnel.ps1decrypts the per-user runtime credential just long enough to starttunnel-client. The MCP server deletes credential environment variables before handling calls, and child processes receive a sanitized environment.scripts/watch-tunnel.ps1provides single-instance background recovery.scripts/settings.ps1owns pairing and permission settings. Credentials use DPAPICurrentUser; non-secret policy is JSON.installer/produces one self-contained x64 Windows setup executable.
No inbound listener or firewall exception is created. The local server is stdio-only; tunnel-client provides the remote MCP endpoint selected by ChatGPT.
Local development
git clone https://github.com/yungsuk53-pixel/unlimited-agent.git
cd unlimited-agent
npm ci --ignore-scripts
npm testnpm test reaches validation level 2: schema/annotation checks, a real stdio MCP session, file operations, PowerShell credential isolation, local HTTP, screenshots, windows, input plumbing, system policy, and background jobs.
Build and fresh-install test:
npm run build:installer
npm run test:installThe build downloads pinned Node.js, tunnel-client, and ripgrep x64 releases and verifies them against immutable SHA-256 values committed in the build script. CI repeats the MCP tests, installer build, DPAPI round trip, synthetic fresh install, and installed-runtime tool tests. Test credentials are synthetic and never contact OpenAI.
To test a real tunnel, install the generated EXE, pair a dedicated tunnel credential, check Unlimited Agent Status, and connect the private app in ChatGPT Developer mode.
Data locations
Installed files and current-user data are under:
%LOCALAPPDATA%\UnlimitedAgent\
config\config.json non-secret policy and tunnel ID
config\credential.dpapi DPAPI-encrypted restricted runtime key
data\audit.jsonl tool decision audit (names, decisions, hashes)
data\logs\ tunnel and watchdog diagnosticsThe project never logs the plaintext tunnel credential. Logs redact strings matching OpenAI key formats, and tool-launched processes receive a minimal allowlist of ordinary Windows environment variables instead of inheriting ambient tokens or secrets.
Troubleshooting
Status says reconnecting or unavailable
Open Unlimited Agent Settings and re-enter the tunnel ID and a valid restricted runtime key.
Confirm the key has
Tunnels: Read + Useand belongs to the organization/workspace that owns the tunnel.Check
%LOCALAPPDATA%\UnlimitedAgent\data\logs\bridge.logandwatchdog.log.A
404commonly means ChatGPT selected a different tunnel/app, the runtime is stopped, or the private app was not created from the same ChatGPT/OpenAI organization context.
A tool is denied
The local response states whether read-only mode, an Allowed folders boundary, a per-tool override, or a rejected approval caused it.
Open Unlimited Agent Settings to change the policy. Do not weaken permissions merely to hide a genuine safety boundary.
Mouse or keyboard actions do nothing
Windows must be signed in and unlocked.
UAC secure desktop, login screens, some elevated apps, games using exclusive input, and protected media cannot be reliably automated from a normal user process.
Chrome opens the wrong profile
Ask ChatGPT to call
open_urlorbrowser_controlwith the Chrome profile directory name, such asDefaultorProfile 2.
Uninstall and revoke
Run the desktop shortcut Uninstall Unlimited Agent. It stops/removes the local runtime, deletes autostart entries, removes the encrypted credential, and deletes the installation directory.
Then revoke the dedicated restricted key in OpenAI Platform and delete the tunnel if it will no longer be used. Revocation is important if the PC or Windows account may be compromised.
Security and license
Read SECURITY.md before enabling full access. Security reports should use GitHub private vulnerability reporting, not public issues.
Unlimited Agent is available under the MIT License. Bundled runtime notices are in THIRD_PARTY_NOTICES.md.
Available Tools
21 toolsbrowser_controlControl Google ChromeA
Open a URL or send navigation/tab shortcuts to the focused Chrome window. For reliable GUI browsing, list windows, focus Chrome, act, then capture a screenshot.
Inputs: action (required), url, profile, windowHandle.
clipboardRead or write Windows clipboardA
Read text from or write text to the interactive Windows clipboard.
Inputs: action (required), text.
computer_inputControl mouse and keyboardADestructive
Send mouse, keyboard, text, scrolling, and wait actions to the interactive Windows desktop. Take a screenshot first, focus the target window, act, then screenshot again to verify.
Inputs: actions (required).
edit_fileEdit local text fileADestructive
Replace exact text in a UTF-8 local file. Use for focused edits that preserve the rest of the file.
Inputs: path (required), newText (required), oldText (required), replaceAll.
execExecute PowerShellADestructive
Run an arbitrary PowerShell command on this Windows PC. Use for local development, package installation, system configuration, services, processes, and tasks not covered by a more specific tool. Verify changes afterward.
Inputs: command (required), cwd, timeoutSeconds.
file_operationManage local files and foldersADestructive
Copy, move, delete, or create local files and folders. Use exact resolved targets and verify consequential operations afterward.
Inputs: action (required), source (required), overwrite, recursive, +1 more.
http_requestMake HTTP request or downloadB
Call an HTTP/HTTPS URL from this PC or download the response to a local file. Does not inherit OpenAI or tunnel credentials.
Inputs: url (required), body, method, saveTo, +2 more.
job_statusCheck background jobARead-onlyIdempotent
List background jobs or inspect one job with running state and recent stdout/stderr. Poll until completion and verify the resulting files or application state.
Inputs: jobId, tailBytes.
launch_programLaunch local programB
Launch a local executable or script with arguments, optionally visible. Use list_windows and screenshot after launching GUI applications.
Inputs: executable (required), cwd, args, visible.
list_directoryList local directoryARead-onlyIdempotent
List files and folders with type, size, and modified time. Use before guessing paths or choosing files to edit.
Inputs: path, maxDepth, recursive, maxEntries.
list_windowsList desktop windowsARead-onlyIdempotent
List top-level Windows desktop windows with title, process ID, handle, position, size, and minimized state. Use to target window_control reliably.
Inputs: includeHidden.
open_urlOpen URL in logged-in ChromeA
Open an HTTP/HTTPS URL in Google Chrome using a profile belonging to the current Windows user.
Inputs: url (required), profile.
path_infoInspect local pathARead-onlyIdempotent
Check whether a local path exists and return detailed file, folder, or symbolic-link metadata.
Inputs: path (required).
read_fileRead local fileARead-onlyIdempotent
Read any local file accessible to the current Windows user. Use utf8 for text and base64 for binary files.
Inputs: path (required), encoding.
screenshotCapture Windows screenARead-onlyIdempotent
Capture the primary display or full virtual desktop as a PNG image. Use before and after graphical actions to locate controls and verify outcomes.
Inputs: capture.
search_filesSearch local filesARead-onlyIdempotent
Fast local search using ripgrep. Search file names or text contents before reading large directory trees.
Inputs: query (required), glob, mode, root, +4 more.
start_jobStart background PowerShell jobADestructive
Start a long-running PowerShell command in the background with persistent stdout/stderr logs. Poll with job_status instead of waiting in exec.
Inputs: command (required), cwd, label.
stop_jobStop background jobADestructive
Force-stop a background job and its child process tree by job ID.
Inputs: jobId (required).
system_infoInspect Windows systemARead-onlyIdempotent
Return local Windows, CPU, memory, user, host, runtime, and server capability information without changing the PC.
Inputs: no named parameters.
window_controlControl desktop windowADestructive
Focus, minimize, maximize, restore, or close a desktop window by the handle returned from list_windows.
Inputs: action (required), handle (required).
write_fileWrite local fileADestructive
Create, overwrite, or append to any local file. Create missing parent folders when requested, then verify important writes with read_file or path_info.
Inputs: path (required), content (required), mode, encoding, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 21 tools
Tools are mostly distinct: background job management (start/stop/status), file operations (read/write/edit/list/path/search/file_operation), system info, HTTP, and GUI interaction. Minor overlap between exec and start_job (both run PowerShell commands) and between http_request and open_url (both fetch URLs), but descriptions clarify the intended use cases.
All tools follow a consistent verb_noun pattern: job_status, stop_job, start_job, read_file, write_file, edit_file, list_directory, path_info, search_files, file_operation, system_info, http_request, screenshot, list_windows, window_control, computer_input, clipboard, open_url, browser_control, launch_program. Verbs are clear and nouns are descriptive, with no mixing of casing or inconsistent verb styles.
21 tools is on the higher end of the reasonable range (3-15 typical), but given the broad scope of the server (system administration, file management, GUI automation, web browsing) each tool serves a distinct need and the count is justified. It exceeds the 'well-scoped' range slightly, but does not feel bloated or repetitive.
The tool surface covers the core domains comprehensively: file CRUD (read, write, edit, copy/move/delete), process management (start, status, stop), system info, and GUI automation (screenshot, windows, input, clipboard). Minor gaps include an explicit tool for renaming files (file_operation combines it) and no dedicated tool for managing services (can be done via exec), but these are workable via general-purpose tools like exec.
Maintenance
Related MCP Connectors
Connect ChatGPT and Claude to your Mac, Windows or Linux with secure MCP remote access.
Remote MCP server exposing your Node Command fleet (files, shell, processes, browser) to AI hosts.
Connect ChatGPT, Claude, Cursor or VS Code to your Windows PC: files, terminal, browser, apps.
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA standalone MCP server for Windows desktop control, enabling screenshots, mouse and keyboard input, app launch, window/display management, and clipboard access via natural language.3MIT
- AlicenseNot gradedqualityBmaintenanceThis MCP server gives ChatGPT controlled access to your Windows PC, enabling it to inspect files, run commands, apply patches, and interact with the desktop under your supervision.3MIT
- FlicenseCqualityDmaintenanceEnables ChatGPT to control a Windows PC remotely via OpenAI Secure MCP Tunnel, executing file operations, PowerShell commands, and system actions through a local MCP server.15-
- FlicenseBqualityBmaintenanceA local MCP server that bridges ChatGPT to a Windows PC, offering filesystem, shell, Git, and diagnostic tools via a secure tunnel.171-