Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Read-only host activity, history, anomalies and evidence from a Vytrix collector.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
VYTRIX_URL, VYTRIX_TOKENValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"vytrix": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"VYTRIX_URL",
"-e",
"VYTRIX_TOKEN",
"ghcr.io/zyvorai/vytrix-mcp:0.8.0"
],
"env": {
"VYTRIX_URL": "your-value",
"VYTRIX_TOKEN": "your-value"
}
}
}
}Run this in your terminal
claude mcp add vytrix --env VYTRIX_URL=your-value --env VYTRIX_TOKEN=your-value -- docker run -i --rm -e VYTRIX_URL -e VYTRIX_TOKEN ghcr.io/zyvorai/vytrix-mcp:0.8.0Fill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"vytrix": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"VYTRIX_URL",
"-e",
"VYTRIX_TOKEN",
"ghcr.io/zyvorai/vytrix-mcp:0.8.0"
],
"env": {
"VYTRIX_URL": "your-value",
"VYTRIX_TOKEN": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"vytrix": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"VYTRIX_URL",
"-e",
"VYTRIX_TOKEN",
"ghcr.io/zyvorai/vytrix-mcp:0.8.0"
],
"env": {
"VYTRIX_URL": "your-value",
"VYTRIX_TOKEN": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account zyvorai, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: VYTRIX_URL, VYTRIX_TOKEN
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.8.0) reached the registry 20 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Docker on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, 御府和田玉 在售作品查询
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Live in-stock Hetian jade from Yufu, Shanghai: prices, monthly price guide, book a viewing.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
A read-only system activity monitor for macOS and Linux. Applications grouped the way you think about them, processes, listening ports, project folders, and Docker and Podman containers, in a macOS 27 window, a macOS 26 Liquid Glass one, or an Adwaita one. A single-file Python collector with no dependencies feeds it.
Read-only · Dependency-free collector · macOS 27 + Liquid Glass + Adwaita · Docker and Podman aware · Local-first
🎮 [Live demo](https://zyvorai.github.io/zyvor-vytrix/demo/) · 🌐 [Site](https://zyvorai.github.io/zyvor-vytrix/) · 🚀 [Quickstart](#quickstart) · 🧩 [How it fits](#how-it-fits-together) · 🔒 [Security](SECURITY.md) · 📖 [API](docs/API.md)
| When this happens | Vytrix gives you |
|---|---|
| Activity Monitor lists 24 "Google Chrome Helper" rows and you want one number | Processes grouped by executable or `.app` bundle, with CPU and memory per application and a process sheet one click away |
| "Which container is eating the box, and is it Docker or Podman?" | State, CPU, memory against its limit, network I/O and published ports for both runtimes, from read-only CLI calls |
| "What is listening on 5173?" | Listening ports tied to the application and its project folder |
| You want a monitor on a remote server without an agent suite | One Python file, one systemd unit, HTTPS and a bearer token |
| You will leave it running on a production host | It is read-only: it never kills, signals or changes anything |
[Try the live demo](https://zyvorai.github.io/zyvor-vytrix/demo/): the real dashboard, running in your browser on simulated telemetry (nothing to install, nothing leaves the page).
[Download for Mac](https://github.com/zyvorai/zyvor-vytrix/releases/tag/v0.7.0): the native app, v0.7.0, DMG and pkg (Apple silicon, macOS 26+); the release notes say whether the build is signed and notarized.
*About 12 seconds against the built-in simulated telemetry: overview, an application's processes, containers, switching to the Adwaita window style, then dark mode.*
| macOS 27, light | macOS 27, dark |
|---|---|
| Liquid Glass, light | Liquid Glass, dark |
|---|---|
| Adwaita, light | Adwaita, dark |
|---|---|
| Phone (390px) | Phone, containers |
|---|---|
*Every image here is the app's built-in simulated telemetry (host zyvor-dev-01). A web page cannot read your processes, so the hosted preview says so on screen. See the UX contract.*
The dashboard starts on clearly labeled simulated telemetry. To see your own machine, run the collector and connect (live), or import a one-off snapshot (offline).
Optional and read-only: a small worker on each Mac pushes its snapshot to a coordinator, and Monitor → Mac cluster shows every machine's CPU, memory, disk, network, applications and containers. There is no command channel. See docs/CLUSTER.md.
A SwiftUI app (native/) that shows the same telemetry in a native macOS 27 window. It starts the bundled collector on loopback with a random token held in memory, or connects to one you run elsewhere (Connect…, HTTPS unless it is localhost). It is read-only, like everything else here.
[Download Vytrix 0.7.0 for Mac](https://github.com/zyvorai/zyvor-vytrix/releases/tag/v0.7.0) (Apple silicon, macOS 26 or newer): Vytrix-0.7.0.pkg installs into Applications, or open Vytrix-0.7.0.dmg and drag Vytrix there. The v0.7.0 files are Developer ID signed and notarized. If you use a build that is not (a local or CI build without Apple secrets), the first launch is blocked: open System Settings → Privacy & Security and choose Open Anyway next to the Vytrix message. Each file has a .sha256; check it with shasum -a 256 -c Vytrix-0.7.0.pkg.sha256. v0.3.0 remains available as a hand-signed DMG. The app bundles the collector, which needs Python 3.10+ (see below).
Or build it from source:
./scripts/build-native.sh # native/build/Vytrix.app, ad-hoc signed development build
open native/build/Vytrix.app # or add --args --demo for simulated telemetry ./scripts/shots-native.sh # docs/ux/native-*.png, from the simulated telemetry ./scripts/build-native-widgets.sh # the same app plus the widget and App Intents (needs xcodegen), see docs/WIDGETS.md
Needs macOS 26 or newer, the Xcode command line tools, and Python 3.10+ for the collector (the system /usr/bin/python3 is 3.9; the app looks for Homebrew's first). Overview, Applications, Containers, Projects, Alerts and Settings are in, grouped Monitor, Workloads and System like the dashboard, along with a menu bar item (CPU, host totals, alert count, busiest apps). Closing the window keeps Vytrix running in the menu bar; Quit stops it and its collector. On the resource pages, anomalous ranges are shaded and a dragged range opens an evidence sheet (needs a collector, so not in demo mode). Alerts use the dashboard's rules (threshold default 80%, critical at +10) and post local notifications, once per alert, never for demo data. The CPU, Memory, Disk, Network and Battery pages and Settings (appearance, accent, threshold, snapshot import and export, data source) are in too. A System widget and two Shortcuts actions ("What is using my CPU?", "How is my Mac doing?") are in docs/WIDGETS.md. Built and run on macOS 27.2.
| Overview, light | Applications, light |
|---|---|
| Containers, dark | Overview, dark |
|---|---|
1. The dashboard, on simulated data (Node ≥ 22.13; npx pnpm@11.25.0 … works without installing pnpm):
git clone https://github.com/zyvorai/zyvor-vytrix.git && cd zyvor-vytrix
npx pnpm@11.25.0 install --frozen-lockfile npx pnpm@11.25.0 dev # http://localhost:5173
2. Your own readings, offline (Python 3.10+, Linux or macOS, no root):
python3 agent/vytrix.py --once > snapshot.json
In the dashboard choose Connect → Import collector snapshot (or Settings → Import). Nothing leaves your machine.
3. Live telemetry
export VYTRIX_TOKEN="$(python3 -c 'import secrets; print(secrets.token_urlsafe(32))')" # keep it out of source control
python3 agent/vytrix.py --allow-origin http://localhost:5173
Enter http://127.0.0.1:9847/v1/snapshot and the token in Connect. The dashboard polls every two seconds. The token stays in tab memory: it is not stored in localStorage and not sent anywhere else. For another machine, serve HTTPS with --tls-cert/--tls-key (or a TLS reverse proxy that passes Authorization). The UI refuses plain-HTTP collector URLs except on loopback.
| Flag | Default | Purpose |
|---|---|---|
--once | Print one snapshot, then exit | |
--bind, --port | 127.0.0.1, 9847 | Where to listen. Plain HTTP on a non-loopback address prints a warning |
--allow-origin | none | Exact browser origin allowed by CORS. Repeatable |
--tls-cert, --tls-key | PEM files: serve HTTPS (needed for remote browser access) | |
--ui-upstream | Proxy non-API paths to a dashboard URL (same-origin deploys) | |
--interval | 2 | Seconds between samples |
--database | ~/.local/share/vytrix/history.sqlite | History (30-day retention, directory 0700, file 0600) |
--no-containers | Skip Docker and Podman | |
--container-interval | 5 | Seconds between container polls |
Endpoints: GET /v1/snapshot, GET /v1/history?since=…&limit=… (both need the bearer token and an allowed origin), and unauthenticated GET /healthz. Everything is a read; mutations are not supported. See docs/API.md.
| Section | Views |
|---|---|
| Monitor | Overview, CPU, Memory, Disk, Network, Battery |
| Workloads | Applications (grouped), Containers (Docker and Podman), Projects (developer servers by folder) |
| System | Alerts (threshold checks), Settings (window style, appearance, accent, reduced transparency, thresholds, import/export) |
Also: search, CPU or memory sort, pause and resume, 1m/5m/1h activity history (captured while the tab is open, at most 1,800 samples), and JSON import/export.
scripts/install-macos.sh --allow-origin http://localhost:5173 # launchd agent, token in the login Keychain
scripts/install-linux.sh --allow-origin http://localhost:5173 # systemd user unit (--system for a hardened system unit)
Both accept --dry-run, --port and --no-containers.
./scripts/deploy-remote.sh 203.0.113.10 deploy # HOST USER, or user@host
./scripts/deploy-remote.sh HOST USER --quick # sync + restart, no build ./scripts/deploy-remote.sh HOST USER --verify-only ./scripts/deploy-remote.sh HOST USER --dry-run # prints the plan; no SSH
It syncs the checkout over SSH (one multiplexed connection) to ~/.vytrix/app, builds it there (with a private Node 22 if the system Node is older), and installs two systemd units: the dashboard on 127.0.0.1:8787 and the collector on `https://HOST:30847` with a self-signed certificate that covers the host, proxying the dashboard on the same origin. The token is created once in ~/.vytrix/env (0600). Open the URL, accept the certificate, Connect (the endpoint is pre-filled) and paste the token. Needs SSH, passwordless sudo, Python 3.10+, curl, openssl, rsync. Details: docs/RELEASE.md.
The dashboard has no login of its own: put it behind your own access control. What the collector token protects, and what it does not, is in SECURITY.md.
pnpm typecheck && pnpm lint
pnpm test # telemetry schema tests + Python collector tests pnpm build pnpm test:e2e # Playwright: WebKit, Chromium, mobile WebKit pnpm shots
Only the beginning is shown; read the rest in the repo