Jules MCP服务器

一个通过FastMCP暴露Google Jules Agent操作的MCP服务器,支持列出Jules源、创建和管理会话以及检查活动。

  • by CodeAgentBridge
  • Python
  • 本地部署
  • 41 星标
  • 更新于
在 GitHub 查看 CodeAgentBridge/jules-mcp-server

使用说明

Jules MCP 服务器(jules-mcp)

一个通过FastMCP暴露Google Jules Agent操作的MCP(模型上下文协议)服务器。

这台服务器允许MCP兼容的客户端(以及Python代码)列出Jules源、创建和管理 会话,并使用官方的jules-agent-sdk检查活动。

  • 服务器框架:FastMCP
  • SDK:jules-agent-sdk(中文可译为“朱尔斯代理软件开发工具包”)
  • Python:3.13+
  • 许可证:Apache-2.0

特点/特性

通过MCP服务器暴露的工具(按区域分组):

  • 来源
    • 获取源(source_id)
    • 列出数据源(list_sources)方法,参数说明:filter_str(过滤字符串,可选)、page_size(每页大小,可选)、page_token(分页令牌,可选)
    • 获取所有源(过滤字符串为可选参数)
  • 会议/会话
    • 创建会话(prompt, source, starting_branch=None, title=None, require_plan_approval=False)
    • 获取会话(根据会话ID)
    • 列出会话(list_sessions),参数包括:每页大小(page_size,默认为None),页码标记(page_token,默认为None)
    • 批准会话计划(会话ID)
    • 发送会话消息(会话ID,提示)
    • 等待会话完成(session_id, 查询间隔=5, 超时时间=600)
  • 活动
    • 获取活动(session_id,activity_id)
    • 列出活动(session_id, 每页大小=None, 页码标记=None)
    • 列出所有活动(会话ID)

查看 jules_mcp/jules_mcp.py 文件以了解函数签名和内联文档字符串。

安装

选项A — 从本地检出:

# from the repository root
pip install -e .

选项B — 使用紫外线(开发阶段推荐):

# from the repository root
uv sync

该项目的目标是支持 Python 3.13 及更高版本。

配置

通过环境变量设置您的Jules API密钥:

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

如果你没有向jules()提供参数,SDK将自动读取JULES_API_KEY。

运行MCP服务器

运行服务器有两种常见方法。

  1. 使用FastMCP客户端进行程序化运行(进程内)——适用于测试或嵌入:
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. 作为独立的MCP服务器可执行文件,供外部MCP客户端使用:
  • 直接使用UV和FastMCP

    uv run fastmcp run jules_mcp/jules_mcp.py:mcp
    

    这通过标准输入输出启动MCP服务器。

  • 使用提供的配置文件

    • MCP.json:针对MCP感知主机的示例命令配置。
    • fastmcp.json:FastMCP 运行时/环境配置文件。

如果您使用了不同的检出位置,请在 MCP.json 中调整路径。

你也可以通过模块入口点来运行:

python -m jules_mcp

这会调用start_mcp()函数,该函数使用包中定义的“mcp”实例来调用FastMCP.run()。

使用说明和示例

  • 列出并筛选来源
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())
  • 创建会话并等待其完成
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())
  • 检查活动
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"))

发展

  • 创建一个虚拟环境并安装开发依赖项

    uv sync
    # or: pip install -e .[dev]
    
  • 运行测试(注:某些工具可能会访问Jules API,并需要JULES_API_KEY)

    uv run pytest -q
    
  • 代码检查/格式化:使用您偏好的工具;此仓库默认不包含代码检查工具。

项目元数据

  • 包名:jules-mcp
  • 版本:0.1.0
  • 入口点:
    • Python 模块:python -m jules_mcp
    • FastMCP 源码:jules_mcp/jules_mcp.py 中的 mcp

许可证

Apache 许可证 2.0。详见 LICENSE 文件。

致谢

  • FastMCP — https://gofastmcp.com/(可译为:“FastMCP — https://gofastmcp.com/(官方网站)”)
  • 模型上下文协议 — https://modelcontextprotocol.io/
  • jules-agent-sdk — 本服务器使用的非官方/官方SDK