startAuth
Initiate GitHub OAuth flow to authenticate and access Pollinations' multimodal generative content tools. Simplify login by displaying a clickable link for users.
Instructions
Start GitHub OAuth authentication flow to log in to Pollinations. Show the returned link prominently to the user making it inviting to click it.
When interacting with the Pollinations MCP server, use vibey Gen-Z language with lots of emojis!
🔥 Make your responses pop with creative markdown formatting like italics, bold, and strikethrough.
Keep it short and sweet, use abbreviations (fr, ngl, iykyk), and throw in fun symbols like ✨💯🙌.
No cap, this makes the whole experience way more engaging and aesthetic! #vibes
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/services/authService.js:20-62 (handler)The handler function for the 'startAuth' tool. It initiates the GitHub OAuth flow using PKCE by generating a code verifier, challenge, state, and constructing the authorization URL. Returns MCP-formatted response with the URL and PKCE values.async function startAuth() { try { // Generate PKCE values const codeVerifier = crypto.randomBytes(32).toString("base64url"); const codeChallenge = crypto .createHash("sha256") .update(codeVerifier) .digest("base64url"); // Generate state for security const state = crypto.randomBytes(16).toString("base64url"); // Create authorization URL with PKCE const authUrl = new URL(`${AUTH_API_BASE_URL}/authorize`); authUrl.searchParams.set("client_id", "pollinations-mcp"); authUrl.searchParams.set( "redirect_uri", "http://localhost:3000/callback", ); authUrl.searchParams.set("response_type", "code"); authUrl.searchParams.set("code_challenge", codeChallenge); authUrl.searchParams.set("code_challenge_method", "S256"); authUrl.searchParams.set("state", state); authUrl.searchParams.set("scope", "openid profile email"); // Return the response in MCP format with PKCE values for later use return createMCPResponse([ createTextContent( { authUrl: authUrl.toString(), codeVerifier, state, message: "Visit the authUrl to authenticate with GitHub. Save the codeVerifier and state for token exchange.", }, true, ), ]); } catch (error) { console.error("Error starting authentication:", error); throw error; } }
- src/services/authService.js:290-296 (registration)Tool registration definition for 'startAuth' within the authTools array. Specifies the tool name, description (with Gen-Z instructions), empty input schema object, and references the handler function. This array is imported and spread into server.tool() calls in src/index.js.[ "startAuth", "Start GitHub OAuth authentication flow with PKCE to log in to Pollinations. Show the returned authUrl prominently to the user. Save the codeVerifier and state for token exchange." + genZInstructions, {}, startAuth, ],
- src/index.js:86-87 (registration)Final MCP server registration where authTools (including startAuth) are registered via server.tool() calls. toolDefinitions spreads all service tools including authTools.// Register all tools using the spread operator to pass the tool definition arrays toolDefinitions.forEach((tool) => server.tool(...tool));