Skip to main content
Glama

portmap

Dein Agent hat localhost:3000 hartkodiert. Dies bildet ab, was tatsächlich läuft.

License: MIT CI

git clone https://github.com/paladini/portmap.git && cd portmap
npm ci && npm run build && node dist/cli.js scan /path/to/your-app

Deterministisch · Kein LLM · Kein Netzwerk · Nur Lesen


Was ist das?

portmap ist ein Kommandozeilen-Tool + MCP-Server, der eine einzige Frage beantwortet:

Bevor dein Agent curl localhost:3000 ausführt, lauscht dort überhaupt etwas?

Es verschmilzt drei Ebenen der lokalen Dev-Realität zu einer einzigen Karte:

  1. Deklariert — Ports in vite.config, package.json-Skripten, .env-URLs, docker-compose

  2. Tatsächlich — was dein Betriebssystem gerade als lauschend meldet (Windows, macOS, Linux)

  3. Verbunden — wie Umgebungsvariablen (VITE_API_URL, API_URL, …) Dienste miteinander verknüpfen

Ausgabe: .portmap.json + umsetzbare Findings (PRT-01PRT-07), die Agents und CI ohne Raten konsumieren können.

Für wen ist das?

  • Entwickler, die den „Port 3000 killen“- und „läuft bei mir“-Port-Drift satt haben

  • Teams, die KI-Coding-Agenten (Cursor, Claude Code, Copilot) einsetzen, die falsche localhost-URLs hartkodieren

  • Monorepos, in denen Frontend und API in Schwesterordnern liegen und Env-Referenzen Repos kreuzen

  • Menschen, die einen 5-Sekunden-Plausibilitätscheck brauchen, bevor sie API-Verbindungen debuggen

Was es nicht ist

Erwartung

Realität

Startet/stoppt deine Dev-Server

Nein — nutze Switchboard oder PortPilot für den Lebenszyklus

Manuell gepflegte Port-Registry

Nein — portmap entdeckt Ports aus Konfigs + Betriebssystem

Produktions-Monitoring / Uptime

Nein — nur lokale Dev-Topologie

Nutzt ein LLM zum Raten der Ports

Nein — 100 % deterministisches Dateisystem + Socket-Tabelle

Wenn du einen Prozess beenden willst, nutze die Tools deines Betriebssystems. portmap sagt dir welchen Port du treffen solltest, bevor du zwanzig Minuten mit Debugging verschwendest.


Related MCP server: devenv-doctor-mcp

Das Problem

Jede KI-gestützte Dev-Session stößt irgendwann darauf:

Agent:  fetch('http://localhost:3000/api/users')
Reality: Vite on :5173, API on :8080, nothing on :3000

Warum passiert das:

  • Next.js nutzt standardmäßig :3000 — das merken sich Agents

  • Vite nutzt standardmäßig :5173 — anderer Stack, anderer Port

  • Docker mappt 8080:3000 — die App lauscht im Container, nicht dort, wo du denkst

  • .env.local zeigt auf einen Port, den heute niemand gestartet hat

  • Du debugst CORS, Auth und den „network error“ zwanzig Minuten lang, obwohl der eigentliche Bug PRT-04 ist

portmap deckt die Abweichung in Sekunden auf — deklariert vs. lauschend vs. Env — damit du die URL fixst, nicht das Symptom.


So funktioniert es

Zwei Scanner, ein Abgleich, kein LLM:

┌─────────────────────────────────────────────────────────────┐
│  Your repo on disk                                          │
├─────────────────────────────────────────────────────────────┤
│  1. Static discovery                                        │
│     package.json scripts · vite.config · .env localhost URLs│
│     docker-compose port mappings                            │
├─────────────────────────────────────────────────────────────┤
│  2. Runtime scan (optional)                                 │
│     OS listeners → port, PID, process, command line           │
├─────────────────────────────────────────────────────────────┤
│  3. Reconcile                                               │
│     declared ↔ actual ↔ env references → service graph        │
│     → .portmap.json + findings (PRT-01 … PRT-07)            │
└─────────────────────────────────────────────────────────────┘
         ↓                    ↓                    ↓
    CLI pretty          MCP tools            CI --min-findings

Vollständige Regelliste: docs/FINDINGS.md · Vorher/Nachher-Fixes: docs/EXAMPLES.md · JSON-Spezifikation: docs/SCHEMA.md


Probier es in 30 Sekunden

git clone https://github.com/paladini/portmap.git
cd portmap
npm ci && npm run build

npm run demo:mismatch     # classic agent mistake → 3 errors
npm run demo:workspace    # frontend + API in sibling folders → resolved

So sieht demo:mismatch aus

portmap — mismatch-app
root: …/fixtures/mismatch

Services:
  [down] vite — Vite dev server
    declared :5173 (vite.config.ts:server.port)
    not listening

Env references:
  NEXT_PUBLIC_API_URL=http://localhost:3000 → :3000 [unresolved]
  VITE_API_URL=http://localhost:8080 → :8080 [unresolved]

Findings: 3 error(s), 0 warning(s)
  ✖ PRT-01 Declared port 5173 is not listening …
  ✖ PRT-04 NEXT_PUBLIC_API_URL points to localhost:3000 but nothing is listening …
  ✖ PRT-04 VITE_API_URL points to localhost:8080 but nothing is listening …

Das ist die gesamte Debug-Session, die sich ein Agent spart, wenn er zuerst .portmap.json liest.


Installation & Ausführung

Option A — Klonen (funktioniert heute)

git clone https://github.com/paladini/portmap.git
cd portmap
npm ci && npm run build
node dist/cli.js scan /path/to/your-app

Option B — npm (sobald veröffentlicht)

npx portmap scan .

Typischer Ablauf

  1. Führe aus portmap scan . (oder declare ., wenn noch nichts läuft)

  2. Lies references[] für die korrekten localhost-URLs — nimm niemals :3000 an

  3. Behebe PRT-04 (defekte Env-URL), bevor du API-Verbindungen debugst

  4. Schreibe .portmap.json für zukünftige Agent-Sessions: portmap scan . --write

  5. Optional: CI mit --min-findings 1 --min-severity error absichern


Befehle

Befehl

Was er tut

portmap scan [path]

Voller Scan: statische Konfigs + OS-Listener

portmap declare [path]

Nur statisch — keine laufenden Prozesse nötig

portmap listen

OS-Listener auflisten (Debug)

portmap workspace [dir]

Multi-Repo: Env-Referenzen über Repos hinweg auflösen

portmap mcp

Read-only-MCP-Stdio-Server starten

Flags: --json · --markdown · --write (speichert .portmap.json) · --out <file> · --min-findings N · --quiet


Findings auf einen Blick

ID

Regel

Schweregrad

PRT-01

Deklararbter Port lauscht nicht

error

PRT-02

Listener ohne deklarierte Konfiguration

warning

PRT-03

Zwei Dienste deklarieren denselben Port

error

PRT-04

Env-URL zeigt auf Port ohne Listener

error

PRT-05

Listener auf anderem Port als deklariert

warning

PRT-06

Docker-Host:Container-Port-Mismatch

warning

PRT-07

Cross-Workspace-Env-Referenz nicht aufgelöst

warning

Vollständiger Katalog mit Fixes: docs/FINDINGS.md


MCP für Agents (nur Lesen)

Füge es zu .cursor/mcp.json oder der Claude-Code-Konfiguration hinzu:

{
  "mcpServers": {
    "portmap": {
      "command": "node",
      "args": ["/path/to/portmap/dist/cli.js", "mcp"]
    }
  }
}

Tool

Verwendung

portmap_scan

Voller .portmap.json-Bericht

portmap_graph

Schlanker { services, edges, references }

portmap_resolve_url

Antwort auf „Welche URL soll ich für VITE_API_URL verwenden?“

portmap_findings

Listet PRT-*-Probleme, gefiltert nach Schweregrad

Skill für Cursor/Claude: .cursor/skills/portmap/SKILL.md


.portmap.json — das Artefakt, das Agents lesen

portmap scan . --write
git add .portmap.json   # optional: commit for stable agent context

Spezifikation: docs/SCHEMA.md


Pipeline für die Agent-Bereitschaft

Teil der present — drei deterministische Checks, kein LLM:

harness-score  →  Is the repo harness ready for agents?
portmap        →  Do ports and env URLs align locally?
unhappypath    →  Is the UI ready for real users?

Tool

Frage

harness-score

AGENTS.md, Regeln, Hooks, CI-Maturität

portmap

Dekalbene Ports, Listener, Env-Graph

unhappypath

Lade-, Leer-, Fehler- und Retry-UI-Zustände


Einschränkungen (ehrlich)

  • Die PID → Repo-Zuordnung ist heuristisch; Treffer mit niedriger Konfidenz werden markiert, nicht versteckt

  • WSL / Docker-Netzwerk — Listener in Containern erscheinen evtl. nicht wie erwartet auf dem Host

  • Reine Laufzeit-Ports (ohne Konfig in JS hartkodiert) werden nicht deklariert — PRT-02 kann warnen

  • YAML-Compose — v1 parst gängige ports:-Muster; exotische Compose-Features werden ausgelassen

  • Falsch-Negative werden lauten Falsch-Positiven vorgezogen — bei Unsicherheit bleibt portmap ruhig


Beitragen

Issues, Falsch-Positive-Meldungen und Parser-Beiträge sind willkommen.

Kanal

Link

Bug melden

Issue eröffnen

Falsch-Positiv

PRT-*-Fehlalarm melden

Feature anfordern

Parser/Regel anfordern

Fragen & Ideen

Diskussionen

Siehe CONTRIBUTING.md · ROADMAP.md · CODE_OF_CONDUCT.md

Sicherheitsprobleme: SECURITY.md — bitte nicht öffentlich melden.


Entwicklung

npm ci
npm run build
npm test
npm run demo:mismatch
npm run demo:workspace

Agent-/Contributor-Guide: AGENTS.md


Lizenz

MIT © 2026 Fernando Paladini

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to discover, configure, and manage local development servers. Provides tools for app registration, port allocation, lifecycle control, and log access without manual config editing.
    338
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables LLM clients to inspect local dev environments—Docker container health, pnpm workspace integrity, and stuck process detection—without manual terminal copy-pasting.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    See and control the local dev servers your coding agents leave running. Lists listeners with provenance — which agent, terminal and git worktree started each — kills strays, and allocates collision-free ports so parallel agents stop fighting over :3000.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for managing local dev ports on macOS. It enables AI agents to inspect listening ports, identify owning processes and parent chains, kill processes safely, wait for ports, and report LAN exposure.
    29
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Give your AI agent a persistent map of your project's structure, dependencies, and bugs.

  • Lints + auto-fixes how AI coding agents discover any new product. 24 rules, 6 tools, score 0-100.

  • Scan any URL for AI agent readability — Vercel Spec, llmstxt.org, and agent-protocol manifests.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/paladini/portmap'

If you have feedback or need assistance with the MCP directory API, please join our Discord server