Google Jules MCP
Enables repository management and branch operations for GitHub repositories through Jules task automation, including converting GitHub issues to Jules tasks and integrating with development workflows.
Provides automation for Google Jules AI coding assistant, enabling task creation, code review automation, repository management, progress tracking, and interactive communication with Jules for AI-powered development workflows.
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., "@Google Jules MCPcreate a task for my repo to add user authentication"
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.
Google Jules MCP
A Model Context Protocol (MCP) server for automating Google Jules - the AI coding assistant. This MCP enables seamless integration with Jules for task creation, code review automation, repository management, and AI-powered development workflows.
Features
šÆ Task Management
Create Tasks: Automatically create Jules tasks with repository and description
Monitor Progress: Track task status and get real-time updates
Approve Plans: Review and approve Jules execution plans
Resume Tasks: Resume paused or interrupted tasks
Bulk Operations: Create multiple tasks efficiently
š§ Code Operations
Code Analysis: Analyze code changes and diffs
Branch Management: Handle repository branches and configurations
Source Navigation: Browse and analyze source files
Review Automation: Automate code review workflows
š¬ Interactive Communication
Send Messages: Send instructions and feedback to Jules
Chat History: Track conversation history with Jules
Context Extraction: Extract relevant context from task discussions
š Project Management
Task Listing: List and filter tasks by status
Progress Tracking: Monitor development progress across projects
Data Persistence: Local storage of task data and history
š Session Management (NEW!)
Multiple Session Modes: Fresh, Chrome profile, cookies, persistent, and Browserbase
Google Authentication: Seamless login with existing Google sessions
Cookie Management: Extract, save, and restore authentication cookies
Remote Browser Support: Use Browserbase for cloud deployments
Cross-Platform: Works locally and in cloud environments
Available Tools
Tool | Description |
Task Management | |
| Create a new Jules task with repository and description |
| Get detailed information about a specific task |
| Send messages/instructions to Jules in active tasks |
| Approve Jules execution plans |
| Resume paused tasks |
| List tasks with filtering options |
| Analyze code changes and project structure |
| Create multiple tasks from a list |
Session & Authentication | |
| Get current browser cookies for session persistence |
| Set browser cookies from string/JSON for authentication |
| Get current session configuration and status |
Debugging | |
| Take debugging screenshots |
Installation
Prerequisites
Node.js 18+
TypeScript
Git access to repositories you want to manage
Setup
# Clone the repository
git clone https://github.com/samihalawa/google-jules-mcp.git
cd google-jules-mcp
# Install dependencies
npm install
# Build the project
npm run build
# Test the installation
npm testš Session Management & Authentication
Session Modes
The MCP supports 5 different session management modes:
Mode | Description | Use Case |
| New browser session each time | Testing, no authentication needed |
| Use existing Chrome profile | Local development with existing Google login |
| Save/load cookies to file | Persistent authentication without full profile |
| Save browser data to directory | Local development with full session persistence |
| Remote browser session | Cloud deployments, Smithery hosting |
Configuration Options
š Browserbase (Recommended for Smithery)
Perfect for remote deployments and cloud hosting:
SESSION_MODE=browserbase
BROWSERBASE_API_KEY=bb_live_g3i-b4WPFh__E3cErKE5rO-jWds # Your API key
BROWSERBASE_PROJECT_ID=d718e85f-be7b-497d-9123-b1bbf798f1bb # Your project ID
BROWSERBASE_SESSION_ID= # Optional: use existing sessionšŖ Cookie Authentication (Best for Manual Setup)
Extract cookies from your browser and set them as environment variable:
SESSION_MODE=cookies
GOOGLE_AUTH_COOKIES="session_id=abc123; domain=.google.com; auth_token=xyz789; domain=.google.com"
COOKIES_PATH=~/.jules-mcp/cookies.json # File to save/load cookiesš Chrome Profile (Local Development)
Use your existing Chrome profile:
SESSION_MODE=chrome-profile
CHROME_USER_DATA_DIR=/Users/yourname/Library/Application Support/Google/Chrome/Defaultš¾ Persistent Browser Data
Save browser data to a specific directory:
SESSION_MODE=persistent
CHROME_USER_DATA_DIR=~/.jules-mcp/browser-data # Custom browser data directoryHow to Get Google Authentication Cookies
Log in to Jules: Visit https://jules.google.com and log in
Open Developer Tools: Press F12 or Cmd+Option+I
Go to Application/Storage tab
Find Cookies: Look for
.google.comcookiesCopy Important Cookies: Look for cookies like:
session_idorsessionidauth_tokenorauthuserSID,HSID,SSIDSAPISID,APISID
Format for environment variable:
GOOGLE_AUTH_COOKIES="cookie1=value1; domain=.google.com; cookie2=value2; domain=.google.com"Environment Configuration
Create a .env file or set environment variables:
# Browser Configuration
HEADLESS=true # Run browser in headless mode
TIMEOUT=30000 # Browser timeout in milliseconds
DEBUG=false # Enable debug mode with screenshots
# Session Management
SESSION_MODE=browserbase # fresh | chrome-profile | cookies | persistent | browserbase
# Browserbase Configuration (for remote/cloud deployments)
BROWSERBASE_API_KEY=your_api_key
BROWSERBASE_PROJECT_ID=your_project_id
BROWSERBASE_SESSION_ID=optional_existing_session
# Cookie Authentication
GOOGLE_AUTH_COOKIES="session_id=abc; domain=.google.com"
COOKIES_PATH=~/.jules-mcp/cookies.json
# Chrome Profile (local development)
CHROME_USER_DATA_DIR=/path/to/chrome/profile
# Data Storage
JULES_DATA_PATH=~/.jules-mcp/data.json # Custom data storage pathUsage Examples
1. Create a New Task
// Create a task to fix a bug
{
"name": "jules_create_task",
"arguments": {
"description": "Fix the login authentication bug in the user dashboard. The issue occurs when users try to log in with special characters in their password.",
"repository": "mycompany/webapp",
"branch": "main"
}
}2. Monitor Task Progress
// Get task details and progress
{
"name": "jules_get_task",
"arguments": {
"taskId": "9103172019911831130"
}
}3. Send Instructions to Jules
// Send additional context or instructions
{
"name": "jules_send_message",
"arguments": {
"taskId": "9103172019911831130",
"message": "Please also add unit tests for the authentication fix and ensure backward compatibility."
}
}4. Bulk Task Creation
// Create multiple tasks at once
{
"name": "jules_bulk_create_tasks",
"arguments": {
"tasks": [
{
"description": "Add dark mode support to the UI",
"repository": "mycompany/frontend",
"branch": "feature/dark-mode"
},
{
"description": "Optimize database queries for user search",
"repository": "mycompany/backend",
"branch": "performance/search"
}
]
}
}5. List and Filter Tasks
// List active tasks
{
"name": "jules_list_tasks",
"arguments": {
"status": "in_progress",
"limit": 10
}
}6. Session Management Examples
Check Session Status
{
"name": "jules_session_info",
"arguments": {}
}Get Current Cookies (for backup)
{
"name": "jules_get_cookies",
"arguments": {
"format": "string" // or "json"
}
}Set Authentication Cookies
{
"name": "jules_set_cookies",
"arguments": {
"cookies": "session_id=abc123; domain=.google.com; auth_token=xyz789; domain=.google.com",
"format": "string"
}
}MCP Resources
The server provides useful resources for context:
jules://schemas/task- Complete task data modeljules://current/active-tasks- Live list of active tasksjules://templates/common-tasks- Template examples for common development tasks
Common Task Templates
The MCP includes templates for common development scenarios:
Bug Fix:
"Fix the [specific issue] in [filename]. The problem is [description]."Feature Add:
"Add [feature name] functionality to [location]. Requirements: [list requirements]."Refactor:
"Refactor [component/function] to improve [performance/readability/maintainability]."Testing:
"Add comprehensive tests for [component/function] covering [test cases]."Documentation:
"Update documentation for [component] to include [new features/changes]."
Integration with Claude Code
Local Integration
{
"mcpServers": {
"google-jules-mcp": {
"command": "node",
"args": ["path/to/google-jules-mcp/dist/index.js"],
"env": {
"HEADLESS": "true",
"SESSION_MODE": "cookies",
"GOOGLE_AUTH_COOKIES": "your_cookies_here",
"DEBUG": "false"
}
}
}
}š Smithery Deployment
Deploy to Smithery.ai
The MCP is fully configured for Smithery deployment with comprehensive session management:
Fork/Clone this repository
Deploy to Smithery: Visit smithery.ai and connect your repo
Configure Session Management in Smithery settings:
Option A: Browserbase (Recommended)
SESSION_MODE=browserbase
BROWSERBASE_API_KEY=bb_live_g3i-b4WPFh__E3cErKE5rO-jWds
BROWSERBASE_PROJECT_ID=d718e85f-be7b-497d-9123-b1bbf798f1bbOption B: Cookie Authentication
SESSION_MODE=cookies
GOOGLE_AUTH_COOKIES="session_id=abc123; domain=.google.com; auth_token=xyz789; domain=.google.com"Access Remotely: Use your deployed MCP from any Claude Code instance
Benefits of Smithery + Browserbase
ā No Local Browser: Runs entirely in the cloud
ā Persistent Sessions: Maintain Google authentication across deployments
ā Global Access: Use from anywhere with internet connection
ā Auto-scaling: Handles multiple concurrent requests
ā Zero Setup: No local dependencies or configuration needed
Troubleshooting
Common Issues
Browser Automation Fails
Ensure you have proper access to
jules.google.comCheck if you're logged into your Google account
Try running with
HEADLESS=falseto see what's happening
Task Creation Fails
Verify repository names are correct (
owner/repo-nameformat)Ensure you have access to the specified repositories
Check that branches exist
Permission Errors
Make sure you have write access to the data storage path
Verify repository permissions in GitHub
Debug Mode
Enable debug mode for troubleshooting:
DEBUG=true HEADLESS=false npm startThis will:
Show browser interactions visually
Take screenshots on errors
Provide detailed logging
Development
Project Structure
google-jules-mcp/
āāā src/
ā āāā index.ts # Main MCP server implementation
āāā docs/
ā āāā referencerecordings/ # Browser automation references
āāā scripts/
ā āāā test-mcp.js # Testing script
āāā dist/ # Compiled output
āāā package.json
āāā tsconfig.json
āāā smithery.yaml # MCP deployment configContributing
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
Submit a pull request
Testing
# Run the test suite
npm test
# Build and test
npm run build && npm test
# Development mode with file watching
npm run devArchitecture
The MCP follows established patterns:
Browser Automation: Uses Playwright for reliable web automation
Data Persistence: Local JSON storage for task tracking
Error Handling: Comprehensive error handling with meaningful messages
Resource Management: Proper browser lifecycle management
Security: No credential storage, relies on browser session
Workflow Integration
This MCP is designed to integrate with development workflows:
Issue Tracking ā Jules Tasks: Convert GitHub issues to Jules tasks
Code Review ā Automation: Automate code review processes
CI/CD Integration: Trigger Jules tasks from deployment pipelines
Team Collaboration: Share Jules task management across teams
License
MIT License - see LICENSE file for details.
Acknowledgments
Built with the Model Context Protocol SDK
Inspired by the tusclasesparticulares-mcp implementation patterns
Browser automation powered by Playwright
Note: This MCP requires access to Google Jules. Ensure you have appropriate permissions and access to the repositories you want to manage.
Available Tools
13 toolsjules_analyze_codeC
Analyze code changes and diff in a Jules task
| Name | Required | Description | Default |
|---|---|---|---|
| includeSourceCode | No | Whether to include full source code content | |
| taskId | Yes | Task ID or URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states that the tool analyzes code, but does not indicate whether it is read-only, requires authentication, has side effects, or provides output format details.
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 effectively communicates the tool's purpose. It is concise and front-loaded, though slightly more context about behavior could improve without harming conciseness.
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?
The tool is simple with two parameters and no output schema, but the description lacks details on return values, what 'analyze' produces, and how it differs from task retrieval. This leaves the agent partially uninformed.
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. The tool description adds no additional meaning beyond what the schema already provides, meeting baseline adequacy.
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 states 'Analyze code changes and diff in a Jules task', which clearly identifies the action (analyze) and resource (code changes/diff within a task). This distinguishes it from sibling tools like jules_get_task, but the exact scope of 'analyze' could be more specific.
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 guidance is provided on when to use this tool versus alternatives (e.g., jules_get_task for general task info). The description does not mention prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_approve_planC
Approve Jules execution plan for a task
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | Task ID or URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'Approve', implying a write operation but omits details like irreversibility, side effects (e.g., triggering execution), or required permissions.
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, clear sentence with no wasted words. However, it lacks structure like separate sections for purpose, usage, and behavior.
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 one-parameter tool with no output schema or annotations, the description is minimally adequate but not informative beyond the bare action. It does not help an agent decide when to invoke this tool over siblings.
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 coverage is 100% (only taskId), and the description adds no extra meaning beyond the schema's 'Task ID or URL'. Baseline 3 with no additional parameter context.
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 'Approve' and the resource 'Jules execution plan for a task', making the tool's purpose immediately understandable. However, it does not differentiate from siblings like jules_resume_task, which could be seen as a related action.
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 guidance is provided on when to use this tool versus alternatives (e.g., jules_resume_task, jules_send_message). The description lacks any contextual signals about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_bulk_create_tasksB
Create multiple tasks from a list of descriptions and repositories
| Name | Required | Description | Default |
|---|---|---|---|
| tasks | Yes | Array of task objects to create |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose important behavioral traits such as atomicity, error handling on partial failures, or potential rate limits. The description only indicates a write operation without further context.
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, clear sentence with no extraneous words. It efficiently conveys 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?
The description lacks important contextual details for a bulk creation tool, such as maximum batch size, result format, or how errors are reported. No output schema is provided, so the agent has no information about the expected response.
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?
With 100% schema description coverage, the baseline is 3. The description adds minimal meaning beyond the schema, merely restating 'descriptions and repositories' without elaborating on the optional 'branch' field. The schema already documents the parameter structure adequately.
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'), the resource ('multiple tasks'), and the input source ('list of descriptions and repositories'). It effectively distinguishes from the sibling tool jules_create_task by emphasizing bulk creation.
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 implies a use case for creating multiple tasks at once, but it does not explicitly state when to use this tool versus alternatives like jules_create_task for single tasks. No guidance on when not to use it is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_create_taskC
Create a new task in Google Jules with repository and description
| Name | Required | Description | Default |
|---|---|---|---|
| branch | No | Git branch to work on (optional, defaults to main) | |
| description | Yes | Task description - what you want Jules to do | |
| repository | Yes | GitHub repository in format owner/repo-name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that the tool creates a task (a write operation) but omits important behavioral details such as required permissions, idempotency, error behavior, or what response to expect. This is insufficient for a create tool.
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, concise sentence that directly states the tool's purpose. It is front-loaded with the action and resource, containing no unnecessary words or details.
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 output schema and only 3 parameters, the description lacks essential completeness. It does not explain what the tool returns (e.g., task ID), how to interpret success/failure, or side effects. A create operation typically requires such context.
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 coverage is 100%, so the input schema already describes each parameter. The description merely echoes 'repository and description' without adding new semantics or clarifying optional parameters like 'branch'. This meets the baseline but adds no extra 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 verb 'Create', the resource 'task', and the context 'in Google Jules'. It mentions key parameters 'repository and description'. However, it does not explicitly differentiate from the sibling tool 'jules_bulk_create_tasks', though the singularity of 'a new task' implies a single task creation.
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 guidance is provided on when to use this tool versus alternatives like 'jules_bulk_create_tasks' or 'jules_analyze_code'. No prerequisites, context, or exclusion criteria are mentioned, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_get_cookiesB
Extract current browser cookies for session persistence and backup
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Output format for cookies (default: json) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions extraction but does not disclose behavioral traits like whether cookies are cleared after extraction, authentication needs, or side effects. Additional context is needed.
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, very concise sentence that conveys the core purpose without any fluff. However, it may be too sparse, missing important details like usage and behavior.
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 output schema and no annotations, the description should cover return type and behavioral aspects. It lacks details on what the output looks like (e.g., format of cookies) and side effects, making it incomplete.
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 coverage is 100% with a description for the 'format' parameter. The description does not add any extra semantic meaning beyond what the schema provides, so baseline score of 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?
The description clearly states the action (extract cookies) and the purpose (session persistence and backup). It distinguishes from sibling tools like jules_set_cookies which sets cookies.
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 explicit guidance on when to use this tool versus alternatives such as jules_set_cookies. The description implies a use case but does not provide context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_get_taskC
Get details of a specific Jules task by ID or URL
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | Task ID or full Jules task URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Merely says 'Get details', implying a read operation, but gives no information about side effects, required permissions, or what happens if the task doesn't exist.
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?
Extremely concise at 9 words, front-loaded with action and resource. Could be slightly more informative without losing conciseness, but no wasted words.
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?
Minimum viable for a simple retrieval tool. Lacks return value description, error scenarios, or mention of output schema, but the tool complexity is low with one parameter.
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?
Input schema has 100% coverage, describing taskId as 'Task ID or full Jules task URL'. Description repeats this info without adding extra meaning, meeting baseline but not exceeding.
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?
Clearly states 'Get details of a specific Jules task', which is a specific verb and resource. It implies differentiation from list tasks by focusing on a single task, but does not explicitly distinguish from siblings like jules_analyze_code.
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 guidance on when to use this tool vs alternatives. Does not mention that you need a task ID or URL from jules_list_tasks first, or that it's read-only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_list_tasksB
List all Jules tasks with their status
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of tasks to return (default 10) | |
| status | No | Filter tasks by status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description fails to disclose that the operation is read-only, lacks pagination details, or explains default behavior for limit. Minimal behavioral disclosure.
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?
Highly concise at 8 words, but could benefit from slight expansion without losing brevity. No fluff.
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 list tool with an enum status parameter and no output schema, the description is adequate but lacks explanation of return format or pagination behavior.
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 coverage is 100%, so the description adds little beyond 'with their status'. The schema already documents the status filter and limit. Baseline score 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 clearly states the tool lists all tasks and filters by status, distinguishing it from siblings like get_task (single) and create_task.
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 explicit guidance on when to use this tool versus alternatives such as jules_get_task for a single task. The description only implies its use for listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_resume_taskB
Resume a paused Jules task
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | Task ID or URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as whether resumption requires authorization, what side effects occur, or what happens if the task is not paused.
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 concise sentence that conveys the core purpose without extra words. Efficient and front-loaded.
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 tool with one parameter and no output schema, the description provides basic context but omits prerequisites (task must be paused) and expected behavior if conditions are not met.
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 coverage is 100% for the single parameter, and the description adds no additional meaning beyond the schema's own description ('Task ID or URL'). Baseline score 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 'Resume a paused Jules task' clearly states the specific action (resume) and the resource (Jules task), and distinguishes from siblings like create or get.
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 guidance on when to use this tool versus alternatives (e.g., when a task is already running, or how to identify paused tasks). No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_screenshotC
Take a screenshot of current Jules page for debugging and verification
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No | Optional filename for screenshot | |
| taskId | No | Optional task ID to navigate to first |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavior. It fails to do so: it doesn't describe where the screenshot is saved, whether it's temporary, what happens if the page isn't ready, or if it has side effects. Only the purpose is given, not behavioral traits.
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 sentence, no verbosity. However, it sacrifices necessary detail for brevity. Still, it is well-structured and front-loaded.
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?
The description lacks key information for a complete understanding, especially since there is no output schema. It doesn't explain what the tool returns (e.g., a file path, a data URL) or error conditions. For a simple screenshot tool, it should at least mention the outcome.
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 already explains both parameters (taskId and filename). The tool description adds no additional context or constraints beyond that. 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?
The description clearly states the verb 'take' and the resource 'screenshot of current Jules page', with a specific purpose 'for debugging and verification'. This distinguishes it from sibling tools like jules_analyze_code or jules_send_message, which have different actions.
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 usage guidance is provided. The description does not indicate when to use this tool over siblings (e.g., when visual verification is needed vs code analysis). There is no mention of when-not-to-use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_send_messageB
Send a message/instruction to Jules in an active task
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Message to send to Jules | |
| taskId | Yes | Task ID or URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It mentions the target is an 'active task,' implying the task must exist, but it does not state side effects (e.g., whether the message is logged), permissions, or rate limits. The description adds minimal value beyond the schema.
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, concise sentence with no unnecessary words. It is front-loaded and efficient.
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 output schema and simple parameters, the description should at least indicate expected response or error states. It only says 'send a message,' leaving ambiguity about confirmation, whether it's asynchronous, or what happens if the task is inactive.
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% (both parameters have descriptions). The description adds 'instruction' synonym but no new semantic details beyond the schema. 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?
The description clearly states the action (send), the object (message/instruction), and the target (Jules in an active task). It effectively distinguishes from sibling tools like jules_analyze_code or jules_approve_plan, which have different purposes.
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 (e.g., when to send a message vs. creating a task). It does not mention prerequisites, context, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_session_infoA
Get current session configuration and authentication status
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, description must fully disclose behavior. It only says 'Get current session configuration and authentication status', implying a read operation, but does not clarify side effects, auth requirements, or what 'session configuration' entails. Lacks detail for a tool with no annotation support.
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?
Single sentence, front-loaded with purpose, zero waste. Ideal length for a simple read tool.
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 zero-parameter tool with no output schema, the description sufficiently conveys the tool's output. Could be slightly more specific about what 'session configuration' includes, but adequate for its simplicity.
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?
No parameters exist, so schema coverage is 100% (trivially). Description does not need to add parameter meaning. Baseline 4 applies as no additional semantics are required but also not provided.
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?
Description clearly identifies the tool's purpose with specific verb ('Get') and resource ('current session configuration and authentication status'). It distinguishes itself from sibling tools that deal with code analysis, task management, cookies, etc.
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 guidance on when to use this tool versus alternatives. No mention of context, prerequisites, or exclusions. The description just states the function without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_set_cookiesB
Set browser cookies from string or JSON for authentication
| Name | Required | Description | Default |
|---|---|---|---|
| cookies | Yes | Cookies as JSON string or cookie string format | |
| format | No | Format of input cookies (default: json) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states the basic action without mentioning whether it overwrites existing cookies, requires a valid session, or what happens after setting (e.g., page reload, token refresh). This is insufficient for safe invocation.
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 concise sentence that directly states the purpose. It is front-loaded and efficient, though it could include more details without being verbose.
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 the lack of output schema and annotations, the description is incomplete. It does not describe the return value (success/failure, updated cookies), nor does it clarify if the tool affects existing cookies or requires a browser session. More context is needed for a tool that modifies state.
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 coverage is 100%, so the baseline is 3. The description adds 'for authentication' context but does not explain the difference between 'json' and 'string' formats or provide examples. No additional value beyond the schema.
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 ('Set browser cookies') and the source ('from string or JSON') and purpose ('for authentication'). It distinguishes from the sibling 'jules_get_cookies' which retrieves cookies.
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 implies the tool is used to set cookies for authentication, but provides no explicit guidance on when to use it vs alternatives (e.g., jules_analyze_code) or when not to use it (e.g., if cookies already set). No prerequisites or side effects mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jules_setup_wizardC
Interactive session setup wizard for automated Google authentication configuration
| Name | Required | Description | Default |
|---|---|---|---|
| environment | No | Deployment environment (auto-detect will analyze current setup) | |
| preferences | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden of behavioral disclosure. It states the tool is interactive and for setup, but does not clarify if it modifies state, requires authentication, or has side effects. The interactive nature is implied but not elaborated.
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 sentence, which is concise, but it lacks structure and does not expand on key aspects like parameters or behavior. It earns its place by stating purpose but could be more informative without adding length.
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 output schema, no annotations, and nested parameters, the description is incomplete. It does not explain return values, side effects, or what the user should expect after running the wizard. Critical information for a setup tool 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 50% (environment described, preferences sub-properties described but not the object itself). The description adds no additional meaning beyond what is in the schema, failing to explain parameter use or nuances like the impact of 'ease-of-use' vs 'performance' priorities.
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 tool as an 'Interactive session setup wizard for automated Google authentication configuration', specifying the verb (setup wizard) and resource (session with Google auth). It distinguishes from sibling tools by focusing on setup, not analysis or task management.
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 guidance is provided on when to use this tool versus alternatives like jules_session_info or jules_set_cookies. There is no mention of prerequisites, appropriate contexts, or when not to use it.
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.
13 tool updates
v1.0.0- First observed
jules_analyze_code - First observed
jules_approve_plan - First observed
jules_bulk_create_tasks - First observed
jules_create_task - First observed
jules_get_cookies - First observed
jules_get_task - First observed
jules_list_tasks - First observed
jules_resume_task - First observed
jules_screenshot - First observed
jules_send_message - First observed
jules_session_info - First observed
jules_set_cookies - First observed
jules_setup_wizard
TDQS
Scored across 13 tools
Every tool has a clearly distinct purpose with no ambiguity. Tools like jules_analyze_code, jules_approve_plan, jules_create_task, and jules_get_task each target specific actions on different aspects of the Jules system, and there is no overlap in functionality that would cause confusion.
All tool names follow a consistent verb_noun pattern with the prefix 'jules_' and snake_case throughout. Examples include jules_create_task, jules_list_tasks, and jules_send_message, making the naming predictable and easy to understand.
With 13 tools, the set is well-scoped for managing Google Jules tasks, covering creation, retrieval, control, and session management. Each tool earns its place without feeling excessive or insufficient for the domain.
The tool surface provides complete coverage for the Jules task lifecycle, including create, get, list, approve, resume, and send messages, along with session setup and authentication tools. There are no obvious gaps that would hinder agent workflows.
Related MCP Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Adaptive plan/build/review cycles for AI coding assistants, persisted across sessions.
- OolkinOAuthcom.oolkin
AI colleagues that keep your standards, your project and their reasoning between sessions
Build and supervise fleets of agents from Claude Code, Codex or Cursor. Connects over OAuth.