1. Conduid
  2. Developer Tools
  3. Jules MCP Server
MCP server · Developer Tools

Jules MCP Server

Unofficial MCP server for Google Jules agent 🐙

Unclaimed Apache-2.0 last commit a year ago devtools
56Fair

Scored 12 days ago · breakdown

About Jules MCP Server

Jules MCP Server is an MCP server published by CodeAgentBridge in the Developer Tools category: unofficial MCP server for Google Jules agent 🐙.

The repository has 41 stars and 11 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/CodeAgentBridge/jules-mcp-server

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Jules MCP Server

Powered by Claude · Grounded in docs

I know everything about Jules MCP Server. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 5 days ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

v0.1.6v0.1.6 · 15 Oct 2025Full Changelog: https://github.com/CodeAgentBridge/jules-mcp-server/compare/v0.1.5...v0.1.6
v0.1.5v0.1.5 - trying to fix docker hub publishing · 15 Oct 2025Full Changelog: https://github.com/CodeAgentBridge/jules-mcp-server/compare/v0.1.4...v0.1.5
v0.1.4v0.1.4 - Added docker hub image · 15 Oct 2025What's Changed chore: add dockerhub publishing. update deps by @xSAVIKx in https://github.com/CodeAgentBridge/jules-mcp-server/pull/3 New Contributors @xSAVIKx made their first contribution in…
v0.1.3v0.1.3 - fixed typings and enabled mypy CI · 4 Oct 2025Full Changelog: https://github.com/CodeAgentBridge/jules-mcp-server/compare/v0.1.2...v0.1.3
v0.1.2v0.1.2 - better metadata setup · 4 Oct 2025Full Changelog: https://github.com/CodeAgentBridge/jules-mcp-server/compare/v0.1.1...v0.1.2

README

Jules MCP Server (jules-mcp)

An MCP (Model Context Protocol) server that exposes Google Jules Agent operations via FastMCP.

This server lets MCP-compatible clients (and Python code) list Jules sources, create and manage sessions, and inspect activities using the official jules-agent-sdk.

  • Server framework: FastMCP
  • SDK: jules-agent-sdk
  • Python: 3.13+
  • License: Apache-2.0

Features

Tools exposed via the MCP server (grouped by area):

  • Sources
    • get_source(source_id)
    • list_sources(filter_str=None, page_size=None, page_token=None)
    • get_all_sources(filter_str=None)
  • Sessions
    • create_session(prompt, source, starting_branch=None, title=None, require_plan_approval=False)
    • get_session(session_id)
    • list_sessions(page_size=None, page_token=None)
    • approve_session_plan(session_id)
    • send_session_message(session_id, prompt)
    • wait_for_session_completion(session_id, poll_interval=5, timeout=600)
  • Activities
    • get_activity(session_id, activity_id)
    • list_activities(session_id, page_size=None, page_token=None)
    • list_all_activities(session_id)

See jules_mcp/jules_mcp.py for signatures and inline docstrings.

Installation

Option A — from a local checkout:

# from the repository root
pip install -e .

Option B — using uv (recommended during development):

# from the repository root
uv sync

The project targets Python 3.13+.

Configuration

Set your Jules API key via environment variable:

  • Windows PowerShell
    $Env:JULES_API_KEY = "<your_api_key_here>"
    
  • Unix shells (bash/zsh)
    export JULES_API_KEY="<your_api_key_here>"
    

If you do not provide an argument to jules(), the SDK reads JULES_API_KEY automatically.

Running the MCP server

There are two common ways to run the server.

  1. Programmatic run (in-process) using FastMCP Client — useful for testing or embedding:
import asyncio
from fastmcp import Client
from jules_mcp import mcp

async def main():
    async with Client(mcp) as client:
        # Example: list all sources (auto-paginated)
        result = await client.call_tool("get_all_sources")
        print(result)

asyncio.run(main())
  1. As a standalone MCP server executable for external MCP clients:
  • Using uv and FastMCP directly

    uv run fastmcp run jules_mcp/jules_mcp.py:mcp
    

    This starts the MCP server over stdio.

  • Using the provided configuration files

    • MCP.json: a sample command configuration for MCP-aware hosts.
    • fastmcp.json: FastMCP runtime/environment configuration.

Adjust paths in MCP.json if you use a different checkout location.

You can also run via the module entry point:

python -m jules_mcp

This calls start_mcp() which invokes FastMCP.run() using the "mcp" instance defined in the package.

Usage notes and examples

  • Listing and filtering sources
import asyncio
from fastmcp import Client
from jules_mcp import mcp

async def main():
    async with Client(mcp) as client:
        # Filter syntax follows AIP-160 filtering rules supported by Jules
        res = await client.call_tool(
            "list_sources",
            {"filter_str": "name=sources/source1 OR name=sources/source2", "page_size": 10}
        )
        print(res)

asyncio.run(main())
  • Creating a session and waiting for completion
import asyncio
from fastmcp import Client
from jules_mcp import mcp

async def run_session():
    async with Client(mcp) as client:
        session = await client.call_tool(
            "create_session",
            {
                "prompt": "Analyze the repository and propose improvements",
                "source": "sources/abc123",
                "require_plan_approval": True,
            },
        )

        # Optionally approve plan
        await client.call_tool("approve_session_plan", {"session_id": session["name"]})

        # Wait for completion
        final = await client.call_tool(
            "wait_for_session_completion",
            {"session_id": session["name"], "poll_interval": 5, "timeout": 600}
        )
        print(final)

asyncio.run(run_session())
  • Inspecting activities
import asyncio
from fastmcp import Client
from jules_mcp import mcp

async def list_acts(session_id: str):
    async with Client(mcp) as client:
        acts = await client.call_tool("list_all_activities", {"session_id": session_id})
        for a in acts:
            print(a)

asyncio.run(list_acts("sessions/abc123"))

Development

  • Create a virtual environment and install dev dependencies

    uv sync
    # or: pip install -e .[dev]
    
  • Run tests (note: some tools may reach the Jules API and require JULES_API_KEY)

    uv run pytest -q
    
  • Linting/formatting: follow your preferred tools; this repo does not include linters by default.

Project metadata

  • Package name: jules-mcp
  • Version: 0.1.0
  • Entry points:
    • Python module: python -m jules_mcp
    • FastMCP source: jules_mcp/jules_mcp.py:mcp

License

Apache License 2.0. See the LICENSE file for details.

Acknowledgements

README fetched from the repository 5 days ago. The original is authoritative.

Questions

About Jules MCP Server

How do I install Jules MCP Server?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Jules MCP Server safe to use with an AI agent?

Its trust score is 56 out of 100 (fair). It passes 5 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Jules MCP Server still maintained?

The last commit was a year ago and 1 open issues. That's long enough that you should check whether the maintainer is responding to issues before depending on it.