Skip to content

Install and run

Start with the MCP client you already use. For a client and server on the same machine, local stdio is the smallest trust boundary and does not open a network listener. Direct Node.js — Streamable HTTP and Docker Compose — Streamable HTTP remain available when you need a persistent service.

  • A SimpleLogin account with a dedicated API key.
  • Git, which the installation commands use to clone the repository.
  • Docker with Docker Compose, or Node.js 24.x with Corepack and pnpm 11.5.1.
  • An MCP client that supports local stdio or Streamable HTTP.

Follow these steps in order. The detailed installation and client recipes appear below.

  1. Create the API key. Create a dedicated SimpleLogin API key for this server. Keep it private and separate from prompts or source control.

  2. Build or start the server. For Local stdio, clone the repository, install dependencies, and run pnpm build before writing the client configuration. For Direct Node.js — Streamable HTTP or Docker Compose — Streamable HTTP, follow the matching installation below and start the service first.

  3. Configure the client. Choose its recipe below. Point Local stdio clients at the absolute path to the built dist/index.js; point Streamable HTTP clients at the running /mcp endpoint.

  4. Restart and verify. Reload the MCP client, confirm that simplelogin-mcp connects and its tools are discovered, then use the supplied read-only account-usage prompt to verify the complete path.

All three shapes expose the same catalog. Choose based on where the client and server should live, not on which tools you need.

Docker Compose — Streamable HTTP quick start
git clone https://github.com/enthouan/simplelogin-mcp.git
cd simplelogin-mcp
cp .env.example .env
# Set SL_API_KEY and MCP_AUTH_TOKEN in .env
${EDITOR:-vi} .env
grep -Eq '^SL_API_KEY=.+$' .env || { echo 'Set SL_API_KEY in .env before starting.' >&2; exit 1; }
grep -Eq '^MCP_AUTH_TOKEN=.+$' .env || { echo 'Set MCP_AUTH_TOKEN in .env before starting.' >&2; exit 1; }
docker compose up -d
docker compose ps
curl http://localhost:3000/health

Compose listens on 0.0.0.0:3000 inside the container, publishes only to 127.0.0.1 by default, and the normal startup guard requires MCP_AUTH_TOKEN. Only the explicit unsafe override bypasses that guard.

Read the complete Docker Compose — Streamable HTTP guide →

These recipes configure Codex, Claude Code, Claude Desktop, VS Code, or OpenCode. Each includes the same low-data, read-only verification prompt.

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.

Configuration syntax: Codex MCP documentation.

Verify it works

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?

The local stdio and Streamable HTTP recipes are configuration guidance. See the compatibility matrix for current retained client evidence and unavailable routes.