Jules MCP Server
# Jules MCP Server
MCP (Model Context Protocol) server for [Google Jules](https://jules.google.com), the asynchronous AI coding agent. This server enables LLMs to create Jules sessions with **automatic pull request creation**.
## Features
- **Auto-PR Creation**: Sessions automatically create pull requests when complete
- **Issue Integration**: Create sessions directly from GitHub issues
- **Session Management**: List and monitor your Jules sessions
## Installation
```bash
npm install -g @anthropic/jules-mcp
```
Or run directly with npx:
```bash
npx @anthropic/jules-mcp
```
## Configuration
### Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| `JULES_API_KEY` | Yes | Jules API key from [Google AI Studio](https://aistudio.google.com/) |
| `GITHUB_TOKEN` | No | GitHub token for fetching issue details (optional but recommended) |
### Claude Code
Add to `~/.config/ccs/mcp.toml`:
```toml
[servers.jules]
command = "npx @anthropic/jules-mcp"
[servers.jules.env]
JULES_API_KEY = "env://JULES_API_KEY"
GITHUB_TOKEN = "env://GITHUB_TOKEN"
```
### Claude Desktop
Add to your Claude Desktop config:
```json
{
"mcpServers": {
"jules": {
"command": "npx",
"args": ["@anthropic/jules-mcp"],
"env": {
"JULES_API_KEY": "your-api-key"
}
}
}
}
```
## Tools
### `create_session`
Create a new Jules coding session.
**Parameters:**
- `repo` (required): GitHub repository in `owner/repo` format
- `prompt` (required): Task description for Jules
- `auto_pr` (optional, default: true): Automatically create a PR when done
- `starting_branch` (optional): Branch to start from
- `title` (optional): Session title
**Example:**
```json
{
"repo": "myorg/myrepo",
"prompt": "Add input validation to the login form",
"auto_pr": true
}
```
### `create_session_from_issue`
Create a session directly from a GitHub issue.
**Parameters:**
- `repo` (required): GitHub repository in `owner/repo` format
- `issue_number` (required): GitHub issue number
- `additional_context` (optional): Extra instructions
**Example:**
```json
{
"repo": "myorg/myrepo",
"issue_number": 42
}
```
### `list_sessions`
List your Jules sessions.
**Parameters:**
- `limit` (optional, default: 10): Maximum sessions to return
### `get_session`
Get details of a specific session.
**Parameters:**
- `session_id` (required): The session ID
## Development
```bash
# Install dependencies
npm install
# Build
npm run build
# Run locally
JULES_API_KEY=your-key node dist/index.js
```
## License
MIT
TDQS
Scored across 4 tools
The tools are mostly distinct: list_sessions and get_session clearly separate listing from detail retrieval. However, create_session and create_session_from_issue overlap in purpose, with the latter being a specialization, which could cause minor selection ambiguity.
All tool names follow a consistent verb_noun pattern: create, list, get, create. Even the longer 'create_session_from_issue' maintains the convention with a clear prepositional modifier. There is no mixing of styles or vague verbs.
With exactly 4 tools, the server is well-scoped for its purpose of managing Jules coding sessions. Each tool covers a distinct core operation without redundancy, making the count feel appropriate and not overwhelming.
The tool surface covers session creation (two variants), listing, and retrieval, which handles the primary lifecycle needs. However, it lacks explicit update or delete/cancel operations, which are minor gaps that could be worked around but are not covered.