Skip to main content

Pre-publish content quality gate (SEO, AEO, GEO) - API, CLI, MCP

Project description

Dokeo — Content Quality Gate

Pre-publish content quality gate for SEO, AEO, and GEO. Scores every post, email, video script, and AI output against 8 core checks before it ships.

Surfaces

Dokeo ships as four parallel surfaces that all hit the same gate engine:

Surface Port / Transport Best for
FastAPI service http://host:8000/api/v1/* Programmatic integrations, webhooks
Next.js web app https://host/web/* End-user UI with Clerk auth
Streamlit UI https://host/ Legacy dashboard, single-user password
MCP server stdio Claude / Cursor / any MCP client
CLI dokeo in your shell Pipelines, n8n, Claude Code

The legacy webhook (port 8502, /check, /check-url, etc.) is kept for backward compatibility with existing n8n / Zapier / Make integrations.

Quickstart

# 1. Install
pip install -e .

# 2. Run the API
uvicorn api.main:app --reload --port 8000
# → http://localhost:8000/docs for OpenAPI

# 3. Run the web app (separate terminal)
cd web && bun install && bun run dev

# 4. Run the Streamlit UI (separate terminal)
streamlit run app.py

# 5. Try the CLI
echo "# My post\n\n## Question?\n\n..." | dokeo pipe

# 6. Try the MCP server (Claude Desktop / Cursor will spawn it for you)
dokeo-mcp-server

Self-hosted with Docker

cp .env.example .env
# Edit .env - set DOKEO_API_KEY, DOKEO_PASSWORD, Clerk keys
docker compose up -d

Routes (via Caddy at ports 80/443):

  • / → Streamlit (port 8501)
  • /web/*, /sign-in, /sign-up → Next.js (port 3000)
  • /api/v1/* → FastAPI (port 8000)
  • /check*, /check-url*, /check-blog*, /health*, etc. → legacy webhook (port 8502)

Auth model

Surface Auth
FastAPI (/api/v1/*) Bearer token: DOKEO_API_KEY or DOKEO_API_KEYS=key:tenant,...
Legacy webhook Same Bearer token
Streamlit Cookie session via DOKEO_PASSWORD
Next.js Clerk (hosted)
MCP Filesystem only; no network exposure
CLI None (local)

DOKEO_API_KEY is required in any non-dev environment. Streamlit refuses to boot in production without DOKEO_PASSWORD.

Documentation

  • API: OpenAPI at /docs or /redoc when running
  • MCP: docs/mcp.md
  • Engine config: config.yaml
  • Content-type definitions: gate/content_types.py

Tests

pytest                  # all tests
pytest tests/test_mcp_server.py   # MCP only

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dokeo-3.0.0.tar.gz (121.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dokeo-3.0.0-py3-none-any.whl (129.9 kB view details)

Uploaded Python 3

File details

Details for the file dokeo-3.0.0.tar.gz.

File metadata

  • Download URL: dokeo-3.0.0.tar.gz
  • Upload date:
  • Size: 121.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for dokeo-3.0.0.tar.gz
Algorithm Hash digest
SHA256 9694d15db26ce27eb40dc83fa145c4b325af57b53d7b828742d3a36edbf31546
MD5 6bd12398304c78da5a734883dcb076c3
BLAKE2b-256 a96018208fa4fccb2c93ecaafc1da415a1b442478a1ceeb6d78ef17ce36fd831

See more details on using hashes here.

File details

Details for the file dokeo-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: dokeo-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 129.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for dokeo-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c6eb5d4223702b56d60b27114eb9b249799fe1debe4072af912c0cb11193de3d
MD5 75ba0823e21b5710d98cd4a46eb36690
BLAKE2b-256 060d1ca5a0c12bc7657b2ba641015de1fcf6339b31ec475a152e5fe1d7868b48

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page