Skip to main content
Glama
README.md
# 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

A4/5.0

Scored across 4 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues