Jules MCP Server
The Jules MCP Server lets you orchestrate Jules AI workers for collaborative software development tasks through three core capabilities:
Create worker sessions (
jules_create_worker): Spawn Jules AI workers with specific roles — MAESTRO, CREW, FREELANCER, or EVALUATOR — assign them a task, link them to a GitHub repository/branch, and optionally nest them under a parent session for hierarchical orchestration.Send messages to workers (
jules_send_message): Communicate with active worker sessions to provide follow-up instructions, clarifications, or additional context during task execution.Retrieve worker activities (
jules_get_activities): Fetch recent activity logs from a worker session to monitor progress and track the state of ongoing tasks.
Together, these enable multi-role, staged workflows where specialized workers collaborate — coordinated via global shared memory for cross-session context passing and real-time activity streaming via the Jules SDK.
Provides tools for git branch management, including creating, merging, and listing local branches to support staged orchestration and development workflows.
Integrates with the Google Jules API to orchestrate multiple AI instances for comprehensive code generation, bug fixing, and security-focused code reviews.
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 MCP ServerCreate a worker to fix the bug in server.js on a new branch"
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.
⚠️ Deprecated Notice
Jules MCP is now deprecated. Google Labs has released their official Jules SDK with native Model Context Protocol (MCP) support, making this community package obsolete.
🗺️ Navigation
⚙️ Setup
Choose the installation method that fits your workflow. Both methods require a Jules API Key.
Visitjules.google.com/settings/api to generate your credentials before proceeding.
The fastest way to get started. Copy the block below and paste it into your AI assistant (Antigravity, Cursor, or Claude).
Read https://raw.githubusercontent.com/TheRealAshik/jules-mcp/refs/heads/main/docs/AGENT_INSTALL.md and do as per the instructions.If you prefer to configure the server yourself, follow these steps:
Locate your config file:
Antigravity:
~/.gemini/antigravity/mcp_config.jsonClaude Desktop:
%APPDATA%\Claude\claude_desktop_config.jsonCursor: Settings > Features > MCP > Add New Server
Add the following snippet:
{
"mcpServers": {
"jules-mcp": {
"command": "npx",
"args": ["-y", "@realashik/jules-mcp"],
"env": {
"JULES_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}📖 Overview
Jules MCP is a Model Context Protocol (MCP) server designed to supercharge AI coding agents to control Jules. While standard AI agents are limited to linear task execution, Jules MCP introduces Staged Orchestration—enabling a "Commander" agent to deploy multiple specialized sub-agents (Maestros, Crews, Freelancers) to handle distinct parts of a project simultaneously or in sequence.
Built on top of the official @google/jules-sdk, it provides the bridge between your IDE and a distributed team of AI workers with advanced features like real-time streaming, session management, and intelligent caching.
Use IDE agents to analyse and assign tasks to Jules to get best output from this MCP.
v1.0.4+ now uses the official Google Jules SDK for improved reliability, streaming support, and better error handling.
🚀 Features
🎭 Multi-Role Orchestration: Spawn
MAESTRO(Architect),CREW(Implementer),FREELANCER(Specialist), orEVALUATOR(Quality Control).📝 Staged Workflows: Automatically manage git branches, code generation, and merging in a single, safe flow.
🧠 Global Shared Memory: Cross-session memory allows workers to pass variables and context like biological collaborators.
🛡️ Quality Enforcement: Built-in review cycles ensure code meets security and performance standards before merging.
⚡ Zero Configuration: Instantly usable via
npxwith automatic environment discovery.🌊 Real-time Streaming: Stream live activity updates from Jules sessions using the official SDK.
🔄 Session Management: Simplified session lifecycle with automatic polling and state management.
🌟 Support
If Jules MCP helps you build faster, please consider:
⭐️ Starring the GitHub Repository
👤 Following TheRealAshik for updates.
Developed with ❤️ by TheRealAshik
Available Tools
3 toolsjules_create_workerC
Create a new Jules worker session for a task
| Name | Required | Description | Default |
|---|---|---|---|
| task_description | Yes | Description of task for the worker | |
| source | Yes | GitHub source (format: "sources/github/owner/repo") | |
| title | Yes | Short title for the session | |
| github_branch | No | Branch to work on (optional, default: "main") | main |
| role | No | Worker role (MAESTRO, CREW, FREELANCER, EVALUATOR) | FREELANCER |
| parent_session_id | No | ID of parent worker (if CREW) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'create' which implies a write/mutation operation, but fails to describe permissions needed, side effects, session lifecycle, or response format. This is inadequate for a creation tool with zero annotation coverage.
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?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.
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 creation tool with 6 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what a 'Jules worker session' entails, how it's used, what happens after creation, or any behavioral traits. The agent lacks critical context for proper tool invocation.
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 all parameters are documented in the schema. The description adds no additional parameter context beyond implying a 'task' context, which is already covered by the 'task_description' parameter. Baseline 3 is appropriate when the schema does the heavy lifting.
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 clearly states the action ('Create') and resource ('new Jules worker session for a task'), making the purpose understandable. It distinguishes from siblings like 'jules_get_activities' (read) and 'jules_send_message' (communication), but doesn't explicitly differentiate beyond the basic verb. A 5 would require more specific 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?
The description provides no guidance on when to use this tool versus alternatives, prerequisites, or contextual constraints. It simply states what it does without indicating appropriate scenarios or exclusions, leaving the agent with minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_get_activitiesC
Get recent activities for a Jules worker
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Worker session ID | |
| limit | No | Maximum number of activities 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 burden of behavioral disclosure. It states the tool retrieves activities but omits critical details such as whether it's read-only, if there are rate limits, authentication needs beyond session_id, or what the return format looks like. This is a significant gap for a tool with no annotation coverage.
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?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it easy for an agent to parse quickly.
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?
Given no annotations and no output schema, the description is incomplete. It fails to explain behavioral traits (e.g., safety, rate limits), return values, or error conditions. For a tool with two parameters and retrieval functionality, more context is needed to ensure proper agent usage.
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 the schema fully documents both parameters (session_id and limit). The description does not add any meaning beyond what the schema provides, such as explaining what a 'session_id' represents or how 'limit' affects performance. Baseline 3 is appropriate when the schema handles parameter documentation.
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 clearly states the verb ('Get') and resource ('recent activities for a Jules worker'), making the purpose understandable. It distinguishes from siblings like 'jules_create_worker' (creation) and 'jules_send_message' (messaging) by focusing on retrieval. However, it lacks specificity about what 'activities' entail, which prevents a perfect score.
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 provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing a valid session_id), exclusions, or contextual cues. This leaves the agent without direction on appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_send_messageC
Send a message to an existing Jules worker session
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Worker session ID | |
| message | Yes | Message text to send |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool sends a message but doesn't cover critical aspects like authentication needs, rate limits, side effects, or what happens after sending (e.g., response format, errors). This leaves significant gaps for an agent to understand the tool's behavior.
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?
The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration.
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?
Given no annotations and no output schema, the description is incomplete for a tool that performs an action like sending a message. It lacks details on behavioral traits, response expectations, and how it fits with sibling tools, leaving the agent with insufficient context for effective use.
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%, with both parameters clearly documented in the schema. The description adds no additional meaning beyond what the schema provides (e.g., format examples, constraints), so it meets the baseline for high schema coverage without compensating value.
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 clearly states the action ('Send a message') and target ('to an existing Jules worker session'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like jules_create_worker or jules_get_activities, which prevents a perfect score.
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 provides minimal guidance by specifying 'to an existing Jules worker session,' implying a prerequisite but not stating it explicitly. No alternatives are mentioned, and there's no clear when-to-use vs. when-not-to-use guidance relative to sibling tools.
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.
3 tool updates
v1.0.0- First observed
jules_create_worker - First observed
jules_get_activities - First observed
jules_send_message
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: creating a worker, getting activities, and sending messages. There is no overlap in functionality, and the descriptions make it easy to tell them apart.
All tools follow a consistent 'jules_verb_noun' pattern with snake_case, using clear verbs like create, get, and send. The naming is predictable and uniform throughout the set.
With only 3 tools, the set feels thin for a worker session management domain. While it covers basic operations, it lacks tools for updating, deleting, or managing worker states, which might limit agent workflows.
The tool surface is significantly incomplete for managing Jules workers. It includes create, get activities, and send message, but misses essential operations like updating worker settings, deleting sessions, listing workers, or handling errors, which could cause agent failures.
Related MCP Connectors
- ParleyOAuthdev.weldra
Coordination hub for AI coding agents: message teammates, ask humans, audit every event.
AI work orchestration for plans, tasks, teams, and coding-agent dispatch.
The AI orchestration agent for modern software teams.
Shared control plane for AI coding agents — tasks, memory, decisions, file locks. 12 tools.