Skip to main content
Glama

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

Related MCP server: Jules API MCP

Available Tools

Tool

Description

Task Management

jules_create_task

Create a new Jules task with repository and description

jules_get_task

Get detailed information about a specific task

jules_send_message

Send messages/instructions to Jules in active tasks

jules_approve_plan

Approve Jules execution plans

jules_resume_task

Resume paused tasks

jules_list_tasks

List tasks with filtering options

jules_analyze_code

Analyze code changes and project structure

jules_bulk_create_tasks

Create multiple tasks from a list

Session & Authentication

jules_get_cookies

Get current browser cookies for session persistence

jules_set_cookies

Set browser cookies from string/JSON for authentication

jules_session_info

Get current session configuration and status

Debugging

jules_screenshot

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

fresh

New browser session each time

Testing, no authentication needed

chrome-profile

Use existing Chrome profile

Local development with existing Google login

cookies

Save/load cookies to file

Persistent authentication without full profile

persistent

Save browser data to directory

Local development with full session persistence

browserbase

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 directory

How to Get Google Authentication Cookies

  1. Log in to Jules: Visit https://jules.google.com and log in

  2. Open Developer Tools: Press F12 or Cmd+Option+I

  3. Go to Application/Storage tab

  4. Find Cookies: Look for .google.com cookies

  5. Copy Important Cookies: Look for cookies like:

    • session_id or sessionid

    • auth_token or authuser

    • SID, HSID, SSID

    • SAPISID, 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 path

Usage 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 model

  • jules://current/active-tasks - Live list of active tasks

  • jules://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:

  1. Fork/Clone this repository

  2. Deploy to Smithery: Visit smithery.ai and connect your repo

  3. Configure Session Management in Smithery settings:

SESSION_MODE=browserbase
BROWSERBASE_API_KEY=bb_live_g3i-b4WPFh__E3cErKE5rO-jWds
BROWSERBASE_PROJECT_ID=d718e85f-be7b-497d-9123-b1bbf798f1bb
SESSION_MODE=cookies
GOOGLE_AUTH_COOKIES="session_id=abc123; domain=.google.com; auth_token=xyz789; domain=.google.com"
  1. 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

  1. Browser Automation Fails

    • Ensure you have proper access to jules.google.com

    • Check if you're logged into your Google account

    • Try running with HEADLESS=false to see what's happening

  2. Task Creation Fails

    • Verify repository names are correct (owner/repo-name format)

    • Ensure you have access to the specified repositories

    • Check that branches exist

  3. 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 start

This 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 config

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests if applicable

  5. 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 dev

Architecture

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:

  1. Issue Tracking → Jules Tasks: Convert GitHub issues to Jules tasks

  2. Code Review → Automation: Automate code review processes

  3. CI/CD Integration: Trigger Jules tasks from deployment pipelines

  4. Team Collaboration: Share Jules task management across teams

License

MIT License - see LICENSE file for details.

Acknowledgments


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 tools
jules_analyze_codeC

Analyze code changes and diff in a Jules task

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID or URL
includeSourceCodeNoWhether to include full source code content

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID or URL

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
tasksYesArray of task objects to create

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYesTask description - what you want Jules to do
repositoryYesGitHub repository in format owner/repo-name
branchNoGit branch to work on (optional, defaults to main)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput format for cookies (default: json)

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID or full Jules task URL

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter tasks by status
limitNoMaximum number of tasks to return (default 10)

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID or URL

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdNoOptional task ID to navigate to first
filenameNoOptional filename for screenshot

TDQS

C2.9/5.0
Behavior1/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID or URL
messageYesMessage to send to Jules

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoFormat of input cookies (default: json)
cookiesYesCookies as JSON string or cookie string format

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
environmentNoDeployment environment (auto-detect will analyze current setup)
preferencesNo

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 13 tool updatesv1.0.0
    • First observedjules_analyze_code
    • First observedjules_approve_plan
    • First observedjules_bulk_create_tasks
    • First observedjules_create_task
    • First observedjules_get_cookies
    • First observedjules_get_task
    • First observedjules_list_tasks
    • First observedjules_resume_task
    • First observedjules_screenshot
    • First observedjules_send_message
    • First observedjules_session_info
    • First observedjules_set_cookies
    • First observedjules_setup_wizard

TDQS

B3.2/5.0

Scored across 13 tools

Disambiguation4/5

Most tools are clearly distinct (create/get/list/send/approve/resume/analyze), but jules_get_cookies and jules_set_cookies could be confused with session management or authentication setup, and jules_screenshot is a debugging aid that overlaps somewhat with jules_analyze_code in purpose. Overall, the core task lifecycle tools are unambiguous.

Naming Consistency4/5

The naming follows a consistent jules_verb_noun pattern (create_task, get_task, list_tasks, send_message, approve_plan, resume_task, analyze_code). Minor deviations: jules_bulk_create_tasks is a variant of create, and jules_setup_wizard, jules_get_cookies, jules_set_cookies, jules_screenshot are less verb-noun consistent but still readable.

Tool Count4/5

13 tools is within the well-scoped range, and each tool serves a distinct function in the Jules workflow. The count is slightly on the higher side due to session/cookie/screenshot utilities, but they are justifiable for a browser-automation-based MCP server.

Completeness4/5

The core task lifecycle is covered: create, get, list, send message, approve plan, resume, analyze. Missing operations like cancel/delete task or update task description are minor gaps. The authentication/session tools (setup_wizard, cookies) add completeness for the browser-based setup domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server for browser automation that allows AI to perform web tasks using Playwright through direct commands, reusable YAML shortcuts, or custom scripts. It features secure environment variable management and guided automation creation to build robust, repeatable browser workflows.
    9 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables users to manage Google's Jules AI coding agent sessions directly from MCP-compatible clients. It supports creating sessions, approving execution plans, and interacting with session activity to streamline autonomous coding workflows.
    8 npm
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    An MCP server that provides AI models with full browser automation capabilities through Chrome. It enables navigation, interaction, screenshots, and complete DevTools access by bridging AI clients with a companion Chrome extension.
    99
    10 npm
    3
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    An MCP server for orchestrating Google Jules as a remote coding agent from a local coding agent, handling task decomposition, API dispatch, monitoring, intervention, code review, and PR merging.
    16
    7 npm
    MIT