Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Batch-dispatch coding tasks to Google Jules: 50 parallel sessions, plan approval, PR collection.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
JULES_API_KEY, JULES_DEFAULT_SOURCE, JULES_DEFAULT_BRANCH「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"jules-dispatch": {
"command": "npx",
"args": [
"-y",
"@yuuqq/jules-dispatch",
"mcp"
],
"env": {
"JULES_API_KEY": "your-value",
"JULES_DEFAULT_SOURCE": "your-value",
"JULES_DEFAULT_BRANCH": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add jules-dispatch --env JULES_API_KEY=your-value --env JULES_DEFAULT_SOURCE=your-value --env JULES_DEFAULT_BRANCH=your-value -- npx -y @yuuqq/jules-dispatch mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"jules-dispatch": {
"command": "npx",
"args": [
"-y",
"@yuuqq/jules-dispatch",
"mcp"
],
"env": {
"JULES_API_KEY": "your-value",
"JULES_DEFAULT_SOURCE": "your-value",
"JULES_DEFAULT_BRANCH": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"jules-dispatch": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@yuuqq/jules-dispatch",
"mcp"
],
"env": {
"JULES_API_KEY": "your-value",
"JULES_DEFAULT_SOURCE": "your-value",
"JULES_DEFAULT_BRANCH": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
JULES_DEFAULT_SOURCE envJULES_DEFAULT_BRANCH envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント Yuuqq で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:JULES_API_KEY
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.3.2)がレジストリに届いたのは3 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Reelsaw
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Drive a self-hosted Reelsaw: turn long videos into vertical clips, edit, re-render and export them.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Batch-dispatch tasks to [Google Jules](https://jules.google.com/) in parallel — and use it as an MCP tool inside [Claude Code](https://docs.anthropic.com/en/docs/claude-code) or [OpenAI Codex CLI](https://github.com/openai/codex).
🌐 Languages: English · 简体中文
🌐 Landing page & interactive docs
https://yuuqq.github.io/jules-dispatch/ — full onboarding guide and MCP integration examples
jules-dispatch is a CLI and an MCP server for the Google Jules API that lets you:
It turns Jules from a "one task at a time" tool into a massively parallel coding workforce, controlled by either humans on the CLI or other AIs over MCP.
flowchart LR
O["🧠 Orchestrator (Claude / Codex / you)"] O -->|writes| T["📄 tasks/*.yaml"] T --> D["⚡ jules-dispatch batch"] D -->|parallel| J1["🤖 Jules #1"] D -->|parallel| J2["🤖 Jules #2"] D -->|parallel| J3["🤖 Jules #3"] D -->|parallel| J4["🤖 Jules #N"] J1 --> P1["🔀 PR #1"] J2 --> P2["🔀 PR #2"] J3 --> P3["🔀 PR #3"] J4 --> P4["🔀 PR #N"]
classDef orch fill:#7c3aed,stroke:#5b21b6,color:#fff classDef tool fill:#0891b2,stroke:#0e7490,color:#fff classDef worker fill:#f59e0b,stroke:#b45309,color:#fff classDef pr fill:#10b981,stroke:#047857,color:#fff class O orch class D tool class J1,J2,J3,J4 worker class P1,P2,P3,P4 pr
Entirely optional. All core commands work without any LLM key. Skip this section if you only want raw dispatch.
Stop hand-writing task YAML. Give jules-dispatch one sentence and let an LLM expand it into N parallel Jules sessions.
$ jules-dispatch auto "Migrate every Express route to Fastify and add request-validation tests"
Planning with gpt-4o-mini...
Planned 6 task(s):
Dispatch all 6 task(s)? [y/N]
Bring your own LLM — works with any OpenAI-compatible /chat/completions endpoint:
| Provider | LLM_BASE_URL | Example LLM_MODEL |
|---|---|---|
| OpenAI (default) | *(omit — defaults to https://api.openai.com/v1)* | gpt-4o-mini, gpt-4o, o3-mini |
| OpenRouter | https://openrouter.ai/api/v1 | openrouter/auto, anthropic/claude-opus-4.7 |
| Ollama (local, free) | http://localhost:11434/v1 | llama3.1, qwen2.5-coder:32b |
| Groq | https://api.groq.com/openai/v1 | llama-3.3-70b-versatile |
| Together / Fireworks / DeepInfra / vLLM / LiteLLM / Azure OpenAI | *(their endpoint)* | *(their model id)* |
Configure via env vars (LLM_API_KEY, LLM_BASE_URL, LLM_MODEL) or per-invocation flags (--llm-key, --llm-base-url, --llm-model). OPENAI_API_KEY and OPENROUTER_API_KEY are also recognised as fallbacks.
| Command / Tool | What it does |
|---|---|
jules-dispatch plan-tasks " " | Plan only — print or write tasks to a YAML file |
jules-dispatch auto " " | Plan + dispatch in one shot (with confirmation) |
MCP jules_plan_tasks | Same planning, exposed to Claude Code / Codex *(only registered if an LLM key is configured)* |
MCP jules_auto | One-shot plan + dispatch *(only registered if an LLM key is configured)* |
jules-dispatch mcp) — 8 always-registered tools, plus 2 optional planning tools when an LLM key is configured, and 7 opt-in legacy aliasesplan, approve commands + requirePlanApproval: true task optiontail streams activity events as they happencancel aborts runaway runsget , status --ids no longer limited to the recent pageRetry-Afterdispatch - reads YAML/JSON from a pipe| Feature | Details |
|---|---|
| ⚡ Bounded, paced dispatch | Continuously replenish a 1–50 worker pool and optionally space launches with --pace-ms |
| 📋 YAML task files | Multi-document YAML supported (--- separators) |
| 🔄 Status polling | Auto-detects PRs, plan approvals, failures |
| 💬 Plan & message control | Approve plans, send follow-up messages, cancel sessions |
| 🤖 MCP server | Drop into Claude Code or Codex as a tool |
| 📦 Structured output | --json mode for clean piping into agents and scripts |
| 📝 Dispatch logs | JSON audit trail of every dispatch run |
jules-dispatch works best when a change can be split into independent, PR-sized tasks. If tasks edit the same files or depend on earlier output, dispatch them in separate waves instead of running them concurrently.
Suppose the auth, billing, users, and audit modules all need tests. Put one self-contained task file per module in a dedicated directory, then dispatch the directory as a batch:
jules-dispatch batch tasks/add-tests --parallel 4
Each Jules session owns one module. With AUTO_CREATE_PR enabled, the result is a set of focused PRs that can be reviewed and merged independently. A failed task can be retried without restarting the rest.
Why it helps: independent test work runs at the same time without turning into one large, hard-to-review change.
For a goal such as migrating an Express API to Fastify, use the optional LLM planner to identify independent routes, middleware, startup code, and test work:
jules-dispatch auto "Migrate the Express API to Fastify and add request-validation tests" \
--max 8 --parallel 4
auto shows the proposed tasks and asks for confirmation before dispatching them. Use plan-tasks instead when you want to save and edit the generated YAML before anything is sent to Jules.
Why it helps: the planner reduces the cost of decomposing a broad goal while keeping the task boundaries visible and reviewable.
To add a shared CI check, security baseline, or contribution policy across several Jules-connected repositories, give each task its own source:
title: "Add the security baseline to the API"
prompt: "Add the agreed security checks and open a focused PR." source: "sources/github/acme/api" branch: "main"
title: "Add the security baseline to the worker" prompt: "Add the agreed security checks and open a focused PR." source: "sources/github/acme/worker" branch: "main"
Place the task file in a dedicated batch directory and dispatch it with controlled concurrency and launch pacing:
jules-dispatch batch tasks/security-baseline --parallel 6 --pace-ms 250
Why it helps: one command coordinates the rollout while preserving a separate session and PR for each repository plus an audit log for the batch.
Authentication, authorization, and database migrations often need review before implementation begins. Require Jules to stop after planning:
title: "Refactor authorization checks"
prompt: "Centralize API authorization checks without changing the public API." requirePlanApproval: true
Inspect the plan, send corrections if needed, approve it, and then continue monitoring:
jules-dispatch plan abc123
jules-dispatch message abc123 "Do not change the public API" jules-dispatch plan abc123 # inspect the revised plan jules-dispatch approve abc123 jules-dispatch wait abc123
Why it helps: you keep control of high-impact decisions without giving up delegated execution.
After configuring the MCP server, describe the outcome instead of operating each session yourself:
Analyze this repository, split its test gaps into independent tasks, and dispatch them to Jules. Ask me before approving plans or answering feedback requests. When every session finishes, summarize the outcome and PR URL for each task.
The coding assistant can call jules_dispatch, wait with jules_monitor, inspect action-required sessions with jules_interact, and return a final PR summary.
Why it helps: you manage the goal and the important decisions while the assistant handles dispatch, follow-up, and result collection.
The MCP server exposes Jules as a set of tools your coding AI can call directly.
sequenceDiagram
autonumber actor U as 👤 You participant CC as 💬 Claude Code / Codex participant MCP as ⚡ jules-dispatch (MCP) participant J as ☁️ Google Jules
U->>CC: "Add tests to 5 modules" CC->>MCP: jules_dispatch(tasks) MCP->>J: POST /sessions × 5 J-->>MCP: 5 session IDs MCP-->>CC: {dispatched: 5}
CC->>MCP: jules_monitor(ids, wait=true) loop until terminal or action required MCP->>J: GET /sessions/{id} end MCP-->>CC: {sessions, wait: {completed, actionRequired, ...}}
opt a session requires action CC->>MCP: jules_interact(id) MCP-->>CC: state + plan + activities CC->>MCP: jules_approve_plan(id) or jules_send_message(id, text) CC->>MCP: jules_monitor(ids, wait=true) end
CC->>MCP: jules_interact(id) MCP-->>CC: terminal status + PR output CC-->>U: "Done. PRs: #42, #43, #44, #45, #46"
npm install -g @yuuqq/jules-dispatch
Full setup guide (including GSD integration): docs/MCP-INTEGRATION.md
Add to ~/.config/claude-code/mcp.json (or use claude mcp add):
{
"mcpServers": { "jules-dispatch": { "command": "jules-dispatch", "args": ["--project", "/path/to/your/project", "mcp"], "env": { "JULES_API_KEY": "your-api-key-here", "JULES_DEFAULT_SOURCE": "sources/github/owner/repo", "JULES_DEFAULT_BRANCH": "main" } } } }
冒頭だけを表示しています。続きはリポジトリで読めます