Claude Code Manager WAN

Claude Code Manager WAN

Enables ISLI agents and MCP clients to dispatch natural-language coding and terminal tasks to a locally-installed Claude Code CLI, supporting both one-shot execution and persistent sessions with workspace and security controls.

Category
访问服务器

README

Claude Code Manager WAN

An ISLI v2.0 skill that lets ISLI agents (Hermes, OpenClaw, ISLI Core) dispatch natural-language coding and terminal tasks to a locally-installed Claude Code CLI. It also exposes those capabilities through an MCP bridge so any MCP client can list and invoke the tools.

What it does

  • One-shot execution — run a single task in a workspace directory.
  • Persistent sessions — start a long-lived Claude Code process, send follow-up tasks, and inspect its output.
  • MCP bridge — expose tools/list and tools/call endpoints compatible with mcp-cli-adapter / MCPShell.

ISLI v2.0 endpoints

Method Path Tool name
GET /health health check
GET /.well-known/isli-manifest manifest
POST /execute claude_code_execute
POST /session/start claude_code_session_start
POST /session/send claude_code_session_send
POST /session/status claude_code_session_status
POST /session/stop claude_code_session_stop
POST /mcp/v1/tools/list mcp_tools_list
POST /mcp/v1/tools/call mcp_tools_call

All endpoints except /health and /.well-known/isli-manifest require a valid X-Internal-Auth JWT signed with JWT_SECRET.

Quick start

1. Install Claude Code locally

This skill assumes the claude binary is available on the host. Install or locate it, then note the path.

2. Build and run the skill

docker build -t claude-code-manager-wan .

docker run -d \
  --name claude-code-manager-wan \
  --network isli_default \
  -p 8000:8000 \
  -e JWT_SECRET=your-jwt-secret \
  -e CLAUDE_CODE_PATH=/usr/local/bin/claude \
  -e CLAUDE_CODE_TIMEOUT_SECONDS=120 \
  -v /path/to/claude:/usr/local/bin/claude:ro \
  -v /path/to/your/workspaces:/workspaces:rw \
  claude-code-manager-wan

3. Test health

curl http://localhost:8000/health

4. Execute a task

curl -X POST http://localhost:8000/execute \
  -H "Content-Type: application/json" \
  -H "X-Internal-Auth: $(python -c "import jwt; print(jwt.encode({}, 'your-jwt-secret', algorithm='HS256'))")" \
  -d '{
    "workspace": "/workspaces/my-project",
    "task": "List the files in this directory",
    "allow_write": false,
    "timeout_seconds": 60
  }'

Docker notes

  • Claude Code binary: The image does not include Claude Code. Mount a Linux-compatible claude binary (or a wrapper script) into the container and set CLAUDE_CODE_PATH. A Windows .exe will not run inside the Linux container.
  • Port conflicts: If localhost:8000 is already in use, map a different host port (e.g., -p 8001:8000) and adjust your test URLs.
  • Workspaces: Mount the directories you want Claude Code to operate on as volumes. The skill validates that the workspace exists and, if ALLOWED_WORKSPACES is set, that it is within an allowed prefix.
  • Integration test fixtures: The tests/mock-claude* files provide a minimal fake Claude CLI for validating the skill in CI/Docker without a real Anthropic account.
  • Custom launch command: Use CLAUDE_CODE_LAUNCH_COMMAND to wrap or proxy the binary. The skill splits the command with shlex and appends its own arguments (--dangerously-skip-permissions if allow_write=true, -p <task> for one-shot mode). Examples:
    • ollama launch claude --model glm-5.2:cloud
    • /usr/local/bin/claude-wrapper --agent hermes

Environment variables

Variable Default Description
JWT_SECRET — Required. Secret used to verify X-Internal-Auth JWTs from ISLI Core.
CLAUDE_CODE_PATH claude Path to the Claude Code binary. Used when CLAUDE_CODE_LAUNCH_COMMAND is not set.
CLAUDE_CODE_LAUNCH_COMMAND — Optional full launcher command. Overrides CLAUDE_CODE_PATH and lets you wrap or replace the binary invocation, e.g. ollama launch claude --model glm-5.2:cloud.
CLAUDE_CODE_TIMEOUT_SECONDS 120 Default subprocess timeout.
ALLOWED_WORKSPACES — Optional comma-separated list of allowed workspace directory prefixes. Empty = no restriction.
MAX_CONCURRENT_SESSIONS 10 Maximum number of persistent Claude Code sessions.
LOG_LEVEL INFO Logging level.

Persistent sessions

Start a session:

curl -X POST http://localhost:8000/session/start \
  -H "Content-Type: application/json" \
  -H "X-Internal-Auth: ..." \
  -d '{"session_id":"proj-a","workspace":"/workspaces/my-project","allow_write":true}'

Send follow-up tasks:

curl -X POST http://localhost:8000/session/send \
  -H "Content-Type: application/json" \
  -H "X-Internal-Auth: ..." \
  -d '{"session_id":"proj-a","task":"Create a README.md"}'

Check status:

curl -X POST http://localhost:8000/session/status \
  -H "Content-Type: application/json" \
  -H "X-Internal-Auth: ..." \
  -d '{"session_id":"proj-a","tail_lines":50}'

Stop:

curl -X POST http://localhost:8000/session/stop \
  -H "Content-Type: application/json" \
  -H "X-Internal-Auth: ..." \
  -d '{"session_id":"proj-a","force":false}'

MCP bridge

The /mcp/v1/tools/list and /mcp/v1/tools/call endpoints follow the Model Context Protocol shape. Configure Hermes or OpenClaw with mcp-cli-adapter pointing to this skill's HTTP endpoint and passing the X-Internal-Auth header.

Example tools/list response:

{
  "tools": [
    {
      "name": "claude_code_execute",
      "description": "Run a one-shot natural-language task through Claude Code...",
      "inputSchema": { "type": "object", "required": ["workspace", "task"], "properties": { ... } }
    }
  ]
}

Example tools/call:

curl -X POST http://localhost:8000/mcp/v1/tools/call \
  -H "Content-Type: application/json" \
  -H "X-Internal-Auth: ..." \
  -d '{
    "name": "claude_code_execute",
    "arguments": {
      "workspace": "/workspaces/my-project",
      "task": "Show git status",
      "allow_write": false
    }
  }'

Security

  • allow_write defaults to false; set it to true only when the agent needs to edit files or run git commands.
  • Use ALLOWED_WORKSPACES to restrict which directories Claude Code can touch.
  • Never expose JWT_SECRET or the skill port publicly.
  • The --dangerously-skip-permissions Claude Code flag is used only when allow_write=true.

Registering in ISLI

Add this entry to medelmouhajir/isli-skills-registry/index.json:

{
  "id": "claude-code-manager-wan",
  "name": "Claude Code Manager WAN",
  "description": "Control Claude Code from ISLI agents. Dispatch one-shot and persistent terminal/coding tasks, and expose them via an MCP bridge.",
  "author": "ISLI AI",
  "git_url": "https://github.com/medelmouhajir/claude-code-manager-wan",
  "tags": ["automation", "claude-code", "mcp", "terminal", "coding"],
  "version": "v1.0.0"
}

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选