Growhouse

Authentication

How to authenticate with Growhouse MCP

Authentication

Growhouse MCP supports two authentication methods:

MethodHow it works
OAuth 2.1Browser-based sign-in. Used by Claude and other MCP clients automatically.
API KeyBearer token in the Authorization header. Create in Settings.

API Keys

Create a key

  1. Go to app.growhouse.co > Settings
  2. Account > MCP Keys for user-scoped keys (access all your workspaces)
  3. Workspace > MCP for workspace-scoped keys (access one workspace)
  4. Click Create Key, copy it immediately

Use the key

Include it as a Bearer token:

curl -X POST https://mcp.growhouse.co \
  -H "Authorization: Bearer mcp_sk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

All API keys start with mcp_sk_.

Manage keys

  • Revoke: Settings > find the key > delete
  • Rotate: Create a new key, update your client, delete the old one
  • Last used: Visible in Settings so you can find stale keys

OAuth 2.1

OAuth is handled automatically by MCP clients like Claude. You don't need to configure anything — just connect via https://mcp.growhouse.co and approve access in your browser.

How it works

  1. Your AI client redirects you to Growhouse to sign in
  2. You approve the requested permissions
  3. Growhouse issues a token pair (access + refresh)
  4. Tokens refresh automatically — no manual intervention

Scopes

ScopeGrants
canvas:readView canvases and elements
canvas:writeCreate, update, and delete elements
workspace:readView workspace info

Technical details

  • PKCE: Required (S256 only)
  • Token lifetime: ~1 hour, auto-refreshed
  • Refresh tokens: Single-use with rotation
  • Server metadata: https://mcp.growhouse.co/.well-known/oauth-authorization-server
  • Dynamic client registration: Supported (RFC 7591)

Security

  • Keys are SHA-256 hashed at rest — Growhouse never stores raw keys
  • OAuth tokens are short-lived with automatic rotation
  • All connections require HTTPS
  • Rate limiting applies per workspace (100 requests/minute)

On this page