Jules AI MCP Server
Enables managing tasks on GitHub repositories through Jules AI, including creating autonomous tasks, tracking progress, and automating Pull Requests.
Integrates with Google Jules AI, providing tools to delegate autonomous coding tasks, approve execution plans, monitor sessions, and retrieve diffs and Pull Requests.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Jules AI MCP Servercreate a task to fix the login bug and open a pull request"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🧭 Visão Geral
O Google Jules é o agente autônomo de desenvolvimento de software do Google, projetado para rodar em nuvem, clonar repositórios, investigar problemas, formular planos em múltiplas etapas e abrir Pull Requests com testes validados.
O Gemini Antigravity é o ambiente avançado de pair programming da Google DeepMind focado em controle cirúrgico, raciocínio de alta ordem e orquestração.
Este projeto conecta ambos através do Model Context Protocol (MCP):
O Antigravity atua como o Arquiteto Líder, planejando a solução e supervisionando a execução.
O Jules AI atua como o Operário de Nuvem Assíncrono, executando tarefas longas de refatoração, migração de código e testes em segundo plano.
┌─────────────────────────────────┐
│ Gemini Antigravity │ ◄─── Pair Programming, Estratégia,
│ (Orquestrador / Arquiteto) │ Inspeção de Planos e Diffs
└────────────────┬────────────────┘
│ MCP (Model Context Protocol via Stdio)
┌────────────────▼────────────────┐
│ jules-ai-mcp Server │ ◄─── Ferramentas, Types & Validação
└────────────────┬────────────────┘
│ Google Jules API / v1alpha
┌────────────────▼────────────────┐
│ Google Jules AI │ ◄─── Nuvem, Branching, Execução de Testes,
│ (Agente Assíncrono de Código) │ Criação de Pull Request
└─────────────────────────────────┘Related MCP server: subturn
🚀 Passo a Passo de Configuração
1. Pré-requisitos
Node.js: Versão 18 ou superior (
node -v).NPM: Versão 9 ou superior (
npm -v).Conta Google Jules: Acesso ao portal jules.google.
Chave de API do Jules: Obtenha em Settings > API Keys no console do Jules.
2. Clonar e Instalar Dependências
git clone https://github.com/Helfstein-one/jules-ai-mcp.git
cd jules-ai-mcp
npm install
npm run build3. Configurar Variáveis de Ambiente
Crie seu arquivo .env a partir do modelo .env.example:
cp .env.example .envEdite o .env com a sua chave:
JULES_API_KEY=sua_chave_jules_aqui
JULES_API_BASE_URL=https://jules.googleapis.com/v1alpha
JULES_MOCK_MODE=falseCaso queira rodar o servidor em modo de testes / demonstração local sem consumir créditos da API, basta manterJULES_MOCK_MODE=true.
🪐 Integração com o Gemini Antigravity
1. Registrar o MCP Server no Antigravity
Você pode habilitar o Jules MCP de forma global em sua máquina ou dentro do seu projeto:
Configuração Global (~/.gemini/config/mcp_config.json)
Abra ou crie o arquivo ~/.gemini/config/mcp_config.json e adicione o servidor:
{
"mcpServers": {
"jules-ai": {
"command": "node",
"args": ["/caminho/absoluto/para/jules-ai-mcp/dist/index.js"],
"env": {
"JULES_API_KEY": "sua_chave_jules_aqui",
"JULES_MOCK_MODE": "false"
}
}
}
}2. Habilitar a Skill jules-orchestrator
O repositório já inclui uma Skill pronta em .agents/skills/jules-orchestrator/SKILL.md.
Copie a pasta .agents/ para o repositório do seu projeto ou para ~/.gemini/config/skills/.
A Skill ensina o Antigravity a:
Reconhecer quando uma tarefa deve ser delegada ao Jules.
Formular prompts cirúrgicos para o Jules.
Exigir aprovação manual do plano de execução antes de autorizar qualquer commit.
Coletar o diff e o Pull Request gerados pelo Jules e apresentar ao desenvolvedor.
🛠️ Referência das Tools MCP
Tool MCP | Parâmetros Principais | Descrição |
|
| Inicia uma nova tarefa autônoma no repositório GitHub. |
|
| Lista tarefas ativas e recentes. |
|
| Retorna o status detalhado, logs e etapas do plano. |
|
| Aprova ou rejeita o plano elaborado pelo Jules. |
|
| Envia instruções de redirecionamento durante a execução. |
|
| Obtém o git diff unificado e o link do Pull Request gerado. |
|
| Cancela uma tarefa em andamento. |
🧠 Estratégias e Melhores Práticas Operacionais
1. Separação de Papéis: Antigravity vs Jules
Fique no Antigravity: Refatorações rápidas, alterações locais que afetam 1 a 3 arquivos, análise de arquitetura, depuração de erros em tempo real.
Delegue ao Jules: Criação de baterias de testes unitários em dezenas de arquivos, atualizações de dependências (ex: upgrade de versão do framework), migrações de esquemas de banco com scripts de retrocompatibilidade.
2. Gate Obrigatório de Aprovação de Plano (autoApprovePlan: false)
Sempre deixe autoApprovePlan: false em bases de produção:
O Jules irá clonar o projeto e criar a árvore AST dos arquivos afetados.
Ele formulará um plano em etapas (
plan.steps).O Antigravity lê o plano e apresenta para você:
Quais arquivos serão tocados?
Há risco de quebrar contratos de API pública?
Se necessário, envie ajustes com
jules_approve_plan(approved=false, feedback="Não altere o arquivo X...").
3. Elimine o Polling Abusivo
Nunca mantenha loops de verificação contínua (while status != completed sleep 5). O Antigravity utiliza o comando /schedule ou notificações de background. Lance a tarefa e prossiga com seu trabalho local; quando o Jules estiver com o plano pronto, você será notificado.
4. Jules como MCP Client (Dois Sentidos)
Lembre-se que o Jules também suporta conexões MCP externas dentro das sessões dele (no portal jules.google em Settings > Service Connections):
Linear / Jira MCP: Permite ao Jules ler os critérios de aceitação diretamente das issues.
Supabase / Neon MCP: Permite ao Jules inspecionar migrações e esquemas de dados em ambientes sandbox.
💬 Exemplo de Conversação com o Antigravity
Você no chat do Antigravity:
"Antigravity, delegue para o Jules AI a tarefa de migrar nossos testes de autenticação de Jest para Vitest no repositório
minha-empresa/api-core. Não aprove o plano automaticamente."
Antigravity com a Skill Jules:
Invoca
jules_create_taskcom as diretrizes e regras do projeto.Recebe o
taskIde aguarda a geração do plano.Notifica você com o resumo das 4 etapas propostas pelo Jules.
Você responde: "Aprove, mas garanta que o mock do Redis seja preservado."
Antigravity invoca
jules_approve_plan(approved=true, feedback="Preserve o mock do Redis...").Jules executa, roda os testes e abre o Pull Request no GitHub!
📄 Licença
Distribuído sob a licença MIT. Criado e mantido por @Helfstein-one.
Available Tools
7 toolsjules_approve_planA
Approves or rejects the execution plan formulated by Jules. Jules will not modify code until its plan is approved.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The unique Jules Task ID | |
| approved | Yes | True to approve the plan and begin code execution; False to reject and request changes. | |
| feedback | No | Feedback notes or requested modifications if rejecting, or steering directives if approving. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose one meaningful behavioral trait: Jules is blocked from modifying code until the plan is approved, which explains the consequence of inaction. It says nothing about permissions, reversibility of a rejection, or what happens to an already-running task.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and followed by the gating constraint. No filler, nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter, two-required tool with no annotations and no output schema, the description covers purpose and the approval gate but omits the result of the call (e.g. task state transition after rejection) and any permission requirements. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema itself explains the approve/reject boolean and the optional feedback field. The description adds no syntax or format detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair (approves/rejects) and resource (the execution plan formulated by Jules), so the action is unambiguous. It does not, however, differentiate itself from near-neighbors like jules_send_feedback or jules_cancel_task, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence implies the usage window (after a plan exists, before code modification), which is genuinely useful. But it names no alternatives and gives no explicit when-not guidance, e.g. that steering without a full rejection should go through jules_send_feedback.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_cancel_taskC
Aborts and cancels an active Jules autonomous coding task.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Optional reason for cancelling the task | |
| taskId | Yes | The unique Jules Task ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. The word 'active' hints at a state precondition, but nothing is said about whether cancellation is irreversible, what happens to in-progress work, whether a reason is surfaced to anyone, or whether special permissions are needed for a destructive-looking operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, which is appropriate for a two-parameter tool. Minor redundancy in 'Aborts and cancels,' which express essentially the same act.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description leaves key operational questions unanswered: state preconditions, irreversibility, and what the caller receives back. The fully documented schema covers inputs but not the behavior an agent needs to call this safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters (taskId and optional reason), so the schema already carries parameter meaning. The description adds no format, constraint, or example beyond it; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (cancel/abort) and resource (Jules autonomous coding task), so the operation is immediately identifiable. It does not, however, distinguish itself from sibling terminal-state tools such as jules_approve_plan or explain how cancellation relates to the other task-lifecycle operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no note about which task states are cancellable, and no mention of alternatives (e.g., sending feedback via jules_send_feedback instead of abandoning a task). The agent must infer all of this from the sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_create_taskB
Creates a new autonomous coding task for Google Jules AI. Jules will checkout the repo, inspect files, formulate an execution plan, and prepare a PR.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | GitHub repository in "owner/repo" format (e.g., "Helfstein-one/my-app") | |
| title | No | Short descriptive title for the task (optional) | |
| prompt | Yes | Detailed instructions for Jules: the problem statement, requirements, architectural constraints, and test criteria. | |
| baseBranch | No | Base branch to branch off from (defaults to "main") | |
| targetBranch | No | Branch name for Jules to push changes to (optional, auto-generated if omitted) | |
| autoApprovePlan | No | Whether Jules should start coding immediately upon finishing planning, or wait for approval (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the workflow Jules performs (checkout, inspect files, formulate a plan, prepare a PR), which is real behavioral context beyond the schema. However it omits that the operation is asynchronous, what identifier is returned, whether it requires GitHub authorization, and that a PR is only "prepared" rather than merged or that a plan-approval gate (per autoApprovePlan) is involved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, and the core action is front-loaded ahead of the workflow detail. Every clause earns its place by telling the agent what happens after invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter creation tool with no annotations and no output schema, the description covers the purpose and downstream workflow but says nothing about the return value (a task ID the agent will need for jules_get_task_status/jules_approve_plan) or the async nature of the call. It is adequate but leaves an operational gap an agent must discover empirically.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the six parameters are documented with examples and defaults (owner/repo format, baseBranch default "main", autoApprovePlan default false). The description adds no parameter-level detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ("Creates a new autonomous coding task") and a specific target system (Google Jules AI), which cleanly separates it from the read/manage siblings (list, get_status, approve_plan, cancel). It does not explicitly name an alternative tool or clarify its relationship to jules_approve_plan, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative guidance is given. The agent must infer that this is the initiating tool in the lifecycle, and there is no mention of prerequisites (e.g., a connected GitHub account or that a task must exist before jules_get_task_status or jules_approve_plan apply).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_get_diffA
Fetches the git diff and PR link produced by Jules once execution or milestone steps have started.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The unique Jules Task ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses the timing constraint (only meaningful after execution/milestone steps begin), but says nothing about error behavior if the diff is not yet available, permission requirements, or whether the diff can be large/paginated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, front-loading the resource fetched and appending the timing condition. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the description states the resource and the precondition, and it implicitly tells the agent what is returned (diff plus PR link). The missing piece is failure-mode behavior when the diff does not yet exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter exists and schema description coverage is 100%, so the schema already documents taskId fully. The description adds no format, source, or constraint details beyond it, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (fetches) and a specific resource (git diff and PR link) that no sibling provides, so an agent can distinguish it from jules_get_task_status or jules_list_tasks. It stops short of explicitly naming a sibling to contrast against, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'once execution or milestone steps have started' gives an implied precondition for when the tool is useful, which is real guidance. However, it never says what to do if called too early, nor does it point to alternatives such as jules_get_task_status for checking readiness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_get_task_statusB
Fetches real-time status, logs, current step progress, and proposed plan for a specific Jules task.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The unique Jules Task ID (e.g. "jules-task-demo-8492") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. It usefully enumerates the returned content (status, logs, progress, plan), implying a read-only, non-mutating call, but says nothing about log truncation, polling/rate limits, or freshness guarantees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that enumerates the payload in order of importance with zero filler. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description does the right thing by naming what comes back (status, logs, progress, plan). It is nearly complete for a simple read tool, though it omits whether logs are paginated or how frequently status refreshes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema coverage is 100%, with the schema documenting the taskId format and an example. The description adds nothing beyond the schema's own wording, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Fetches") and a rich, concrete resource set: real-time status, logs, step progress, and proposed plan for a Jules task. This clearly separates it from jules_list_tasks (enumerate) and jules_get_diff (diffs), though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what is fetched but never when to reach for this over jules_list_tasks, jules_get_diff, or the plan/approval tools. "For a specific Jules task" implies you must already hold a taskId, but there is no stated precondition or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_list_tasksC
Lists recent and active coding tasks handled by Google Jules AI.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Filter tasks by repository ("owner/repo") | |
| limit | No | Maximum number of tasks to return (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about pagination behavior, ordering (newest first?), auth requirements, or what constitutes 'active'. It only hints at scope with 'recent and active', leaving most behavior undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler and no redundancy. It is efficient, though its brevity edges toward under-specification rather than optimal conciseness given the missing usage and behavior context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with 2 optional params and no output schema, the description is minimal but serviceable. However, with no output schema and no annotations, it should say more about what a returned task contains and how results are ordered/limited.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both 'repo' and 'limit' (including its default of 10 and format "owner/repo") are fully documented in the schema. The description adds no parameter meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a clear verb ('Lists') and resource ('coding tasks handled by Google Jules AI') with a scope qualifier ('recent and active'). It implicitly distinguishes itself from jules_get_task_status (single task) but never names or contrasts a sibling explicitly, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this list tool versus siblings like jules_get_task_status or how the repo/limit filters change the intent. Usage is only inferable from the tool name and the 'recent and active' phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_send_feedbackB
Sends a steering message, guidance, or mid-session instruction to an ongoing Jules coding session.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The unique Jules Task ID | |
| message | Yes | The message or additional context to send to Jules. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does disclose the semantic effect of the call — the text steers/guides an in-progress agent — and implies an active-session precondition. But it says nothing about whether the message queues, interrupts, is persisted, is reversible, or what errors occur if the session has ended.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is efficient, though its brevity means it leans entirely on other fields for completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no annotations and no output schema, the description is thin: it omits what a successful send returns or confirms, whether the session must be in a particular state, and any failure modes. The two-parameter schema is documented, but the behavioral envelope an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both required parameters (taskId, message) and their descriptions are adequate. The tool description adds no format, length, or token-limit guidance for the message or the taskId shape, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (sends) and resource (steering message/guidance to a Jules coding session), which is a clear, distinct action versus siblings like jules_approve_plan or jules_get_diff. It does not explicitly name or contrast with any sibling, so differentiation is inferable rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'ongoing Jules coding session' implies the tool is only usable while a session is active, which is useful contextual guidance. However, there is no explicit when/when-not statement, no mention of prerequisites such as whether the session must be awaiting input, and no routing to alternatives like jules_approve_plan.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v1.0.0- First observed
jules_approve_plan - First observed
jules_cancel_task - First observed
jules_create_task - First observed
jules_get_diff - First observed
jules_get_task_status - First observed
jules_list_tasks - First observed
jules_send_feedback
TDQS
Scored across 7 tools
Each tool maps to a distinct action in the Jules task lifecycle: list, create, status, approve, feedback, diff, cancel. The read-style tools (get_task_status vs get_diff) are clearly distinguished by what they return, and approve_plan vs send_feedback are separated by their distinct purposes. No two tools can be reasonably confused.
All names follow a strict 'jules_verb_noun' snake_case pattern, e.g. jules_list_tasks, jules_create_task, jules_cancel_task. The prefix is applied uniformly and verbs are unambiguous. There is no deviation in style.
Seven tools is well-scoped for managing an autonomous coding-task lifecycle. Each tool earns its place with no redundancy or filler. This sits comfortably in the ideal range.
The set covers the full workflow: create, list, observe status, gate the plan via approval, steer mid-session, retrieve diffs/PR, and abort. Minor gaps remain, e.g. no explicit way to fetch or merge the final PR artifact once complete, but agents can work around this via get_diff.
Maintenance
Related MCP Connectors
Persistent memory and cross-session learning for AI coding assistants (hosted remote MCP).
Agent-native notes, tasks, dev-docs, vaults, sync & handoffs. MCP + OpenAPI dual surface.
- DazbenchOAuthapp.dazbench
Task management your AI agents can actually run. One line becomes a context-ready task over MCP.
Persistent memory, knowledge graph, task management and more for AI agents via MCP.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceAn autonomous AI development agent that enables full-stack coding, automated verification, RAG-powered code search, and quality assurance through MCP tools. Supports Gemini CLI, Claude Code CLI, with features like parallel verification, security scanning, and spec-driven development.5-
- AlicenseNot gradedqualityAmaintenanceEnables any MCP client to launch and manage subagent sessions in installed coding agents like Codex, Claude Code, Grok, and OpenCode, using your existing logins and chosen models.179 npmMIT
- AlicenseNot gradedqualityAmaintenanceExposes specialized agents as MCP tools so users can manage and triage Jira tasks, analyze repositories for health and conventions, generate commit/PR/DevOps patterns, assemble reports, produce slides and infographics, and run semantic search over a knowledge base. Everything is invokable directly from inside a coding session in Claude Code, Cursor, or Claude Desktop.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables Claude and Codex agents to delegate implementation, testing, research, or review tasks to each other through local MCP tools, while supporting persistent sessions, isolated editing workspaces, and reviewed integration. It also allows progress tracking, cancellation, model selection, and management handoff between providers.MIT