Skip to main content
Glama

jules_set_cookies

Configure browser authentication by setting cookies from JSON or string format to maintain session persistence in Google Jules AI coding workflows.

Instructions

Set browser cookies from string or JSON for authentication

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cookiesYesCookies as JSON string or cookie string format
formatNoFormat of input cookies (default: json)

Implementation Reference

  • The handler function that implements the jules_set_cookies tool. Parses cookies from JSON or string input, adds them to the browser page context using Playwright's addCookies, and saves to file if configured.
    private async setCookies(args: any) { const { cookies, format = 'json' } = args; const page = await this.getPage(); try { let cookiesToSet: Array<{name: string, value: string, domain: string}> = []; if (format === 'string') { cookiesToSet = this.parseCookiesFromString(cookies); } else { const parsed = JSON.parse(cookies); cookiesToSet = Array.isArray(parsed) ? parsed : [parsed]; } await page.context().addCookies(cookiesToSet.map(cookie => ({ name: cookie.name, value: cookie.value, domain: cookie.domain, path: '/', }))); // Save cookies if in cookies mode if (this.config.sessionMode === 'cookies' && this.config.cookiePath) { await this.saveCookiesToFile(cookiesToSet, this.config.cookiePath); } return { content: [ { type: 'text', text: `Successfully set ${cookiesToSet.length} cookies. Session authentication should now work for Google Jules.` } ] }; } catch (error) { throw new Error(`Failed to set cookies: ${error}`); } }
  • The input schema definition for the jules_set_cookies tool, registered in the ListTools response.
    name: 'jules_set_cookies', description: 'Set browser cookies from string or JSON for authentication', inputSchema: { type: 'object', properties: { cookies: { type: 'string', description: 'Cookies as JSON string or cookie string format', }, format: { type: 'string', enum: ['json', 'string'], description: 'Format of input cookies (default: json)', }, }, required: ['cookies'], }, },
  • src/index.ts:384-387 (registration)
    Registration of the jules_set_cookies handler in the CallToolRequestSchema switch statement.
    return await this.getCookies(args); case 'jules_set_cookies': return await this.setCookies(args); case 'jules_session_info':
  • Helper function to parse cookie strings in 'name=value; name2=value2' format into Playwright cookie objects, used by the setCookies handler.
    private parseCookiesFromString(cookieString: string): Array<{name: string, value: string, domain: string}> { const cookies: Array<{name: string, value: string, domain: string}> = []; // Split by semicolon and process each cookie const parts = cookieString.split(';'); for (let i = 0; i < parts.length; i++) { const part = parts[i].trim(); // Skip domain specifications if (part.startsWith('domain=')) { continue; } // Parse name=value pairs const equalIndex = part.indexOf('='); if (equalIndex > 0) { const name = part.substring(0, equalIndex).trim(); const value = part.substring(equalIndex + 1).trim(); if (name && value) { cookies.push({ name, value, domain: '.google.com' }); } } } console.error(`Parsed ${cookies.length} cookies from string`); return cookies; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mberjans/google-jules-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server