Connect a client
Every client needs the same endpoint, https://api.milgram.dev/v1/mcp, and signs you in through the
browser the first time it connects.
Make Milgram available across your projects:
claude mcp add --transport http --scope user milgram https://api.milgram.dev/v1/mcpStart Claude Code, run /mcp, select milgram, choose Authenticate and complete the browser
sign-in. /mcp then shows the connection, and the server’s menu offers to reconnect.
Add the server and sign in:
codex mcp add milgram --url https://api.milgram.dev/v1/mcpcodex mcp login milgramCodex saves the server in ~/.codex/config.toml, shared by the CLI and the IDE extension. Start a new
session and run /mcp to see the tools.
Merge this into ~/.cursor/mcp.json for all projects, or .cursor/mcp.json in one project, keeping
your other servers:
{ "mcpServers": { "milgram": { "url": "https://api.milgram.dev/v1/mcp" } }}Restart Cursor, enable milgram in its MCP settings and complete the browser sign-in when Cursor asks. Its tools are then available to Agent.
Merge this into your project’s opencode.json, or ~/.config/opencode/opencode.json for all projects:
{ "$schema": "https://opencode.ai/config.json", "mcp": { "milgram": { "type": "remote", "url": "https://api.milgram.dev/v1/mcp" } }}Then sign in from the same project directory, and check the connection:
opencode mcp auth milgramopencode mcp listMerge this into ~/.gemini/settings.json for all projects, or .gemini/settings.json in one project.
The httpUrl field selects Streamable HTTP.
{ "mcpServers": { "milgram": { "httpUrl": "https://api.milgram.dev/v1/mcp" } }}Start Gemini CLI, run /mcp auth milgram and complete the browser sign-in. /mcp list shows the
connection.
Merge this into ~/.kimi-code/mcp.json for all projects, or .kimi-code/mcp.json in one project:
{ "mcpServers": { "milgram": { "url": "https://api.milgram.dev/v1/mcp" } }}Start a new session, run /mcp-config login milgram to sign in, and /mcp to check the connection.
Using OpenRouter models
Section titled “Using OpenRouter models”OpenRouter supplies the models; the MCP server is configured in the client that runs them. If you use opencode with OpenRouter, for example, add the server from the opencode tab: the Milgram sign-in is separate from your OpenRouter key.
Check the endpoint
Section titled “Check the endpoint”To check that the endpoint is reachable and advertises OAuth:
curl --include https://api.milgram.dev/v1/mcpAn unauthenticated request answers 401 Unauthorized with a WWW-Authenticate header that points to the
OAuth metadata. A custom client must complete OAuth with PKCE, then speak MCP over Streamable HTTP: an API
key does not replace the sign-in.