Open source and independently maintained
Browse the source, report an issue, or follow the project on GitHub.
Thanks for helping improve simplelogin-mcp. This project is pre-1.0, but the public MCP tool
surface is treated carefully: tool names, bounds, annotations, and safety behavior should not drift
without explicit documentation and tests.
corepack enable).Do not use live SimpleLogin credentials in unit tests, fixtures, logs, screenshots, or pull request
text. .env is for local Compose use and must stay untracked.
git clone https://github.com/enthouan/simplelogin-mcp.gitcd simplelogin-mcpcorepack enablepnpm install --frozen-lockfilepnpm exec playwright install chromium webkitLocal pnpm commands do not automatically load .env. Export environment variables in your shell
or source .env before running the server locally.
pnpm typecheck # TypeScript without emitpnpm lint # ESLintpnpm build # compile TypeScript to dist/pnpm test # Vitest unit tests, no live network requiredpnpm website:check # Astro diagnostics, one build, then static and browser checkspnpm format # Prettier writepnpm format:check # Prettier checkpnpm smoke:live # manual live SimpleLogin smoke test; opt-in onlyRun the full validation set before opening a pull request:
pnpm typecheckpnpm lintpnpm buildpnpm testpnpm website:checkpnpm format:checkWhen changing Docker behavior, validate both Compose paths. The default docker-compose.yml is the
published-image operator path; use docker-compose.local.yml for source changes and image
validation:
SL_API_KEY=compose-validation docker compose --env-file .env.example config --no-env-resolution --quietSL_API_KEY=compose-validation docker compose --env-file .env.example -f docker-compose.local.yml config --no-env-resolution --quietSL_API_KEY=compose-validation docker compose --env-file .env.example -f docker-compose.local.yml buildLive smoke tests are not part of normal CI. Use them only when a change needs live SimpleLogin verification, and follow docs/live-smoke-test.md.
Dependabot checks npm/pnpm dependencies, GitHub Actions, and Docker image references weekly. CI remains the gate for every generated dependency pull request, including a non-publishing Docker/release dry run for PRs.
Repository auto-merge must be enabled for low-risk Dependabot updates, but only the
Dependabot Auto-Merge workflow can opt a pull request into it. The workflow is limited to
same-repository, non-draft pull requests authored and triggered by dependabot[bot] and targeting
main; it does not check out or execute pull request code.
Auto-merge is allowed only for Dependabot metadata classified as version-update:semver-patch or
version-update:semver-minor in these ecosystems:
github-actionsdockernpmBranch protection remains the final merge gate. main requires strict required checks and
conversation resolution, and Docker Dependabot updates rely on the required docker CI dry-run
before they can land automatically.
Keep these dependency updates manual:
node:24-bookworm-slim to node:26-bookworm-slim;Keep endpoint changes small and traceable:
request() helper owns authentication, timeouts, error parsing, redaction, and response
validation.Prefer read-only or locally guarded behavior first. Permanent deletes require explicit confirmation inputs, and mail-routing changes that can stop future delivery must be documented as destructive.
src/tools/catalog.ts is the source for registered tool order, annotation expectations, bounds, and generated catalog text. TOOL_CATALOG.md is the public rendering of that source, and test/tools.test.ts checks that:
confirm: true over MCP;page_id, limits, and defaults;TOOL_CATALOG.md matches the formatted output of renderToolCatalogMarkdown().When a tool changes, update the catalog source and the public docs together, regenerate
TOOL_CATALOG.md, and confirm pnpm test still passes.
origin/main.main branch is protected; release and feature work should go through pull requests.Security issues should not be filed publicly. Follow SECURITY.md.
Open source and independently maintained
Browse the source, report an issue, or follow the project on GitHub.