Tech Stack & Credits
The software, data sources, and decisions behind the MCP Observatory.
Architecture
Two Node ≥22 processes sharing one SQLite WAL file — an Astro 5 SSR web server and a separate background worker. A busy or restarting worker never stalls the page; requests keep serving from SQLite while it recovers. The live event stream runs over SSE via an in-memory broker backed by a SQLite outbox, so the web process never writes to the database.
- Astro 5 SSR · Node standalone
- Node worker 10 pollers · 12 jobs
- better-sqlite3 WAL · shared db
- TypeScript 5 strict · no UI framework
- SSE in-memory broker · SQLite outbox
- Docker Compose two services · /data volume
Design
Self-hosted, used for all data presentation and inline code. The phosphor-green palette keeps the terminal aesthetic without sacrificing readability. Islands are vanilla TypeScript — no React, Vue, or Svelte anywhere in the tree.
Display
Toggle the experimental CRT scanline effect.
Credits & Upstreams
Data sources
- npm registry
- PyPI
- GitHub API — topics, repos, advisories
- Smithery — directory + capability enrichment
- mcp.so — community listing
- Official MCP Registry
- OSV.dev — vulnerability database
- FIRST EPSS — exploit prediction scoring
Runtime
- Astro 5
- better-sqlite3
- esbuild — static analysis AST + worker bundler
- Pino — structured JSON logging
- Semgrep — optional taint analysis
- JetBrains Mono — Apache 2.0
License
The observatory software is released under the MIT License. All upstream data remains subject to each source's own terms. Live polling status is on the feeds page; how data is collected and scored is on the methodology page.