Search / io.github.Juliusolsson05/workflow-mcp
Workflow MCP
L0· runs locallySession-bound Docker workflow server through Codex. State is discarded with the container.
v1.1.0 · active · repository · website · descriptor JSON · versions
Search / io.github.Juliusolsson05/workflow-mcp
L0· runs locallySession-bound Docker workflow server through Codex. State is discarded with the container.
v1.1.0 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"workflow-mcp": {
"command": "docker",
"args": [
"--read-only",
"true",
"--user",
"10001:10001",
"--cap-drop",
"ALL",
"--security-opt",
"no-new-privileges:true",
"--security-opt",
"seccomp=unconfined",
"--security-opt",
"apparmor=unconfined",
"--pids-limit",
"256",
"--memory",
"2g",
"--cpus",
"1",
"--tmpfs",
"/tmp:size=256m,mode=1777,uid=10001,gid=10001",
"--tmpfs",
"/run/workflow-mcp:size=16m,mode=0700,uid=10001,gid=10001",
"--mount",
"type=volume,target=/data",
"--mount",
"type=bind,source=${project},target=/workspace,readonly",
"-e",
"OPENAI_API_KEY",
"docker.io/juliusolsson/workflow-mcp@sha256:4b6889f9e78d0208e6d1d343ba23d0c5d092b1a1513a73c9c85deb2d00ab5855"
],
"env": {
"OPENAI_API_KEY": "${OPENAI_API_KEY}"
}
}
}
}claude mcp add workflow-mcp -e "OPENAI_API_KEY=${OPENAI_API_KEY}" -- docker --read-only true --user 10001:10001 --cap-drop ALL --security-opt no-new-privileges:true --security-opt seccomp=unconfined --security-opt apparmor=unconfined --pids-limit 256 --memory 2g --cpus 1 --tmpfs /tmp:size=256m,mode=1777,uid=10001,gid=10001 --tmpfs /run/workflow-mcp:size=16m,mode=0700,uid=10001,gid=10001 --mount type=volume,target=/data --mount "type=bind,source=${project},target=/workspace,readonly" -e OPENAI_API_KEY docker.io/juliusolsson/workflow-mcp@sha256:4b6889f9e78d0208e6d1d343ba23d0c5d092b1a1513a73c9c85deb2d00ab5855[mcp_servers.workflow-mcp]
command = "docker"
args = ["--read-only", "true", "--user", "10001:10001", "--cap-drop", "ALL", "--security-opt", "no-new-privileges:true", "--security-opt", "seccomp=unconfined", "--security-opt", "apparmor=unconfined", "--pids-limit", "256", "--memory", "2g", "--cpus", "1", "--tmpfs", "/tmp:size=256m,mode=1777,uid=10001,gid=10001", "--tmpfs", "/run/workflow-mcp:size=16m,mode=0700,uid=10001,gid=10001", "--mount", "type=volume,target=/data", "--mount", "type=bind,source=${project},target=/workspace,readonly", "-e", "OPENAI_API_KEY", "docker.io/juliusolsson/workflow-mcp@sha256:4b6889f9e78d0208e6d1d343ba23d0c5d092b1a1513a73c9c85deb2d00ab5855"]
env = { "OPENAI_API_KEY" = "${OPENAI_API_KEY}" }
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"workflow-mcp": {
"type": "local",
"command": [
"docker",
"--read-only",
"true",
"--user",
"10001:10001",
"--cap-drop",
"ALL",
"--security-opt",
"no-new-privileges:true",
"--security-opt",
"seccomp=unconfined",
"--security-opt",
"apparmor=unconfined",
"--pids-limit",
"256",
"--memory",
"2g",
"--cpus",
"1",
"--tmpfs",
"/tmp:size=256m,mode=1777,uid=10001,gid=10001",
"--tmpfs",
"/run/workflow-mcp:size=16m,mode=0700,uid=10001,gid=10001",
"--mount",
"type=volume,target=/data",
"--mount",
"type=bind,source={env:project},target=/workspace,readonly",
"-e",
"OPENAI_API_KEY",
"docker.io/juliusolsson/workflow-mcp@sha256:4b6889f9e78d0208e6d1d343ba23d0c5d092b1a1513a73c9c85deb2d00ab5855"
],
"enabled": true,
"environment": {
"OPENAI_API_KEY": "{env:OPENAI_API_KEY}"
}
}
}
}{
"mcpServers": {
"workflow-mcp": {
"command": "docker",
"args": [
"--read-only",
"true",
"--user",
"10001:10001",
"--cap-drop",
"ALL",
"--security-opt",
"no-new-privileges:true",
"--security-opt",
"seccomp=unconfined",
"--security-opt",
"apparmor=unconfined",
"--pids-limit",
"256",
"--memory",
"2g",
"--cpus",
"1",
"--tmpfs",
"/tmp:size=256m,mode=1777,uid=10001,gid=10001",
"--tmpfs",
"/run/workflow-mcp:size=16m,mode=0700,uid=10001,gid=10001",
"--mount",
"type=volume,target=/data",
"--mount",
"type=bind,source=${project},target=/workspace,readonly",
"-e",
"OPENAI_API_KEY",
"docker.io/juliusolsson/workflow-mcp@sha256:4b6889f9e78d0208e6d1d343ba23d0c5d092b1a1513a73c9c85deb2d00ab5855"
],
"env": {
"OPENAI_API_KEY": "${OPENAI_API_KEY}"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=workflow-mcp&config=eyJjb21tYW5kIjoiZG9ja2VyIiwiYXJncyI6WyItLXJlYWQtb25seSIsInRydWUiLCItLXVzZXIiLCIxMDAwMToxMDAwMSIsIi0tY2FwLWRyb3AiLCJBTEwiLCItLXNlY3VyaXR5LW9wdCIsIm5vLW5ldy1wcml2aWxlZ2VzOnRydWUiLCItLXNlY3VyaXR5LW9wdCIsInNlY2NvbXA9dW5jb25maW5lZCIsIi0tc2VjdXJpdHktb3B0IiwiYXBwYXJtb3I9dW5jb25maW5lZCIsIi0tcGlkcy1saW1pdCIsIjI1NiIsIi0tbWVtb3J5IiwiMmciLCItLWNwdXMiLCIxIiwiLS10bXBmcyIsIi90bXA6c2l6ZT0yNTZtLG1vZGU9MTc3Nyx1aWQ9MTAwMDEsZ2lkPTEwMDAxIiwiLS10bXBmcyIsIi9ydW4vd29ya2Zsb3ctbWNwOnNpemU9MTZtLG1vZGU9MDcwMCx1aWQ9MTAwMDEsZ2lkPTEwMDAxIiwiLS1tb3VudCIsInR5cGU9dm9sdW1lLHRhcmdldD0vZGF0YSIsIi0tbW91bnQiLCJ0eXBlPWJpbmQsc291cmNlPSR7cHJvamVjdH0sdGFyZ2V0PS93b3Jrc3BhY2UscmVhZG9ubHkiLCItZSIsIk9QRU5BSV9BUElfS0VZIiwiZG9ja2VyLmlvL2p1bGl1c29sc3Nvbi93b3JrZmxvdy1tY3BAc2hhMjU2OjRiNjg4OWY5ZTc4ZDAyMDhlNmQxZDM0M2JhMjNkMGM1ZDA5MmIxYTE1MTNhNzNjOWM4NWRlYjJkMDBhYjU4NTUiXSwiZW52Ijp7Ik9QRU5BSV9BUElfS0VZIjoiJHtPUEVOQUlfQVBJX0tFWX0ifX0%3D"
}{
"servers": {
"workflow-mcp": {
"type": "stdio",
"command": "docker",
"args": [
"--read-only",
"true",
"--user",
"10001:10001",
"--cap-drop",
"ALL",
"--security-opt",
"no-new-privileges:true",
"--security-opt",
"seccomp=unconfined",
"--security-opt",
"apparmor=unconfined",
"--pids-limit",
"256",
"--memory",
"2g",
"--cpus",
"1",
"--tmpfs",
"/tmp:size=256m,mode=1777,uid=10001,gid=10001",
"--tmpfs",
"/run/workflow-mcp:size=16m,mode=0700,uid=10001,gid=10001",
"--mount",
"type=volume,target=/data",
"--mount",
"type=bind,source=${project},target=/workspace,readonly",
"-e",
"OPENAI_API_KEY",
"docker.io/juliusolsson/workflow-mcp@sha256:4b6889f9e78d0208e6d1d343ba23d0c5d092b1a1513a73c9c85deb2d00ab5855"
],
"env": {
"OPENAI_API_KEY": "${OPENAI_API_KEY}"
}
}
}
}{
"mcpServers": {
"workflow-mcp": {
"command": "docker",
"args": [
"--read-only",
"true",
"--user",
"10001:10001",
"--cap-drop",
"ALL",
"--security-opt",
"no-new-privileges:true",
"--security-opt",
"seccomp=unconfined",
"--security-opt",
"apparmor=unconfined",
"--pids-limit",
"256",
"--memory",
"2g",
"--cpus",
"1",
"--tmpfs",
"/tmp:size=256m,mode=1777,uid=10001,gid=10001",
"--tmpfs",
"/run/workflow-mcp:size=16m,mode=0700,uid=10001,gid=10001",
"--mount",
"type=volume,target=/data",
"--mount",
"type=bind,source=${project},target=/workspace,readonly",
"-e",
"OPENAI_API_KEY",
"docker.io/juliusolsson/workflow-mcp@sha256:4b6889f9e78d0208e6d1d343ba23d0c5d092b1a1513a73c9c85deb2d00ab5855"
],
"env": {
"OPENAI_API_KEY": "${OPENAI_API_KEY}"
}
}
}
}extensions:
"workflow-mcp":
enabled: true
name: "workflow-mcp"
type: stdio
cmd: "docker"
args:
- "--read-only"
- "true"
- "--user"
- "10001:10001"
- "--cap-drop"
- "ALL"
- "--security-opt"
- "no-new-privileges:true"
- "--security-opt"
- "seccomp=unconfined"
- "--security-opt"
- "apparmor=unconfined"
- "--pids-limit"
- "256"
- "--memory"
- "2g"
- "--cpus"
- "1"
- "--tmpfs"
- "/tmp:size=256m,mode=1777,uid=10001,gid=10001"
- "--tmpfs"
- "/run/workflow-mcp:size=16m,mode=0700,uid=10001,gid=10001"
- "--mount"
- "type=volume,target=/data"
- "--mount"
- "type=bind,source=${project},target=/workspace,readonly"
- "-e"
- "OPENAI_API_KEY"
- "docker.io/juliusolsson/workflow-mcp@sha256:4b6889f9e78d0208e6d1d343ba23d0c5d092b1a1513a73c9c85deb2d00ab5855"
envs:
"OPENAI_API_KEY": "${OPENAI_API_KEY}"
timeout: 300
Placeholders to fill from your own secret store: ${OPENAI_API_KEY}. The registry never accepts secret values.
This is a local package: the command runs on your machine.
Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.
protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)auth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dumptool list unknown (behind auth, not probed, or empty)stability.changes, stability.rug_pulltool list unknowndeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +website ~liveness-unmeasured ~updated-84d-ago -unpinned-packages(1)
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
docker.io/juliusolsson/workflow-mcp@sha256:4b6889f9e78d0208e6d1d343ba23d0c5d092b1a1513a73c9c85deb2d00ab5855 | oci | unpinned | docker | OPENAI_API_KEY |
No tools observed. Local packages are never executed by the registry.
Schemas: list_tools.
{
"name": "io.github.Juliusolsson05/workflow-mcp",
"title": "Workflow MCP",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"version": "1.1.0",
"packages": [
{
"transport": {
"type": "stdio"
},
"identifier": "docker.io/juliusolsson/workflow-mcp@sha256:4b6889f9e78d0208e6d1d343ba23d0c5d092b1a1513a73c9c85deb2d00ab5855",
"runtimeHint": "docker",
"registryType": "oci",
"runtimeArguments": [
{
"name": "--read-only",
"type": "named",
"value": "true"
},
{
"name": "--user",
"type": "named",
"value": "10001:10001"
},
{
"name": "--cap-drop",
"type": "named",
"value": "ALL"
},
{
"name": "--security-opt",
"type": "named",
"value": "no-new-privileges:true"
},
{
"name": "--security-opt",
"type": "named",
"value": "seccomp=unconfined"
},
{
"name": "--security-opt",
"type": "named",
"value": "apparmor=unconfined"
},
{
"name": "--pids-limit",
"type": "named",
"value": "256"
},
{
"name": "--memory",
"type": "named",
"value": "2g"
},
{
"name": "--cpus",
"type": "named",
"value": "1"
},
{
"name": "--tmpfs",
"type": "named",
"value": "/tmp:size=256m,mode=1777,uid=10001,gid=10001"
},
{
"name": "--tmpfs",
"type": "named",
"value": "/run/workflow-mcp:size=16m,mode=0700,uid=10001,gid=10001"
},
{
"name": "--mount",
"type": "named",
"value": "type=volume,target=/data"
},
{
"name": "--mount",
"type": "named",
"value": "type=bind,source={project},target=/workspace,readonly",
"variables": {
"project": {
"format": "filepath",
"isRequired": true,
"description": "Absolute project directory containing .claude/workflows and no .codex configuration."
}
}
}
],
"environmentVariables": [
{
"name": "OPENAI_API_KEY",
"format": "string",
"isSecret": true,
"isRequired": true,
"description": "OpenAI API key used only by the contained Codex provider."
},
{
"name": "WORKFLOW_MCP_CONCURRENCY",
"value": "1",
"format": "number",
"description": "Constrained session profile; the Docker-first daemon bundle provides the larger durable profile."
}
]
}
],
"repository": {
"id": "1300795532",
"url": "https://github.com/Juliusolsson05/workflow-mcp",
"source": "github",
"subfolder": "standalone"
},
"websiteUrl": "https://github.com/Juliusolsson05/workflow-mcp/tree/main/standalone",
"description": "Session-bound Docker workflow server through Codex. State is discarded with the container."
}