canvas_session and _csrf_token — directly from your Chrome browser. You sign into Canvas in Chrome as you normally would, and Canvas MCP uses that session. No API token, no separate credential setup.
How cookies are read
Canvas MCP uses thebrowser_cookie3 library to access Chrome’s local cookie store. Cookies are read fresh on every request, so if Canvas rotates your session or CSRF token, Canvas MCP picks up the new values automatically without any action on your part.
Only Chrome is supported. Firefox, Safari, and other browsers are not read.
macOS Keychain prompt
Chrome on macOS encrypts its cookie database using a key stored in your system Keychain. When Canvas MCP reads cookies for the first time, macOS displays a prompt:“python” wants to use your confidential information stored in “Chrome Safe Storage” in your keychain.This is expected. Your options:
- Allow — grants access for this invocation only. You will see the prompt again on future runs.
- Always Allow — grants persistent access. Recommended if you use Canvas MCP regularly.
What happens when cookies are missing
If Chrome does not have a valid Canvas session for the resolved domain, Canvas MCP raises an error like one of these:CANVAS_BASE_URL to match the domain Chrome already has a session for.
Diagnosing auth issues
Runcanvas auth-status to get a full picture of what Canvas MCP can see:
detected_canvas_domains— Canvas domains Chrome currently has complete sessions for.resolved_canvas_base_url— the domain Canvas MCP is targeting.auth_status— one ofverified,no_cookies,not_logged_in,probe_failed, orunexpected_response.error— a plain-English description of the problem, if any.
Check detected_canvas_domains
If the list is empty, open your Canvas site in Chrome and sign in, then run
auth-status again.Check resolved_canvas_base_url
If this does not match the Canvas site you want, set
CANVAS_BASE_URL to the correct domain.