Documint
Documint is a repo-native documentation operations product for teams that ship APIs, SDKs, and MCP servers.
The first customer is this repository itself. V1 is deliberately narrow:
- Git is the source of truth.
- documentation changes happen through commits and PRs,
- the public site lives at
documint.xyz, - the backend detects doc drift and exposes a published-docs MCP surface,
- the product is not considered ready until it can keep its own docs current.
Product surfaces
/marketing and positioning/docspublished repo-backed documentation/appthe authenticated operator console for onboarding, traces, findings, patches, PRs, publishes, and tokens/p/:workspace/:project/docs/...hosted public docs generated from persisted publish deployments
Stack
apps/web: Next.js site and dashboardsrc/documint_mcp: Python backend, persistent control plane, drift engine, GitHub App integration, and MCP-style APIcontent/docs: published docs content for the self-dogfood projectalembic: schema migrations for the control-plane database
Local development
1. Install dependencies
npm install
cd apps/web && npm install && cd ../..
python -m pip install -e ".[dev]"
2. Create or migrate the database
documint db upgrade
For local dogfooding, schema creation and self-bootstrap can also be driven by env flags:
DOCUMINT_AUTO_CREATE_SCHEMA=trueDOCUMINT_AUTO_BOOTSTRAP_DEFAULTS=true
3. Run the backend
npm run dev:api
4. Run the site
npm run dev:web
The site expects the backend at http://127.0.0.1:8000 by default. Override with DOCUMINT_API_URL if needed.
5. Bootstrap the self project explicitly when auto-bootstrap is off
documint workspaces bootstrap-self
6. Run the queue worker when DOCUMINT_JOB_EXECUTION_MODE=queue
documint worker
7. Run the full dogfood smoke loop
npm run dogfood
This boots the backend and web app, verifies the public pages, runs drift and publish jobs, calls the MCP surface, and posts a signed GitHub webhook delivery against the local API.
Core API routes
GET /healthGET /runtimeGET /meGET /workspacesPOST /workspacesGET /snapshotGET /projectsPOST /projectsGET /projects/{project_id}POST /projects/{project_id}/rescanGET /projects/{project_id}/findingsPOST /projects/{project_id}/findings/{finding_id}/patchGET /projects/{project_id}/patchesGET /projects/{project_id}/patches/{patch_id}POST /projects/{project_id}/patches/{patch_id}/prGET /projects/{project_id}/publishesGET /projects/{project_id}/activityGET /sourcesGET /workspaces/{workspace_id}/tokensPOST /workspaces/{workspace_id}/tokensGET /integrations/github/appGET /integrations/github/installationsGET /integrations/github/installations/{installation_id}/repositoriesPOST /integrations/github/installations/{installation_id}/syncPOST /integrations/github/webhooksPOST /jobs/driftPOST /jobs/publishPOST /auth/cli/exchangePOST /internal/revalidateGET /artifacts/{artifact_id}/traceGET /public/projects/{workspace_slug}/{project_slug}/docs/{path}GET /mcpPOST /mcp
MCP tools
list_projectsanalyze_repositorydetect_doc_driftgenerate_doc_patchreview_doc_patchpublish_previewexplain_doc_traceget_project_activity
Release bar
Documint does not onboard external customers until it can do the following on this repo:
- produce a truthful project snapshot,
- detect stale documentation from source changes,
- generate a reviewable patch preview,
- publish a docs preview,
- expose those docs through the MCP surface.
Deployment shape
- Deploy
apps/webto Vercel with the project root directory set toapps/web. - Deploy the Python backend to Railway from the repository root using
railway.jsonand the root Dockerfile. - Point
DOCUMINT_API_URLat the public backend origin for the dashboard. - Set
API_BASE_URL,GITHUB_WEBHOOK_SECRET,GITHUB_APP_PRIVATE_KEY, andDOCUMINT_SELF_BOOTSTRAP_INSTALLATION_IDbefore configuring the GitHub App webhook. - Set Clerk env vars in both web and backend runtimes:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYCLERK_SECRET_KEYCLERK_JWKS_URLCLERK_ISSUERCLERK_AUDIENCE
- Set
DOCUMINT_FRONTEND_REVALIDATE_URL,DOCUMINT_FRONTEND_REVALIDATE_SECRET, andDOCUMINT_INTERNAL_REVALIDATE_SECRETso publish jobs can invalidate hosted docs pages. - Set
PUBLIC_BASE_URL=https://documint.xyz,APP_BASE_URL=https://documint.xyz/app, andDOCUMINT_DEPLOY_COMMITif your runtime does not expose git metadata. - For a local containerized stack, run
docker compose up --build.
Production proof
/runtimemust report the deployed provider, environment, and commit source./appmust showlive api, notfallback data.npm run dogfoodnow verifies the live dashboard path as part of the self-test.
GitHub App loop
Documint V1 treats GitHub as the first event source for self-dogfooding:
- create a GitHub App with
push,pull_request,release,installation, andinstallation_repositoriesevents, - set the webhook URL to
https://<api-origin>/integrations/github/webhooks, - install the app on
skeehn/documint, - sync the installation repo catalog in
/app/onboarding, - let webhook deliveries trigger repo-backed drift checks,
- review the findings and proposed patch before opening or merging a docs PR.
Auth and operator flow
- Production
/approutes are protected with Clerk when Clerk is configured. - The backend accepts three credential types:
- service bearer token for internal bootstrap/admin flows
- hashed workspace API tokens for CLI and MCP
- Clerk JWTs for the operator app
- Production operator pages no longer render fake project state when the backend is unavailable. They render a degraded unavailable state instead.
Local full-stack options
npm run dogfoodis the fastest end-to-end local smoke test.docker compose up --buildruns the repo-native stack withweb,api, andredis.docker compose -f docker/docker-compose.dev.yml up --buildprovides the same stack from the legacydocker/entrypoint, now aligned with V1.
Metadata
Release files for documint-mcp 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| documint_mcp-0.3.2.tar.gz | 11.0 MB | Without provenance | Details for documint_mcp-0.3.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| documint_mcp-0.3.2-py3-none-any.whl | Python 3 | none | any | Details for documint_mcp-0.3.2-py3-none-any.whl |
Total release size: 11.2 MB
Release files / documint_mcp-0.3.2.tar.gz
| Download URL | documint_mcp-0.3.2.tar.gz |
|---|---|
| Size | 11.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
238706d8e643487ab9c85891f724915c254b813cb34890baf7e3c886ab59757d
|
|
BLAKE2b-256 checksum How to use checksums |
a66588883ff308f27ad912a4246a80344c739bbc67d6ed915ec243a274c1767e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / documint_mcp-0.3.2-py3-none-any.whl
| Download URL | documint_mcp-0.3.2-py3-none-any.whl |
|---|---|
| Size | 155.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a4598434e6cc296d2c88a0b8ca2475ac44dce11eb5a3eef9167249cef3b68a69
|
|
BLAKE2b-256 checksum How to use checksums |
1dbd7b47f3cd22b316c1ec84922d6582c76d42235a5a9716d43f8ba40951445f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Security for documint-mcp 0.3.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.