Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
Turn a signalling pcap into per-subscriber call flows: 5G, 4G and IMS, every failure explained
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"telcoladder": {
"command": "uvx",
"args": [
"telcoladder",
"mcp"
]
}
}
}Ejecuta esto en tu terminal
claude mcp add telcoladder -- uvx telcoladder mcpPégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"telcoladder": {
"command": "uvx",
"args": [
"telcoladder",
"mcp"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"telcoladder": {
"type": "stdio",
"command": "uvx",
"args": [
"telcoladder",
"mcp"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub gollumw, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.4.0) llegó al registro hace 2 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, FlyDocs
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
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.
Spec-driven development workflow: your agent works issues, sessions and the status lifecycle.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
Deterministic 5G / 4G / IMS signalling analyzer and call-flow correlator. The correlation and root-cause layer on top of tshark: one subscriber across every interface, every failure explained from a verified cause table, and nothing generated.
For core-network SRE and R&D, RAN/core interoperability test, and third-line troubleshooting at vendors and operators. It assumes you already read signalling for a living.
pip install telcoladder
telcoladder check # verifies tshark and its dissectors telcoladder summarize failed_attach.pcapng # one page of facts, every failure cited
Two outputs from one analysis. Mermaid you can paste into a ticket:
sequenceDiagram
autonumber participant gNB participant AMF Note over gNB,AMF: SUPI 001011234567895 gNB->>AMF: #35;7 InitialUEMessage ▸ Registration request AMF->>gNB: #35;8 DownlinkNASTransport ▸ Authentication request rect rgb(255, 226, 226) gNB->>AMF: #35;9 UplinkNASTransport ▸ Authentication failure Note over AMF: Synch failure (#35;21) — 3GPP TS 24.501 §9.11.3.2 end rect rgb(255, 226, 226) AMF->>gNB: #35;10 DownlinkNASTransport ▸ Registration reject Note over gNB: Protocol error, unspecified (#35;111) — 3GPP TS 24.501 §9.11.3.2 end
That is real output from tests/fixtures/ki-mismatch, not an illustration: a UE provisioned with the wrong key, captured on a local Open5GS testbed. It is not the MAC failure you would expect — a UE whose K does not match computes an AUTS the network cannot resynchronise from, so you get #21 and then a bare #111. The cause table says so because we ran it, not because it sounded right.
And the same capture in the browser: a packet list driven by real tshark display filters, per-frame decode tree and bytes, the ladder with the initiator and the cause on every failing event, and a per-PDU-session matrix where every cell cites the frame it came from.
| Generation | Protocols | Cause explanations |
|---|---|---|
| 5G core | NGAP, NAS-5GS, HTTP/2 SBI, PFCP, GTP-U | 206 |
| 4G / EPC | S1AP, NAS-EPS, GTPv2-C (S11, S5/S8, N26), SGsAP (SGs) | 236 |
| IMS | SIP (calls, KPIs), Diameter, H.248/MEGACO | 333 |
Every cause code is resolved through a hand-verified table to the specification it comes from, what it means in plain language, and the root causes that actually produce it in the field — 775 of them, every name taken verbatim from tshark and re-checked against it by a test. Nothing is generated: a cause the table does not carry is reported as not catalogued, and a clause number is printed only where a person transcribed it. Every network function is named rather than shown as an IP, with the evidence for that name on hover.
| Today | With TelcoLadder |
|---|---|
| Copying UE IDs by hand between windows to follow one subscriber | One subscriber's whole lifetime in one flow: SUPI, 5G-S-TMSI, NGAP and S1AP UE IDs, TEIDs, Call-ID — with keys that are recycled treated as recycled |
| N2 and SBI in separate captures that never line up | N2, SBI and N4 stitched on one timeline; N4 joins through the GTP-U tunnel endpoint the UPF allocated and NGAP relayed |
| An N26 handover spread across NGAP, N26, S11 and S1AP | One segment across all four, joined through the S1-U SGW F-TEID the MME copies from Create Session Response into HandoverRequest |
| A bare cause number and a trip to the spec | 775 causes with the specification named, plain language and field root causes; clauses where a person checked them |
| RAN and core blaming each other for a dropped context | Every UE context release marked requested by the RAN or ordered by the core — a wire fact, not an opinion |
| A procedure that stalls for no visible reason | The gap named when it matches a NAS timer's default (T3560, T3460 …), and failures counted by TAC, cell, DNN and core element |
| VoLTE Gm signalling hidden inside IPsec ESP | NULL-encrypted ESP is detected and decoded, so the SIP and SDP inside join the subscriber's ladder. ESP that is really encrypted stays unreadable and is counted, not guessed |
| A B2BUA (an AS, or an SBC that keeps the charging ID) changes the Call-ID, so one call shows up as unrelated dialogs | Legs that share a charging ID (ICID) and overlap in time are one call, end to end — H.248, HSS, charging and ENUM attached only where evidence ties them to that call |
| Customer captures that must never leave the building | A command on your machine: no network listener beyond 127.0.0.1, no telemetry, no cloud, no model |
Windows without Python? Skip
pipand jump to
4. Windows, no install — the only prerequisite is Wireshark.
# 1. CLI — one page of deterministic facts, Markdown or JSON
telcoladder summarize capture.pcapng telcoladder analyze capture.pcapng -o flow.mmd # Mermaid, byte-for-byte reproducible
telcoladder serve # http://127.0.0.1:3005
claude mcp add telcoladder -- telcoladder mcp
4. Windows, no install. A standalone executable in a portable zip, built by CI from the tagged source. Nothing is installed and no registry key is written; it needs Wireshark 4.0 or newer on the machine, nothing else.
TelcoLadder-Windows-x64.zip (about 10 MB) from the Releases page.tshark.exe in Wireshark's default install location under Program Files — or wherever TELCOLADDER_TSHARK points — and checks the dissectors. telcoladder.exe summarize capture.pcapng
telcoladder.exe serve
`serve` listens on `http://127.0.0.1:3005`: open it in your browser, drop a
capture (up to 1 GB), or paste a path for anything larger.
5. Hand a capture to someone else. telcoladder anonymize in.pcap out.pcap rewrites subscriber identities, addresses, hostnames, PLMN and cell identifiers into keyed pseudonyms of the *same length* — TBCD, ASCII, JSON and HPACK-Huffman alike — recomputes every checksum, then re-reads its own output and refuses to keep it if any original value is still visible. The output walks the same pipeline to the same procedures, roles and failures; only the names differ. Same key, same pseudonyms across captures; the key is printed once and never written down. Compressed HTTP/2 bodies cannot be rewritten in place and are refused unless --blank-opaque-bodies.
Requires Python 3.11+ and tshark (Wireshark 4.0 or newer) for the pip route. Neither the macOS nor the Windows installer puts tshark on your PATH; TelcoLadder looks in the standard install directories and finds it anyway, or takes TELCOLADDER_TSHARK. The venv-by-venv Windows walkthrough is in the user guide.
Cross-interface correlation. A subscriber is a union of identity keys, each with the right scope: NGAP and S1AP UE IDs are unique only within one association, TEIDs and TMSIs are reallocated and treated as episodes, and the GTP-U tunnel endpoint is one definition shared by NGAP, PFCP, GTP-U and now S1AP. The failure mode of a wrong key is two people in one flow with a ladder that still renders, so the key shapes are tested against captures built to provoke exactly that.
775 verified causes. Names from tshark -G values, re-checked by tests on every CI platform; two Diameter number spaces kept apart; NGAP and S1AP cause groups looked up in the group the message selected. Ordered-sequence rules written by people — #21 followed by #111 is a key mismatch, not a sequence problem — are matched and reported with the frames.
Fault attribution. UEContextReleaseRequest is only ever sent by the RAN and the release Command only by the core; the ladder, the procedure list and the xDR say which one started it. The reason still comes from the cause table; there is no second verdict string.
Timer match and blast radius. An unanswered network request followed by a release or reject a timer's default later is reported as *consistent with* that timer — never as a proven timeout, because the capture shows timing and not the AMF's state. With several subscribers, failures are counted by TAC, cell, DNN and core-side element; an unknown location is a null row, not a dropped one.
Air-gapped by construction. serve binds 127.0.0.1 and checks the Host header; the MCP server is stdio only; the browser bundle ships in the package and loads nothing from the network; there is no telemetry and no model. What the tool could not read — ciphered NAS, ECIES-protected SUCIs, TLS on SBI, frames no dissector claimed — is counted and stated before any conclusion.
Each of these is a fixture in tests/fixtures/ you can run yourself.
ki-mismatch. Synch failure (#21) then a bare protocol error (#111). The sequence rule in the cause table names the real cause and says what does *not* fix it: resetting the SQN. telcoladder summarize tests/fixtures/ki-mismatch/capture.pcap5gc-context-release. The release is marked as ordered by the core, and the gap is reported as consistent with T3560's default. The second subscriber in the same file is released at the gNB's request after the radio link was lost, and is marked as such.n26-handover. Five elements on one ladder; the failure appears three times on the wire (S1AP HandoverFailure, the N26 Forward Relocation Response, the NGAP HandoverPreparationFailure) and is explained once, from the S1AP table, with the specification named and no clause invented.tshark.Solo se muestra el principio; lee el resto en el repo