这是一个通过FastMCP暴露Google Jules Agent操作的MCP(模型上下文协议)服务器。
此服务器允许MCP兼容客户端(以及Python代码)列出Jules源,创建和管理会话,并使用官方jules-agent-sdk检查活动。
通过MCP服务器暴露的工具(按区域分组):
请参阅jules_mcp/jules_mcp.py中的签名和内联文档字符串。
选项A — 从本地检出:
# 在仓库根目录下
pip install -e .
选项B — 使用uv(开发期间推荐):
# 在仓库根目录下
uv sync
该项目针对Python 3.13+。
通过环境变量设置您的Jules API密钥:
$Env:JULES_API_KEY = "<your_api_key_here>"
export JULES_API_KEY="<your_api_key_here>"
如果您不向jules()提供参数,SDK会自动读取JULES_API_KEY。
有两种常见的运行服务器的方法。
import asyncio
from fastmcp import Client
from jules_mcp import mcp
async def main():
async with Client(mcp) as client:
# 示例:列出所有源(自动分页)
result = await client.call_tool("get_all_sources")
print(result)
asyncio.run(main())
直接使用uv和FastMCP
uv run fastmcp run jules_mcp/jules_mcp.py:mcp
这将在标准输入输出上启动MCP服务器。
使用提供的配置文件
如果您使用不同的检出位置,请调整MCP.json中的路径。
您也可以通过模块入口点运行:
python -m jules_mcp
这会调用start_mcp(),该函数使用包中定义的“mcp”实例调用FastMMCP.run()。
import asyncio
from fastmcp import Client
from jules_mcp import mcp
async def main():
async with Client(mcp) as client:
# 过滤语法遵循Jules支持的AIP-160过滤规则
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": "分析存储库并提出改进意见",
"source": "sources/abc123",
"require_plan_approval": True,
},
)
# 可选地批准计划
await client.call_tool("approve_session_plan", {"session_id": session["name"]})
# 等待完成
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
# 或:pip install -e .[dev]
运行测试(注意:某些工具可能会访问Jules API并需要JULES_API_KEY)
uv run pytest -q
代码风格检查/格式化:请使用您偏好的工具;此仓库默认不包含代码风格检查器。
Apache许可证2.0。详情请参见LICENSE文件。