AgentExec
OfficialClick 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., "@AgentExecrun the tests and show me what failed"
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.
AgentExec
A terminal and files for an agent: six MCP tools, over stdio or Streamable HTTP. It has no telemetry, holds no credentials, and depends on nothing but Node 22.15 or later: the build is one file.
node dist/agentexec.js --workspace /path/to/folder --level files--level decides which tools it offers, each level containing the one before: read (the default) has read, list and search; files adds edit; terminal adds exec_command and write_stdin.
It acts with the rights of whoever starts it. The file tools stay inside the workspace, following links, but that is a check and not a boundary, and at terminal a command can reach anything those rights can. Run it somewhere that is safe for an agent to act.
To serve it over HTTP, name a loopback address and set the token clients must send. MCP is at /mcp:
AGENTEXEC_TOKEN=... node dist/agentexec.js --workspace /path/to/folder --level files --http 127.0.0.1:8123It has no TLS of its own, so it refuses any other address. To serve it elsewhere, mount it as a library behind something that does:
import { createAgentExec } from "@agentorg/exec";
const exec = createAgentExec({ workspace: "/path/to/folder", level: "files" });
// In a request handler, under any path, once you have decided the caller may reach it:
await exec.handle(request, response);
// When you're done, which stops any command still running:
await exec.close();If you bundle it into a file of your own, don't start anything off the main thread: its search runs that same file on a worker thread.
Tools
Tool | What it does |
| Runs |
| Types |
| A text file as numbered lines, from |
| A folder: folders end in |
| Text under a folder, as |
| Replaces exact text, which must appear once unless |
Relative paths are relative to the workspace, and a path that really lies outside it is refused. A failed tool sets MCP's isError; a command that exits non-zero is an answer, not a failure.
Related MCP server: silica-core
The answer from exec_command and write_stdin
Always these four fields, in this order, as the result's text and, for clients that read it, as structuredContent:
exit_code: 0
seconds: 1.204
session_id: none
text:
what it wroteexit_code is running while the command runs, and session_id is none once it has ended. A command stopped by a signal has 128 plus the signal's number. text is what it wrote since the last answer, cut in the middle past about max_output_tokens tokens (four characters each, 7000 by default), saying how much was cut.
Sessions
A session id is random and is given only to the call that started the command, so agents sharing one server don't touch each other's commands. At most 64 commands run at once; past that a new one is refused, and none is evicted. Closing the connection stops every command still running.
Differences from Codex
exec_command and write_stdin follow OpenAI Codex; see NOTICE. They differ in three ways:
Commands use pipes, not a terminal, so there is no
ttyoption. Ctrl-C and Ctrl-D are delivered as a signal and an end of input.A poll waits at most 30 seconds rather than 300, so that one call stays inside a host's own time limit.
Sessions are named by random strings, not small numbers.
Tests
npm test runs the conformance suite against the bundled server through the official TypeScript MCP client, over stdio and HTTP, and the official Python one. The Python one needs pip install -r requirements-test.txt, or a Python that has it in AGENTEXEC_PYTHON.
Licence
Apache-2.0.
Available Tools
3 toolslistARead-only
Lists a folder: folders end in /, and files give their size in bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | The workspace by default. |
readBRead-only
Reads a text file as numbered lines.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Inside the workspace; relative to it, or absolute. | |
| limit | No | How many lines; 2000 by default. | |
| offset | No | The first line, from 1. |
searchBRead-only
Searches text files under a folder, as path:line:text. Skips what .gitignore ignores, .git and node_modules.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | A folder or file; the workspace by default. | |
| limit | No | Most matches; 200 by default. | |
| regex | No | ||
| pattern | Yes | Exact text, or a regular expression with regex. | |
| ignore_case | No |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.0.2- First observed
list - First observed
read - First observed
search
TDQS
Scored across 3 tools
Each tool targets a clearly distinct operation: list enumerates folder contents, read returns a file's lines, and search greps across files. There is no plausible scenario where an agent would confuse which one to call for a given intent.
All three names are lowercase bare verbs (list, read, search), which is internally consistent. They deviate slightly from the verb_noun pattern by omitting the object, so the target resource must be inferred from the description rather than the name.
Three tools is on the thin side but each one is essential to read-only file exploration and none is redundant. It is well-scoped for a narrow inspection purpose, just minimal.
The surface fully covers discovery and reading (list, search, read) but offers no write, edit, create, or delete operations, and no way to check file metadata beyond list's byte count. If the server is meant only for read-only inspection this is near-complete, but as a general file toolset it lacks the mutation half of the lifecycle.
Maintenance
Related MCP Connectors
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
Workspace knowledge bases agents ingest, search, and query over MCP.
Toolstile is a managed MCP gateway that connects remote MCP servers behind one endpoint, with per-agent permissions, shared accounts and activity logs. Connect at https://mcp.toolstile.com/mcp over Streamable HTTP with OAuth; sign in at https://toolstile.com, select a workspace and connect your upstream servers. Available tools, resources and prompts depend on that workspace and the agent's granted access.
Start and manage Reason cloud coding agents, projects and sessions from any MCP client.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents and users to manage workspace files, monitor system metrics, take persistent notes, and retrieve weather data via MCP tools and resources.-
- AlicenseAqualityBmaintenanceProvides coding agents with file inventory, ranked search, location-aware reading, code packing, and note writing over the workspace folder through MCP, without involving a model.5264 PyPI69MIT
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to interact with a real Windows workspace by providing tools for file operations, code search, Git, command execution, and managing long-running development processes, all under the current user's context.1MIT
- AlicenseNot gradedqualityBmaintenanceProvides local, read-only MCP tools that expose a specified workspace's directory listing, file contents, text search, git status, and git diff to AI clients.1Apache 2.0