Connect an MCP client to Vibe Gallery
Vibe Gallery's MCP server is protected with OAuth 2.1 (PKCE + Dynamic Client Registration). Drop one of the snippets below into your client; the first request opens a browser to sign you in.
Server endpoint
Streamable HTTP transport. Most clients only need this URL.
https://vibe-gallery.space/api/mcpThe server publishes the discovery metadata required by the MCP authorization spec.
https://vibe-gallery.space/.well-known/oauth-protected-resourcePoints the client at Vibe Gallery's authorization server.https://vibe-gallery.space/.well-known/oauth-authorization-serverRFC 8414 metadata for Vibe Gallery.
How OAuth sign-in works
On the first connection the client triggers the OAuth flow; subsequent requests carry the access token.
- The client calls POST /api/mcp without a token. The server replies 401 with WWW-Authenticate: Bearer resource_metadata="…".
- The client fetches the resource-metadata URL and discovers Vibe Gallery as the authorization server.
- The client registers itself via Dynamic Client Registration (DCR), opens a browser, and the user signs in to Vibe Gallery.
- Access + refresh tokens are cached locally; subsequent requests carry Authorization: Bearer <token>.
Per-client setup
Claude Code (CLI) — recommended
Claude Code natively supports remote HTTP MCP servers and OAuth.
claude mcp add --transport http vibe-gallery https://vibe-gallery.space/api/mcpInside Claude Code, run /mcp to authenticate. A browser opens to Vibe Gallery; tokens are stored and refreshed automatically.
Claude Desktop
Claude Desktop does not support remote HTTP servers from claude_desktop_config.json directly. Use one of the options below.
Custom Connectors UI (Pro / Team / Enterprise, recommended)
Settings → Connectors → Add custom connector → paste the endpoint URL and follow the Vibe Gallery sign-in. No file editing required.
https://vibe-gallery.space/api/mcpmcp-remote shim (fallback)
If Custom Connectors is unavailable on your plan, route through mcp-remote which converts stdio to HTTP and handles OAuth on Claude Desktop's behalf.
macOS config file
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows config file
%APPDATA%\Claude\claude_desktop_config.jsonConfig snippet
{
"mcpServers": {
"vibe-gallery": {
"command": "npx",
"args": [
"mcp-remote",
"https://vibe-gallery.space/api/mcp"
]
}
}
}Restart Claude Desktop after saving. mcp-remote opens a browser for Vibe Gallery on the first request.
Cursor
Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project). Cursor uses streamable-http as the transport type and discovers OAuth automatically.
Config file
~/.cursor/mcp.jsonConfig snippet
{
"mcpServers": {
"vibe-gallery": {
"type": "streamable-http",
"url": "https://vibe-gallery.space/api/mcp"
}
}
}VS Code (Copilot Chat)
Add to .vscode/mcp.json (workspace) or your user MCP config. VS Code supports OAuth DCR natively; on first use it opens the browser to Vibe Gallery.
Config file
.vscode/mcp.jsonConfig snippet
{
"servers": {
"vibe-gallery": {
"type": "http",
"url": "https://vibe-gallery.space/api/mcp"
}
}
}Try it with MCP Inspector
A handy local UI to inspect tools and step through the OAuth flow.
npx @modelcontextprotocol/inspectorSet Transport Type to Streamable HTTP, paste the endpoint URL into Server URL, click Connect.
Troubleshooting
- Stale token
- Claude Code: claude mcp remove vibe-gallery then re-add, or /mcp → Clear authentication.
- mcp-remote (Claude Desktop fallback): delete ~/.mcp-auth.
- If DCR is rejected, confirm the Vibe Gallery OAuth Application has Dynamic client registration enabled.
- Inspect discovery: curl /.well-known/oauth-protected-resource should return resource metadata pointing at Vibe Gallery.
- Full protocol details: modelcontextprotocol.io