Model Context Protocol server for forkd microVM sandboxes
Project description
forkd MCP server
An MCP server that exposes forkd microVM sandboxes as tools to any MCP-aware client — Claude Desktop, Claude Code, Cursor, Cline, etc.
What it lets the agent do
Once registered, the agent can:
| Tool | What |
|---|---|
list_snapshots |
See available parent templates |
spawn_sandboxes |
Fork N children from a template |
list_sandboxes |
List live sandboxes |
get_sandbox |
Inspect one sandbox by id |
exec_command |
Run a shell command in a sandbox |
eval_code |
Evaluate Python against the warmed PID-1 |
ping_sandbox |
Health-check a sandbox |
kill_sandbox |
Terminate one sandbox |
Each tool maps 1:1 onto a forkd-controller REST endpoint
(docs/API.md). The server is stateless; the
controller owns sandbox lifecycle.
Install
pip install forkd-mcp
# or from source:
pip install -e .
Requires the forkd-controller daemon running locally
(README) and reachable
on http://127.0.0.1:8889 by default.
Configure
Environment variables:
| Var | Default | Purpose |
|---|---|---|
FORKD_URL |
http://127.0.0.1:8889 |
Controller base URL |
FORKD_TOKEN |
unset | Bearer token, required when daemon is started with --token-file |
FORKD_HTTP_TIMEOUT |
60 |
Per-request timeout (seconds) |
Register with Claude Desktop
Add to your claude_desktop_config.json (macOS:
~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"forkd": {
"command": "forkd-mcp",
"env": {
"FORKD_URL": "http://127.0.0.1:8889",
"FORKD_TOKEN": "<contents-of-/etc/forkd/token>"
}
}
}
}
Restart Claude Desktop. The eight tools above will appear in the "hammer" menu.
Register with Claude Code
claude mcp add forkd --env FORKD_URL=http://127.0.0.1:8889 \
--env FORKD_TOKEN=$(sudo cat /etc/forkd/token) \
-- forkd-mcp
Verify with claude mcp list.
Smoke test
# In one shell, start the controller:
sudo systemctl start forkd-controller
# In another, run the MCP server stand-alone (stdio transport):
FORKD_TOKEN=$(sudo cat /etc/forkd/token) forkd-mcp
# The server will block on stdin waiting for an MCP client.
To exercise the server without an MCP client, point any MCP debugger
at it (e.g. npx @modelcontextprotocol/inspector forkd-mcp).
What this is and isn't
Is — a thin wrapper that lets MCP clients drive forkd. The agent plans, the MCP server forwards, the controller actually forks VMs.
Isn't — a sandbox itself. forkd-controller must be running, and
the host needs KVM + a registered snapshot. See
recipes/ for ready-to-fork parent images.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file forkd_mcp-0.1.0.tar.gz.
File metadata
- Download URL: forkd_mcp-0.1.0.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c5dc3f07f140fbce66da9141c17f01a2d7cbe651b1300fea94f5cc56cc716ec
|
|
| MD5 |
30a4b0ecb6f44de332d8e4a40914c875
|
|
| BLAKE2b-256 |
2edc35fd0e4b3267ce7293ad330322d7fe9cbbdeaeb59eb05f5fc98551bc3cdb
|
Provenance
The following attestation bundles were made for forkd_mcp-0.1.0.tar.gz:
Publisher:
publish-pypi-mcp.yml on deeplethe/forkd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
forkd_mcp-0.1.0.tar.gz -
Subject digest:
5c5dc3f07f140fbce66da9141c17f01a2d7cbe651b1300fea94f5cc56cc716ec - Sigstore transparency entry: 1553247189
- Sigstore integration time:
-
Permalink:
deeplethe/forkd@6f0b4db3fc43690ff8a4620ceccfd547c030b1b9 -
Branch / Tag:
refs/tags/mcp-v0.1.0 - Owner: https://github.com/deeplethe
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi-mcp.yml@6f0b4db3fc43690ff8a4620ceccfd547c030b1b9 -
Trigger Event:
push
-
Statement type:
File details
Details for the file forkd_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: forkd_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3ce10e39c6a66cd0771d4f8fd83703882ea3fbd6ea1b594e56412622ef7299e
|
|
| MD5 |
1891f1d4693695d448d2bd1a113e59ae
|
|
| BLAKE2b-256 |
854318eaf263cbd8f7439ae34ef9541ff76a93897659f4714e9a40c2b68def52
|
Provenance
The following attestation bundles were made for forkd_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish-pypi-mcp.yml on deeplethe/forkd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
forkd_mcp-0.1.0-py3-none-any.whl -
Subject digest:
b3ce10e39c6a66cd0771d4f8fd83703882ea3fbd6ea1b594e56412622ef7299e - Sigstore transparency entry: 1553247212
- Sigstore integration time:
-
Permalink:
deeplethe/forkd@6f0b4db3fc43690ff8a4620ceccfd547c030b1b9 -
Branch / Tag:
refs/tags/mcp-v0.1.0 - Owner: https://github.com/deeplethe
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi-mcp.yml@6f0b4db3fc43690ff8a4620ceccfd547c030b1b9 -
Trigger Event:
push
-
Statement type: