jules-mcp-server 将您的 AI 编码助手(如 Claude、Cursor 或 Copilot)连接到 Jules API,使您能够直接从 IDE 进行自主编码会话。它作为模型上下文协议(MCP)服务器运行,赋予您的 AI 助手创建编码会话、管理任务以及与 Jules 代理进行交互的能力,以实现自动化软件开发。
jules-mcp-server 提供您的 MCP 客户端访问权限,以便在连接的 GitHub 存储库中创建和管理编码会话。请确保在执行之前审查并批准计划,特别是在生产存储库中。该服务器需要一个具有适当权限的有效 Jules API 密钥。
git clone https://github.com/yourusername/jules-mcp-server.git
cd jules-mcp-server
npm install
cp .env.example .env
# 编辑 .env 并添加您的 JULES_API_KEY
您的 .env 文件应包含:
JULES_API_KEY=your_api_key_here
PORT=3323
HOST=127.0.0.1
npm run dev
# 服务器启动于 http://127..0.0.1:3323/mcp
对于生产环境:
npm run build
npm run start:node
向您的 MCP 客户端添加以下配置:
{
"mcpServers": {
"jules": {
"type": "streamable-http",
"url": "http://127.0.0.1:3323/mcp"
}
}
}
[!IMPORTANT] Jules MCP 服务器使用 可流式传输的 HTTP 传输,并且必须在连接您的 MCP 客户端之前运行。与基于 stdio 的服务器不同,此服务器作为一个持久的 HTTP 服务运行。
编辑您的 Claude Desktop 配置文件:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
添加 Jules 服务器配置:
{
"mcpServers": {
"jules": {
"type": "streamable-http",
"url": "http://127.0.0.1:3323/mcp"
}
}
}
保存配置后重启 Claude Desktop。
</details> <details> <summary>Cursor</summary>手动安装:
Cursor 设置 → 功能 → MCP添加新的全局 MCP 服务器{
"mcpServers": {
"jules": {
"type": "streamable-http",
"url": "http://127.0.0.1:3323/mcp"
}
}
}
</details> <details> <summary>VS Code / Copilot</summary>[!NOTE] 确保在启动 Cursor 之前 Jules MCP 服务器正在运行。服务器使用无状态模式以优化与 Cursor 的兼容性。
按照 MCP 安装 指南 并使用上述提供的配置。
</details> <details> <summary>其他 MCP 客户端</summary>[!NOTE] 对于 MCP 客户端版本,可流式传输的 HTTP 支持可能有所不同。确保您使用的是支持
streamable-http传输类型的最新版本。
对于支持可流式传输的 HTTP 传输的其他 MCP 客户端,请使用上述提供的配置。确保客户端支持:
2024-11-05 或更高版本type: "streamable-http")在您的 MCP 客户端中输入以下提示以验证设置:
列出我的 Jules 源
您的 MCP 客户端应调用 jules_list_sources 工具并显示您的连接的 GitHub 存储库。
要创建一个编码会话:
为 sources/github/owner/repo 创建一个 Jules 会话,提示为“添加一个 README 文件”
[!TIP] 在创建会话时使用
requirePlanApproval: true以在 Jules 执行更改之前审查更改。
所有工具均包括使用 Zod 的运行时验证,以确保类型安全并提供清晰的错误消息。
<!-- BEGIN TOOLS LIST -->会话管理 (3 个工具)
jules_create_session - 创建一个新的 Jules 编码会话jules_list_sessions - 列出所有 Jules 会话jules_send_message - 向活跃的 Jules 代理发送消息计划审批 (1 个工具)
jules_approve_plan - 批准会话的执行计划监控 (2 个工具)
jules_list_sources - 列出您的连接的 GitHub 源jules_list_activities - 列出会话的活动jules_list_sources列出您的连接的 GitHub 源。
参数:
pageSize (可选):每页的项目数 (1-100)pageToken (可选):分页标记jules_create_session创建一个新的 Jules 编码会话。
参数:
prompt (必需):Jules 的任务提示 (1-10000 字符)source (必需):源路径,例如 sources/github/owner/repotitle (可选):会话标题 (1-200 字符)startingBranch (可选):开始的 Git 分支 (默认:main)requirePlanApproval (可选):是否在执行前需要计划审批 (默认:false)jules_list_sessions列出所有 Jules 会话。
参数:
pageSize (可选):每页的项目数 (1-100)pageToken (可选):分页标记jules_approve_plan批准会话的执行计划。
参数:
sessionId (必需):要批准的会话 ID,格式:sessions/{id}jules_send_message向活跃的 Jules 代理发送消息。
参数:
sessionId (必需):会话 ID,格式:sessions/{id}prompt (必需):要发送的消息 (1-10000 字符)jules_list_activities列出会话的活动。
参数:
sessionId (必需):会话 ID,格式:sessions/{id}pageSize (可选):每页的项目数 (1-100)pageToken (可选):分页标记服务器提供了两个 MCP 资源以提供更多上下文:
jules://sources - 您连接的 GitHub 源jules://sessions/{id}/activities - 特定会话的最新活动资源可以直接由 MCP 客户端访问以收集上下文信息。
Jules MCP 服务器支持以下环境变量:
<!-- BEGIN CONFIGURATION -->JULES_API_KEY (必需)
您的 Jules API 密钥用于身份验证。
PORT
HTTP 服务器的端口号。
3323HOST
绑定服务器的主机地址。
127.0.0.1ALLOWED_ORIGINS
CORS 允许的来源的逗号分隔列表。
null,http://localhost在您的 .env 文件中配置这些变量:
JULES_API_KEY=your_api_key_here
PORT=3323
HOST=127.0.0.1
ALLOWED_ORIGINS=null,http://localhost
服务器以 无状态模式(不进行会话管理)运行,以优化与 MCP 客户端(如 Cursor)的兼容性。每个请求都是独立的,不需要会话 ID 标头。
使用 MCP 可流式传输的 HTTP 传输规范,包括:
enableJsonResponse: true)sessionIdGenerator: undefined)所有工具输入在进行 API 调用之前都会使用 Zod 模式进行验证:
参见 VALIDATION_EXAMPLES.md 以获取详细的验证规则和示例。
问题:服务器无法启动或立即崩溃。
解决方案:
.env 中已设置 JULES_API_KEYnetstat -ano | findstr :3323 (Windows) 或 lsof -i :3323 (macOS/Linux)node --version问题:MCP 连接似乎正常,但没有列出任何工具。
解决方案:
curl http://127.0.0.1:3323/mcp 应不会返回连接错误http://127.0.0.1:3323/mcpnpm run dev问题:服务器返回 403 禁止来源错误。
解决方案:
.env 中为本地开发添加 null 到 ALLOWED_ORIGINSALLOWED_ORIGINS:ALLOWED_ORIGINS=null,http://localhost,http://127.0.0.1问题:工具调用因验证错误而失败。
解决方案:
sessions/{id}sources/github/owner/repo问题:工具因 401 未授权错误而失败。
解决方案:
JULES_API_KEY 是有效的并且处于激活状态.env 文件位于项目根目录中问题:对 Jules API 的请求超时或挂起。
解决方案:
npm install
npm run build
src/ 目录中的 TypeScript 源代码编译到 dist/ 目录中的 JavaScript。
npm run dev
这使用 tsx 直接运行 TypeScript 并启用热重载。
jules-mcp-server/
├── src/
│ ├── server.ts # 主服务器和 MCP 设置
│ ├── client/
│ │ └── jules-client.ts # Jules API 客户端
│ ├── tools/
│ │ ├── index.ts # 工具注册表
│ │ ├── sources.ts # 源管理工具
│ │ ├── sessions.ts # 会话管理工具
│ │ └── activities.ts # 活动监控工具
│ ├── schemas/
│ │ └── index.ts # Zod 验证模式
│ ├── resources/
│ │ └── index.ts # MCP 资源
│ └── types/
│ └── tool.ts # 类型定义
├── dist/ # 编译后的 JavaScript
├── .env # 环境配置
└── package.json
并非所有 MCP 客户端完全支持可流式传输的 HTTP 传输。此服务器已测试过:
服务器使用无状态模式以优化兼容性。如果您需要有状态的会话管理,可以修改 src/server.ts 以启用 sessionIdGenerator,但这可能会破坏与某些客户端(如 Cursor)的兼容性。
默认情况下,服务器绑定到 127.0.0.1(仅限本地)以保证安全性。要允许远程访问,请更改 HOST 环境变量,但在生产环境中务必实施适当的认证并使用 HTTPS。
欢迎贡献!请:
MIT 许可证 - 详见 LICENSE 文件。