Google Jules MCP
Integrates with Google Jules to automate AI-powered coding tasks, enabling task creation, progress monitoring, plan approval, and code analysis within the Google Jules development assistant.
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 MCP Create a task to fix the header layout issues in the dashboard repo"
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
Related MCP server: Jules API MCP
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
Inputs: taskId (required), includeSourceCode.
jules_approve_planC
Approve Jules execution plan for a task
Inputs: taskId (required).
jules_bulk_create_tasksB
Create multiple tasks from a list of descriptions and repositories
Inputs: tasks (required).
jules_create_taskC
Create a new task in Google Jules with repository and description
Inputs: description (required), repository (required), branch.
jules_get_cookiesB
Extract current browser cookies for session persistence and backup
Inputs: format.
jules_get_taskC
Get details of a specific Jules task by ID or URL
Inputs: taskId (required).
jules_list_tasksB
List all Jules tasks with their status
Inputs: status, limit.
jules_resume_taskB
Resume a paused Jules task
Inputs: taskId (required).
jules_screenshotC
Take a screenshot of current Jules page for debugging and verification
Inputs: taskId, filename.
jules_send_messageB
Send a message/instruction to Jules in an active task
Inputs: taskId (required), message (required).
jules_session_infoA
Get current session configuration and authentication status
Inputs: no named parameters.
jules_set_cookiesB
Set browser cookies from string or JSON for authentication
Inputs: cookies (required), format.
jules_setup_wizardC
Interactive session setup wizard for automated Google authentication configuration
Inputs: environment, preferences.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogā¦
TDQS
Scored across 13 tools
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.
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.
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.
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
Related MCP Connectors
MCP server that lets your AI assistant build and deploy apps, hosting each one at a live URL.
Hosted Google Ads MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn 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.34 npmMIT
- AlicenseNot gradedqualityDmaintenanceAn 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.10 npmMIT
- AlicenseBqualityDmaintenanceAn 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.9911 npm3Apache 2.0
- AlicenseAqualityDmaintenanceAn 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.165 npmMIT