Skip to content

Set up your MCP client

This is the detailed client setup guide. Choose one transport, keep credentials out of source control, and then follow the complete section for the client you already use.

Choose When it fits Where SL_API_KEY lives Client configuration
Local stdio The client and a built simplelogin-mcp checkout are on the same machine. In the environment or private client file A command, arguments, and environment variables
Streamable HTTP The server already runs continuously in Node.js, Docker, behind a proxy, or on another host. On the server only An /mcp URL and, when configured, a bearer token

Use Local stdio for the shortest local path. Use Streamable HTTP when you already operate the server as a service. A cloud client cannot reach 127.0.0.1 on your laptop; give it a deliberately reachable HTTPS endpoint instead.

  1. Create a dedicated SimpleLogin API key. Treat it as full account access. Keep the real value out of source control, screenshots, prompts, and support requests.

  2. For local stdio, get and build the server. If you do not already have a checkout, clone it first:

    Build simplelogin-mcp
    git clone https://github.com/enthouan/simplelogin-mcp.git
    cd simplelogin-mcp
    corepack enable
    pnpm install --filter simplelogin-mcp --frozen-lockfile
    pnpm build

    Copy the absolute path to dist/index.js. If a desktop client cannot find node, use the absolute executable path reported by which node.

  3. For Streamable HTTP, start the service first. Follow the Direct Node.js — Streamable HTTP guide or Docker Compose — Streamable HTTP guide. The default local endpoint is http://127.0.0.1:3000/mcp.

  4. Prepare the appropriate private credential source. For stdio, follow the client section’s API-key instructions. For authenticated HTTP, enter a client-side alias with the same value as the server’s MCP_AUTH_TOKEN without echoing it or putting its value in shell history:

    Client-side HTTP bearer token
    printf "simplelogin-mcp bearer token: " >&2
    IFS= read -rs SIMPLELOGIN_MCP_BEARER_TOKEN
    printf "\n" >&2
    export SIMPLELOGIN_MCP_BEARER_TOKEN

Codex reads MCP servers from its TOML configuration and can forward an already exported API key without storing its value in that shared file.

Where to configure it: Export SL_API_KEY, then add this table to ~/.codex/config.toml.

~/.codex/config.toml
[mcp_servers.simplelogin]
command = "node"
args = ["/absolute/path/to/simplelogin-mcp/dist/index.js"]
default_tools_approval_mode = "writes"
env_vars = ["SL_API_KEY"]
[mcp_servers.simplelogin.env]
TRANSPORT = "stdio"

Reload the client: Restart the Codex client, then open the MCP server list or use /mcp to confirm that simplelogin is connected.

Reference: Codex MCP documentation.

Claude Code expands environment variables in project-scoped .mcp.json files, so the shared file can reference a machine-specific checkout and secret without containing either value.

Where to configure it: Set SIMPLELOGIN_MCP_ROOT and SL_API_KEY in the environment that starts Claude Code, then create .mcp.json at the project root.

.mcp.json
{
"mcpServers": {
"simplelogin": {
"type": "stdio",
"command": "node",
"args": ["${SIMPLELOGIN_MCP_ROOT}/dist/index.js"],
"env": {
"TRANSPORT": "stdio",
"SL_API_KEY": "${SL_API_KEY}"
}
}
}
}

Reload the client: Start a new Claude Code session, run /mcp, and confirm that simplelogin is connected. claude mcp list also reports missing environment variables.

Reference: Claude Code MCP documentation.

Until simplelogin-mcp is distributed as a desktop extension package, Claude Desktop can launch the locally built server as a developer-defined stdio process.

Where to configure it: Open Settings → Developer → Edit Config and add this entry to claude_desktop_config.json.

claude_desktop_config.json
{
"mcpServers": {
"simplelogin": {
"command": "node",
"args": ["/absolute/path/to/simplelogin-mcp/dist/index.js"],
"env": {
"TRANSPORT": "stdio",
"SL_API_KEY": "sl-your-key-here"
}
}
}
}

Claude Desktop’s manual local-server configuration does not expose a documented custom bearer-header field, so this guide does not claim a protected Streamable HTTP setup for it.

Reload the client: Quit and reopen Claude Desktop. Open Connectors from the chat composer or Developer settings to check the server status and tools.

Reference: MCP local server guide.

VS Code input variables can request the API key when the server first starts and store it without placing the value directly in mcp.json.

Where to configure it: Run MCP: Open User Configuration from the Command Palette and replace its contents or merge these inputs and server entries.

User profile mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "simplelogin-api-key",
"description": "SimpleLogin API key",
"password": true
}
],
"servers": {
"simplelogin": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/simplelogin-mcp/dist/index.js"],
"env": {
"TRANSPORT": "stdio",
"SL_API_KEY": "${input:simplelogin-api-key}"
}
}
}
}

Reload the client: Run MCP: List Servers, select simplelogin, and start or restart it. Review the server configuration before accepting VS Code’s trust prompt.

Reference: VS Code MCP configuration reference.

OpenCode defines local servers under mcp.servers and can read the SimpleLogin API key from the environment instead of a tracked project file.

Where to configure it: Save this as opencode.json in the project or ~/.config/opencode/opencode.json for global use.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"simplelogin": {
"type": "local",
"command": [
"node",
"/absolute/path/to/simplelogin-mcp/dist/index.js"
],
"environment": {
"TRANSPORT": "stdio",
"SL_API_KEY": "{env:SL_API_KEY}"
}
}
}
}
}

Reload the client: Relaunch OpenCode and run opencode2 mcp list. OpenCode does not currently promise hot reload after direct configuration edits.

Reference: OpenCode MCP documentation.

After the selected client reports that simplelogin is connected and has discovered its tools, use the same low-data, read-only check for either transport.

After the client discovers the server, use this low-data, read-only check:

Read-only verification prompt
Can you show me my SimpleLogin account usage?
  • Use Troubleshooting for startup, configuration, authentication, and upstream API failures.
  • Use Client compatibility to review current evidence, unavailable routes, and transport requirements.
  • Review Security & Data before widening the HTTP network boundary.