Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Las reseñas y las cuentas llegarán en una etapa posterior.
PopNx MCPServidores MCP para quienes usan IA · explicados con palabras sencillas

MCP Ticket Demo

de markusvankempenversión 1.9.0i★ –iSe ejecuta en tu computadora
Nombre en el registroio.github.markusvankempen/mcp-ticket-demo

Instalar

Resumen

Descripción del creador (original en inglés)

MCP server demo — tickets, schema discovery, auth, and PII gating. stdio + HTTP.

Los tres pilares de PopNx MCP

Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.

Qué puedes hacer con él

Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.

  • Conexión: Se ejecuta en tu computadora
  • Transporte: stdio
  • Categoría: Otros
  • Debes completar: MCP_API_KEY, MCP_USERS

Instalación

Elige la app de IA que usas y copia la configuración.

Antes de instalar

  • Revisiones básicas: 1 de 1 superadas
  • Se ejecuta en tu computadora con los permisos de tu usuario (archivos, red, apps).
  • Debes completar tú: MCP_API_KEY, AUTH_MODE, MCP_USERS, RATE_LIMIT

Los valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.

Necesitas

  • npmNode.js instalado (para el comando npx)

¿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": {
    "ticket-demo": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-ticket-demo"
      ],
      "env": {
        "MCP_API_KEY": "your-value",
        "AUTH_MODE": "your-value",
        "MCP_USERS": "your-value",
        "RATE_LIMIT": "your-value"
      }
    }
  }
}

Ejecuta esto en tu terminal

claude mcp add ticket-demo --env MCP_API_KEY=your-value --env AUTH_MODE=your-value --env MCP_USERS=your-value --env RATE_LIMIT=your-value -- npx -y mcp-ticket-demo

Completa los valores vacíos antes de ejecutarlo.

Abrir en Cursor

O copia la configuración tú

Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json

{
  "mcpServers": {
    "ticket-demo": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-ticket-demo"
      ],
      "env": {
        "MCP_API_KEY": "your-value",
        "AUTH_MODE": "your-value",
        "MCP_USERS": "your-value",
        "RATE_LIMIT": "your-value"
      }
    }
  }
}

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ú.

Abrir en VS Code

O copia la configuración tú

Pégalo en .vscode/mcp.json de tu proyecto

{
  "servers": {
    "ticket-demo": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "mcp-ticket-demo"
      ],
      "env": {
        "MCP_API_KEY": "your-value",
        "AUTH_MODE": "your-value",
        "MCP_USERS": "your-value",
        "RATE_LIMIT": "your-value"
      }
    }
  }
}

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.

Valores que debes completar

  • MCP_API_KEY secreto env
    API key for authenticated tool calls. Issue one on /admin → API Keys. Required when AUTH_MODE=write or AUTH_MODE=all.
  • AUTH_MODE env
    Authentication mode: off (default), write (write+pii tools gated), all (every tool gated).
  • MCP_USERS secreto env
    Extra username/password users: 'alice:secret:read,write'. Comma-separated, colon-delimited.
  • RATE_LIMIT env
    Max tool calls per window per caller. Default 60.

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

Qué puede hacer

Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 9 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub markusvankempen, dueña del repo

  • … Aún sin revisar

    Sigue en mantenimiento

    Todavía no hemos leído este repo en GitHub

  • … Aún sin revisar

    Tiene licencia

    Todavía no hemos leído este repo en GitHub

  • – No aplica

    El endpoint responde

    Este se ejecuta en tu computadora; no hay endpoint en internet

  • – No aplica

    Inicio de sesión con OAuth

    Se ejecuta en tu computadora y usa ajustes locales en su lugar

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet

Comparado con otros en Otrosi

  • Más estrellas que el 0% de los otros 18703 servidores de esta categoría
  • Publicado en el registro más recientemente que el 50% de los otros 18703 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 18703 servidores de esta categoría

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.

Preguntas frecuentes

¿Es seguro MCP Ticket Demo?

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.

¿Qué claves o códigos necesita?

Debes completar: MCP_API_KEY, MCP_USERS

¿Se ejecuta en mi computadora o en la nube?

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).

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez –, y la última versión (1.9.0) llegó al registro hace 2 meses.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.

¿Qué puedo usar en su lugar?

En la misma categoría: Spec Driven Development, Remote Desktop Commander, awardlanes

Alternativas

Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.

Cómo leer una tarjeta:↓ Descargas por semanai★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

Spec Driven Development

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

de formulahendryInicial↓ 66/sem★ 440Actualizado hace 14 meses

Se ejecuta en tu computadora

Remote Desktop Commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

de desktop-commanderEn crecimiento★ 211Actualizado hace 4 días

Se ejecuta en la nube✓ desktopcommander.app

awardlanes

USDA award lanes for freight brokers

de awardlanes.comInicialActualizado hoy

Se ejecuta en la nube✓ awardlanes.com

README del creador

Abrir el README

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.

MCP Ticket Demo — A Full-Stack MCP Reference Server

A production-shaped MCP server you can run in under five minutes. Ships with 19 tools, 3 resources, 5 prompts, three auth modes, API key management, per-tool gates, rate limiting, a live observability dashboard, and a VS Code / Bob / Cursor / Windsurf control-plane extension.

Use it to learn MCP, test IDE integrations, run live demos, or as a reference implementation when building your own server.

Companion to MCP as a Platform: What I Learned Building a Portfolio of MCP Servers · MCP Dev Summit Toronto · 5 October 2026 · Talk slides →

Personal open-source project.


What makes this useful beyond a hello-world

Most MCP examples stop at "here is a tool that returns a string." This one goes further:

FeatureWhat you learn
19 tools with intent-named descriptionsNouns live in a schema, verbs stay as tools — not request(path, method)
3 resources (ticket://, tickets://open, schema://)resources/list enumerates instances; reads use the same gate() as the matching tool
5 MCP promptsUser-facing prompts vs agent-facing tools
Tool annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint: false)Client confirm/retry UX
Server instructionsThe README the model actually reads
`isError: true` on every failureClients don't need to parse ok: false
Attribution scar — create_ticket without requester_email201 is not done. The bot owns the ticket.
Schema discovery — get_schema → run_queryOne query tool beats a pile of query_* names
0 tools discovered — hand a laptop path to a cloud runnerThe silent failure with no error and no warning
stdio + SSE + Streamable HTTP from one codebaseThree transports, same 19 tools
Auth modes (off / write / all) + per-tool gate + per-tool auth lockSecurity is an operator concern
`tools/list_changed` broadcast when admin flips a gateSSE and Streamable HTTP sessions refresh; one-shot curl does not
Rate limiting with retry_after_seconds in the errorStop the model retrying in a loop
PII redaction on run_query schema=customersSame tool, same endpoint; the phone field is REDACTED without the pii scope
`/health` vs `/test`Alive ≠ works. Public /test is read-only; cwd stays off public /health
Live observability — /log page with counters, error log, call traceSee what the model is actually doing
Operate it over MCP — settings (one update_settings patch), users, API keys and settings import are tools, settings export is run_query schema=settings, and most need the admin scope even when auth is offThe control plane is part of the server, not a side door
Three ways to operate one server — /admin Remote config, the extension's Remote config tab, and the mcp-ticket-demo command lineSame steps, same Demo setup, checked against each other

Quickstart — five minutes

# Run directly from npm — no clone needed

npx mcp-ticket-demo # stdio (IDE spawns this) MCP_MODE=http npx mcp-ticket-demo # HTTP — opens /health /test /admin /mcp

Or clone and run

git clone https://github.com/markusvankempen/mcp-ticket-demo cd mcp-ticket-demo/server && npm install && npm run http

Then open in a browser:

URLWhat it shows
http://127.0.0.1:8787/healthIs the process alive? (cwd only on localhost)
http://127.0.0.1:8787/testRead-only smoke: seed tickets, schemas, and run_query
http://127.0.0.1:8787/adminAuth mode, API keys, tool gates, observability
http://127.0.0.1:8787/logCall counters, error log, full call trace
http://127.0.0.1:8787/toolsTool inventory with scope and auth status
From a terminal

The same mcp-ticket-demo command is also a client for a running server, local or deployed. With no arguments it is still the MCP server, so the IDE configs below keep working.

npx mcp-ticket-demo status                                    # http://127.0.0.1:8787/mcp by default

npx mcp-ticket-demo call run_query schema=tickets 'filter={"status":"open"}' limit=5 # any tool, values typed from its schema npx mcp-ticket-demo demo apply --user demo --password demo # users, keys, auth write, 30 calls / 60 s npx mcp-ticket-demo demo check --user demo --password demo # acts as each role and as nobody npx mcp-ticket-demo status --url https://my-host.example.com # a deployed server

--json prints one document for scripts, and exit codes are 0 done · 1 refused · 2 usage · 3 unreachable. Commands that delete or reconfigure ask first. Every command, option and example is in server/README.md, and a copy-paste page is at /clients/cli.html on a running desk. demo apply changes real settings, so use it on a server you own.

Laptop login: demo / demo. On a public bind (HOST=0.0.0.0, container, Code Engine) set ADMIN_PASSWORD — the default is disabled. Write smoke is /test?write=1 after admin sign-in.


Add to your IDE (one line)

VS Code / GitHub Copilot — .vscode/mcp.json:

{

"servers": { "mcp-ticket-demo": { "type": "stdio", "command": "npx", "args": ["mcp-ticket-demo"], "env": { "MCP_MODE": "stdio" } } } }

Bob / Cursor / Windsurf — .bob/mcp.json / .cursor/mcp.json / .windsurf/mcp.json:

{

"mcpServers": { "mcp-ticket-demo": { "command": "npx", "args": ["mcp-ticket-demo"], "env": { "MCP_MODE": "stdio" } } } }

Or install the extension and click Register server with all IDEs — it writes all four configs at once: VS Code Marketplace · Open VSX


Tools

The server has 19 tools. Six are the ticket desk, below. Eight operate the server itself: update_settings (every setting is one patch: auth mode, rate limit, call trace, desk sign-in, transports, events, gates, locks and scopes), set_mqtt, users, API keys, import_settings and sample traffic. Most of those need the admin scope even while auth is off; server/README.md lists the scope of each. Three are timers, start_timer, stop_timer and push_timer, with no get_timer (push_timer also streams the timer as events; see Events): you read a timer through the schema, run_query with schema=timers (server/README.md). push_log sends a log line as an event, and watch_system publishes the machine as system.info, including a container's cgroup limit. Plain lists are not tools of their own: run_query reads settings (the saved settings, importable as they are), system (the machine), events (the events already sent), and, with an admin credential, users, api_keys, trace, errors and counters. The page at /clients/dashboard.html draws them. Each of these tools is declared once and everything else is generated from that definition.

The ticket desk (6)
ToolScopeWhen to useLesson
describe_serverreadFirst call, and after any denialDiscovery beats guessing
create_ticketwriteOpen a ticket — always pass `requester_email`Omit it → 201 + bot owns the ticket
add_commentwriteComment on a known ticketWrite tool; gated
close_ticketwriteResolve a ticket, optionally add resolution notedestructiveHint: true, idempotentHint: true
get_schemareadBefore any queryNo name lists every name with its kind (data, query, tool); a name gives that shape or those arguments
run_queryreadThe one query tool: schema=tickets (find by status / requester_email / query, or one ticket by id with body and comments), schema=customers (phone is REDACTED without the pii scope), plus assets, timers, system, settings, events (and, for an admin, users, api_keys, trace, errors, counters)Nouns in a schema, verbs as tools. Replaces query_tickets / query_assets / …

3 Resources

Resources are addressable and pinnable — clients can subscribe and refresh. Tools are for agent loops.

URIWhat it returnsSame gate as
ticket://TCK-1001One ticket by idrun_query
tickets://openLive open ticket list (top 25)run_query
schema://ticketsQuery schema shape (also customers, assets)get_schema

Call resources/list to browse — you do not need to know a URI ahead of time. A denied read is a JSON-RPC error (not a fake ticket document you can pin).


5 Prompts

User-facing prompts — the user picks these, the model executes them.

PromptLesson it teaches
search-open-ticketsFind service-account scars in the live data

| attribution-scar | Create without requester_email → explain

Solo se muestra el principio; lee el resto en el repo

Pregunta a PopNx