OpenDocs MCP Server
OfficialThis server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
OpenDocs
An AI agent documents every feature of your app, so nothing stays a hidden gem.
OpenDocs turns an agent's browser session into a structured, re-runnable App Flow: screenshots plus steps, compiled into a guide your support team can share.
Status: alpha. Published to npm under the
alphatag.
What's here
This repo is the open-source client (MIT):
Package | What it is |
| One binary per OS: the |
| The public API contract, limits, and redaction patterns shared with the OpenDocs service |
The service (API and web) lives in apps/api and apps/web and can be self-hosted (see below). The client only sends screenshots your
agent picks. Sensitive fields are covered in the page before capture, on by default.
Related MCP server: FlowLens MCP
Install (alpha)
npx -y opendocs-cli@alpha login --key <your-key>Claude Code:
claude mcp add opendocs -- npx -y opendocs-cli@alpha mcpCursor:
{
"mcpServers": {
"opendocs": {
"command": "npx",
"args": ["-y", "opendocs-cli@alpha", "mcp"]
}
}
}The alpha talks to https://opendocs.tunnel.juniyadi.id by default; set OPENDOCS_API_URL to override it.
Recording on staging
If you record on a staging host but the app is public under a different domain, set OPENDOCS_URL_MAP so the
doc shows the public host instead:
OPENDOCS_URL_MAP=pfnapp.my.id=pfnapp.idFormat is comma-separated from=to pairs. Only the host (and port) is swapped; path, query and hash are kept.
Screenshots are not edited, so keep the host out of the captured viewport (e.g. no visible URL bar).
Self-host
One docker compose stack: Postgres, S3 storage (bundled MinIO by default), the api and the web app.
Everything is served from one port (docs at /, dashboard at /admin, api at /api).
Requirements: Docker with Compose v2, and a GitHub account to create an OAuth app. Sign-in is GitHub
only; without GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET nobody can log in.
Copy the config and edit it.
.env.exampledocuments every variable.git clone https://github.com/opendocs-dev/opendocs && cd opendocs cp .env.example .envRequired:
PUBLIC_URL(the URL users open, no path),BETTER_AUTH_SECRET(32+ characters,openssl rand -hex 32),ADMIN_EMAILS(comma list),POSTGRES_PASSWORD, theS3_*keys (S3_SECRET_ACCESS_KEYis also the MinIO password), and the GitHub pair below. Images are pulled fromghcr.io/opendocs-dev/opendocs-{api,web}at the tag inOPENDOCS_VERSION(.env.examplesetsedge, the latestmain; pin a release such as1.0.0for production).PUBLIC_URLand the other settings are read at runtime: edit.envanddocker compose up -dto apply.Create a GitHub OAuth app (GitHub, Settings, Developer settings, OAuth Apps). Set the callback URL to
${PUBLIC_URL}/api/auth/callback/githuband put the client id and secret inGITHUB_CLIENT_IDandGITHUB_CLIENT_SECRET.Start it.
docker compose up -dThe api validates its config on start and exits with a list of every bad variable (
docker compose logs api), then applies database migrations.Open
PUBLIC_URLand sign in with GitHub. The first user to sign in becomes the owner; put your email inADMIN_EMAILSso it is an admin. Create an API key under/admin/keys.Point the CLI at your instance:
export OPENDOCS_API_URL=<PUBLIC_URL>/api/v1 npx -y opendocs-cli@alpha login --key <your-key>
TLS: the stack publishes plain HTTP on WEB_PORT (default 3000). Put a reverse proxy with TLS in front
and set PUBLIC_URL to its https URL.
External S3 (Cloudflare R2, Backblaze B2, AWS S3): set COMPOSE_PROFILES= (empty) in .env so MinIO is not
started, and set S3_ENDPOINT, S3_BUCKET, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_REGION
(R2 uses auto) and S3_FORCE_PATH_STYLE (false for AWS and R2). Create the bucket yourself.
Set ASSET_BASE_URL to serve images from a CDN or public bucket instead of through the api.
Upgrade: set the new OPENDOCS_VERSION in .env (not needed for edge), then
docker compose pull && docker compose up -d. Migrations run on api start; data lives in the
pgdata and miniodata volumes. The dev-only Postgres for tests is docker-compose.dev.yml.
To build the images from this checkout instead of pulling them:
docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --buildBuild from source
git clone https://github.com/opendocs-dev/opendocs && cd opendocs
bun install
bun run --cwd packages/cli build # → packages/cli/dist/opendocs
OPENDOCS_API_URL=<site>/api/v1 ./packages/cli/dist/opendocs login --key <your-key>Security
See SECURITY.md.
License
This server cannot be deployed
Maintenance
Related MCP Connectors
Turn screen recordings into step-by-step guides, SOPs and user docs with screenshots.
Record demos of your web app from one sentence and turn its product map into help articles and more.
Loom for agents: AI agents record narrated product demos, plus transcripts, summaries, and search.
Make how-to videos, social clips and help articles from Claude or ChatGPT, and run your help center.
Related MCP Servers
- AlicenseAqualityCmaintenanceTurn screen recordings into automated Playwright E2E reproduction tests, structured GitHub bug reports with clickable video timestamps, and SOP walkthroughs.612 npmMIT
- FlicenseNot gradedqualityAmaintenanceGives coding agents full browser context — user actions, network, console, storage, DOM events, and screen recordings — from captured browser flows. This lets agents debug reported issues and generate or run regression tests without spending time and tokens reproducing them.-
- FlicenseNot gradedqualityAmaintenanceEnables coding agents to access recorded browser flows with user actions, network, console, storage, DOM events, and screen recording so they can debug, report bugs, perform regression testing, and generate Playwright tests without reproducing the issue.-
- FlicenseNot gradedqualityAmaintenanceGives coding agents full browser context from recorded user flows, including actions, network, console, storage, DOM events, and screen recordings. Enables in-depth debugging, bug reporting, regression testing, and Playwright test generation without reproducing issues.-