worker-mcp
MCP server that enables a coordinator AI agent to spawn, control, and supervise local coding agents with interactive gating for high-risk operations.
README
worker-mcp
worker-mcp is a Model Context Protocol (MCP) server that empowers a highly intelligent coordinator agent (like Claude 3.5 Sonnet or Gemini Pro) to spawn, control, and interactively guide lower-intelligence, locally hosted worker agents.
Instead of rolling a custom local LLM tool loop, worker-mcp delegates coding, bash, and filesystem operations to the pi coding agent (@earendil-works/pi-coding-agent) by running it in JSON-RPC mode. Since these small local models require significant supervision, worker-mcp acts as a gating and auditing harness.
Features
- Interactive Gating (Consent Hook): Automatically intercepts and blocks high-risk operations (e.g. executing shell commands or writing files) and prompts the coordinator for approval before execution.
- MCP Tool Integration: Standardized tools to spawn worker sessions, dispatch prompts, list active runners, and approve/deny pending commands.
- Log and History Resources: Message history and subprocess logs (including
stderrfeeds) are exposed as standard MCP resources. - Session Registry Persistence: Session configurations and directory bindings survive server restarts via state files in
~/.config/worker-mcp/sessions.json. - Automatic Extension Deployment: Injects its supervisor gate extension directly into
~/.pi/agent/extensions/on startup.
Installation & Usage
worker-mcp is published on npm as @noosxe/worker-mcp. This is the recommended installation path for most users.
1. Install via npm (Recommended)
Option A: Global Installation
Install the package globally on your system:
npm install -g @noosxe/worker-mcp
# or using pnpm
pnpm add -g @noosxe/worker-mcp
Once installed globally, you can run the server using the worker-mcp command.
Option B: Run ad-hoc via npx
Alternatively, you can run the server on stdio immediately without installing it:
npx @noosxe/worker-mcp
2. Install via Nix
This project also provides a Nix flake to ensure consistent environments and easy installation.
Option A: Run Directly (Ad-hoc)
You can run the server on stdio immediately using Nix:
nix run github:noosxe/worker-mcp
Option B: Install to User Profile
Install the worker-mcp executable globally in your user profile:
nix profile install github:noosxe/worker-mcp
Once installed, run it with:
worker-mcp
3. Declarative Installation via Flake Overlay (System / Home Manager)
If you manage your operating system or user profile declaratively via NixOS or Home Manager, you can consume our default overlay.
Step 3.1: Add the Flake Input
Add worker-mcp to your system's flake.nix input section:
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
# Add worker-mcp input
worker-mcp.url = "github:noosxe/worker-mcp";
};
Step 3.2: Configure the Overlay and Install
Option A: NixOS Configuration
Add the overlay to nixpkgs and include worker-mcp in your system packages:
outputs = { self, nixpkgs, worker-mcp, ... }@inputs: {
nixosConfigurations.my-system = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; # Or your system architecture
modules = [
({ pkgs, ... }: {
# Apply the overlay
nixpkgs.overlays = [
worker-mcp.overlays.default
];
# Install the package
environment.systemPackages = [
pkgs.worker-mcp
];
})
./configuration.nix
];
};
};
Option B: Home Manager Configuration
Add the overlay to nixpkgs and install it in your user packages:
outputs = { self, nixpkgs, worker-mcp, ... }@inputs: {
homeConfigurations.my-user = inputs.home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {
system = "x86_64-linux";
overlays = [ worker-mcp.overlays.default ];
};
modules = [
({ pkgs, ... }: {
# Install the package
home.packages = [
pkgs.worker-mcp
];
})
./home.nix
];
};
};
Harness Integration (Antigravity CLI / agy)
To register the worker-mcp server with your Antigravity TUI/CLI (agy), follow these steps:
Step 1: Register the Server via mcp_config.json (Declarative)
Antigravity CLI resolves MCP servers from dedicated configuration files (rather than the old settings.json). Add the configuration in one of the following locations:
- Global Configuration:
~/.gemini/config/mcp_config.json - Project-local Configuration:
.agents/mcp_config.json(at the root of your project workspace)
Configuration file schemas:
Option A: If installed globally (via npm or Nix)
{
"mcpServers": {
"worker-mcp": {
"command": "worker-mcp",
"args": []
}
}
}
Option B: If running ad-hoc via npx
{
"mcpServers": {
"worker-mcp": {
"command": "npx",
"args": [
"-y",
"@noosxe/worker-mcp"
]
}
}
}
Option C: If running ad-hoc via GitHub Flake
{
"mcpServers": {
"worker-mcp": {
"command": "nix",
"args": [
"run",
"github:noosxe/worker-mcp?ref=main"
]
}
}
}
Option D: Declarative Home Manager Configuration
If you manage your user configuration via Home Manager, you can declare the global mcp_config.json file in your home.nix using home.file combined with builtins.toJSON:
home.file.".gemini/config/mcp_config.json".text = builtins.toJSON {
mcpServers = {
worker-mcp = {
# If installed via overlay in system/home packages or globally via npm:
command = "worker-mcp";
args = [];
# Alternatively, if running ad-hoc via npx:
# command = "npx";
# args = [ "-y" "@noosxe/worker-mcp" ];
# Alternatively, if running ad-hoc via Nix:
# command = "nix";
# args = [ "run" "github:noosxe/worker-mcp?ref=main" ];
};
};
};
Step 2: Verify and Manage via TUI (/mcp command)
Once you have added the server configuration to mcp_config.json, you can manage it interactively inside the CLI:
- Launch the Antigravity TUI:
agy - Type the slash command
/mcpin the prompt input and pressEnter. - An interactive management overlay will open, showing
worker-mcpin the list. You can inspect its status, trigger manual reloads, or verify that the tools/resources are successfully discovered by the coordinator agent.
Operational Configuration
Environment Variables
WORKER_MCP_PI_PATH: Absolute path to thepicoding-agent binary (defaults to searchingPATHforpi).
Pre-requisites
Make sure you have the global pi coding-agent CLI installed in your local system:
npm install -g @earendil-works/pi-coding-agent
Configure your models in pi (e.g. using pi --mode rpc to set default models, or registering Ollama model definitions).
MCP Reference
Exposed Tools
spawn_pi_session: Spawns a new supervisor-gated worker agent in the specified workspace directory.send_pi_command: Dispatches prompts to the worker session (resolving when the turn settles).list_pi_sessions: Returns a list of active sessions, directory targets, and current states.get_pending_actions: Fetches the details of an intercepted command awaiting consent.approve_action: Approves execution of a gated tool call.reject_action: Blocks a gated tool call and forwards feedback to correct the agent's course.
Exposed Resources
worker-mcp://sessions/{sessionId}/history: Returns the conversation log and internal message stream.worker-mcp://sessions/{sessionId}/logs: Returns the stdout/stderr trace logs of the subprocess.
Local Development
If you are contributing to this codebase, you must enter the Nix development shell:
nix develop
This enters an environment pre-packaged with:
- Node.js 24
- pnpm
- TypeScript
- BiomeJS
Dev Tasks
- Code Quality (Check, Lint, Format):
biome check --write src/ - Compile TypeScript:
pnpm run build - Run local server:
pnpm run dev - Build Nix Derivation:
nix build
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。