Skip to content

MCP Server Setup ​

Most MCP clients can be connected in about a minute. Use Cloud for the fastest path, or point a self-hosted client at your own MANAGANI instance.

Prerequisites ​

  • A running MANAGANI instance
  • For stdio only: a personal access token (generate in Settings > Access Tokens)

Claude Desktop ​

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

json
{
    "mcpServers": {
        "managani": {
            "command": "npx",
            "args": ["-y", "mcp-remote", "https://mcp.managani.com/mcp"],
            "env": {
                "ACCESS-TOKEN": "your-access-token"
            }
        }
    }
}

HTTP Transport ​

For remote MCP access via Streamable HTTP, MANAGANI now supports standard OAuth 2.1 discovery for MCP clients. OAuth-capable clients should connect to the MCP endpoint directly and follow the WWW-Authenticate challenge + Protected Resource Metadata flow automatically.

When a client needs approval, MANAGANI shows a simple OAuth consent screen in the same MANAGANI theme as the rest of authentication. The screen shows the requesting app, the active MANAGANI account, the exact requested access, and a collapsed technical details section with the client ID, redirect URI, and MCP resource.

The Cloud MCP endpoint is available at:

https://mcp.managani.com/mcp

The authorization server issuer is:

https://app.managani.com/oauth

No manual token setup is required for OAuth-capable HTTP clients.

ChatGPT / OpenAI connector setup ​

If ChatGPT or another OpenAI connector discovers OAuth automatically, you usually only need to enter the MCP server URL:

https://mcp.managani.com/mcp

The extra OAuth values are only needed when the client asks for them explicitly.

What the registration methods mean ​

  • Pre-registration — create the OAuth client in MANAGANI first, then paste its client ID and optional secret into the external tool
  • Dynamic Client Registration — the client registers itself against MANAGANI using the registration endpoint
  • Client ID Metadata Documents — only for clients that identify themselves with a client metadata document URL as the client_id; MANAGANI accepts public PKCE clients and private_key_jwt clients that publish jwks or jwks_uri

Dynamic registration accepts HTTPS redirect URIs, localhost HTTP redirect URIs, and reverse-domain private-use schemes for native clients, such as com.example.app:/oauth/callback.

These are capabilities, not clickable actions in MANAGANI.

For manual ChatGPT setup, start with User-Defined OAuth Client:

  1. Copy the Callback URL shown by ChatGPT
  2. In MANAGANI, open Settings → Access Tokens → OAuth
  3. Create a Pre-Registered OAuth Client
  4. Paste ChatGPT's callback URL into Redirect URIs
  5. Choose:
    • none for a public PKCE client
    • client_secret_post only if you want ChatGPT to use a client secret
  6. Copy the created Client ID back into ChatGPT
  7. Copy the Client Secret too only if you created a confidential client

When ChatGPT redirects you to MANAGANI, review the consent screen and click Allow access only if the app name, account, and requested access look correct.

ChatGPT field mapping ​

Use these values if ChatGPT asks for manual OAuth fields:

ChatGPT fieldValue
MCP Server URLhttps://mcp.managani.com/mcp
Auth URLhttps://app.managani.com/oauth/authorize
Token URLhttps://app.managani.com/oauth/token
Registration URLhttps://app.managani.com/oauth/register
Authorization server basehttps://app.managani.com/oauth
Resourcehttps://mcp.managani.com/mcp or https://app.managani.com
OIDCLeave disabled unless the client explicitly requires it

Notes for ChatGPT specifically ​

  • The Callback URL comes from ChatGPT, not from MANAGANI
  • The OAuth Client ID comes from the MANAGANI client you created
  • The OAuth Client Secret is only used when you create a confidential client
  • If ChatGPT offers Dynamic Client Registration and asks for a Registration URL, use the MANAGANI /oauth/register endpoint above

Chat product updates ​

The managani-changelog team plugin provides the roadmap and unpublished changelog workflows. The chat asks once after a completed customer-visible product change and writes only after the user chooses. Each developer installs the plugin in their own Codex account and provides a dedicated MANAGANI_ACCESS_TOKEN; never commit the token.

fish
codex plugin marketplace add /path/to/managani
codex plugin add managani-changelog@managani-team

Restart Codex or start a new task after installation. Use /mcp to confirm that site lookup, feedback/roadmap, and changelog draft tools are enabled. The token must be exported in the environment that launches Codex.

For Claude Code, register a public OAuth client with http://localhost:3118/callback as its redirect URI. Use the returned client_id for the user-scoped connection; pin the callback port so the registered URI stays exact:

fish
curl -X POST https://app.managani.com/oauth/register -H 'Content-Type: application/json' -d '{"client_name":"Claude Code local","redirect_uris":["http://localhost:3118/callback"],"grant_types":["authorization_code","refresh_token"],"response_types":["code"],"token_endpoint_auth_method":"none"}'
claude mcp add --transport http --scope user --client-id YOUR_CLIENT_ID --callback-port 3118 managani https://mcp.managani.com/mcp
claude mcp login managani

Single-product repositories use the site in .codex/managani-changelog.json. Shared repositories require an explicit product choice from the user's intent; never infer it from file paths.

Environment Variables ​

VariableDescriptionDefault
ACCESS-TOKENPersonal access token for stdio transport—
API_BASE_URLBase URL of the MANAGANI instancehttp://localhost:3000
MCP_BASE_URLPublic base URL of the MCP serverhttp://localhost:3002
SITE-IDOverride default site for stdioAuto-detected
PORTHTTP transport port3002

Shell syntax note

ACCESS-TOKEN and SITE-ID contain hyphens because they are read directly by the MCP server. In shell commands, pass them with env, for example:

bash
env 'ACCESS-TOKEN'=your-access-token 'SITE-ID'=your-site-id API_BASE_URL=https://your-instance.com node apps/mcp/server.js

HTTP Transport Headers

When using the HTTP or SSE transport, pass your credentials as headers instead of environment variables:

  • Authorization: Bearer <oauth-access-token> — recommended for MCP OAuth
  • Authorization: Bearer <access-token> — personal access token compatibility mode
  • Authorization: Token <access-token> — personal access token compatibility mode
  • access-token: <access-token> — alternative (mirrors Razuna MCP)
  • X-Site-Id: <site-id> — optional, overrides the default site

Default Site ​

On startup, the MCP server calls GET /sites and picks the site with is_default: true. Site-scoped tools such as save_url, create_feedback, and list_changelog fall back to this site when site_id is omitted.

Set SITE-ID (passed via env for stdio) or the X-Site-Id header (HTTP/SSE) to override this behavior.

Cursor (IDE) ​

After the MCP server appears under Cursor Settings → MCP, configure global User Rules and optional site rules so Agent chats search and store site context consistently. See Cursor (IDE).