Tizón MCP Server

Tizón MCP Server

MCP server for operating a fictional restaurant, providing tools to consult the menu, manage active orders, view shift summaries, update dish availability, and advance order statuses. Includes a playground that teaches JSON-RPC by showing live protocol interactions.

Category
访问服务器

README

Tizón · Servidor MCP

Un servidor Model Context Protocol para operar un restaurante, con un playground que enseña el JSON-RPC en vivo.

Tizón es ficticio. Es la tercera pieza del mismo restaurante inventado, junto con su sitio y la app de pedidos.

pnpm install
pnpm dev

Instalarlo en un cliente MCP

En Claude Code:

claude mcp add tizon -- npx tsx bin/tizon-mcp.ts

Cualquier host MCP sirve — Claude Code, Cursor, VS Code, el tuyo. El servidor también habla HTTP en /api/mcp, así que se puede consumir remoto.

La superficie es idéntica por los dos transportes: crearServidor() no sabe por dónde lo están hablando. El transporte es detalle de despliegue, no de diseño.

Las cinco herramientas

Herramienta Qué hace
consultar_carta Platillos con precio, estación de cocina y si están agotados
pedidos_activos Comandas en cocina, con minutos de espera y cuáles van retrasadas
resumen_del_turno Entregadas, retrasadas, espera promedio, qué se cancela más
marcar_disponibilidad Agotar un platillo o reponerlo
avanzar_pedido Mover una comanda al siguiente estado

Las decisiones, que es de lo que va el proyecto

Que algo sea un servidor MCP no dice nada. Lo que dice algo es cómo está diseñada la superficie.

Cinco herramientas, no veinte. Cada una responde a una pregunta o hace una acción que alguien en el restaurante haría. Más herramientas no es más capacidad: es más superficie donde el modelo puede elegir mal.

No hay escotilla genérica. No existe ejecutar_consulta ni nada que acepte SQL o un filtro arbitrario. Es la omisión más importante del servidor: una escotilla lo convierte en una API cruda, hace imposible razonar sobre qué puede pasar, y traslada al modelo decisiones que le tocan al servidor. Hay una prueba que verifica que no exista.

Las descripciones dicen cuándo llamar, no solo qué hace la herramienta. Es lo que más mueve la aguja para que el modelo acierte a elegirla, y hay una prueba que falla si alguna se queda demasiado corta.

La salida es texto para leer, no un volcado de JSON. El consumidor es un modelo: un texto compacto y etiquetado cuesta menos tokens y se interpreta mejor que un objeto anidado.

Los errores enseñan. Un folio inexistente devuelve los folios que sí existen; un identificador de platillo inválido devuelve los válidos. Un error que solo dice «no encontrado» obliga al modelo a adivinar otra vez; uno que dice qué sí hay le permite corregirse en el mismo turno.

Fallar claro antes que fingir éxito. Avanzar una comanda ya entregada es un error, no un no-op silencioso. Si el modelo cree que avanzó algo, seguirá razonando sobre algo falso.

Dos superficies sobre un mismo estado. Las herramientas MCP devuelven texto porque su consumidor es un modelo; /api/tablero devuelve JSON porque su consumidor es una interfaz. Hacer que la interfaz parsee el texto pensado para el modelo sería atarlas por el lado equivocado.

El playground

/ es un cliente MCP, no un chat. Pide tools/list al servidor, deja llamar cada herramienta con argumentos reales y enseña el JSON-RPC que va y viene. Al lado, el tablero que esas llamadas modifican.

No hay un modelo de por medio, a propósito. Un playground que enseña el protocolo demuestra más sobre MCP que un chat donde un modelo hace de intermediario y tapa el mecanismo. Para ver el agente de verdad está la instalación por stdio, arriba.

El estado vive en memoria del servidor y se resiembra en cada arranque en frío, así que nadie le arruina la demo a nadie.

Pruebas

pnpm prueba:mcp

Diecisiete comprobaciones que hablan el protocolo de verdad — levantan el servidor por stdio y le mandan JSON-RPC, sin mockear el SDK y sin llamar a ningún modelo. Cubren descubrimiento, lectura, acción, idempotencia y los errores que enseñan. Dos de ellas verifican decisiones de diseño y no implementación: que las descripciones expliquen cuándo usar cada herramienta, y que no haya aparecido una escotilla genérica.

Notas de implementación

Contra la especificación 2026-07-28, que pasó a ser sin estado: no hay handshake de initialize ni sesión a nivel de protocolo. Por eso se construye un servidor por petición y esto escala detrás de un balanceador normal, sin sesiones pegajosas. SDK de TypeScript v2.

Tres cosas que solo salieron probando, por si le ahorran a alguien la tarde:

  • createMcpHandler devuelve un objeto { fetch, notify, bus, close }, no una función. Exportarlo directo como route handler compila y revienta en runtime.
  • Su .fetch tampoco encaja como route handler de Next: recibe (request, options?) y Next pasa (request, context). Hay que envolverlo.
  • En ImageResponse, satori exige display explícito en cualquier div con más de un hijo — y texto + <br/> + texto son tres. El build falla.

Capturas

tools/shot.mjs maneja Chrome por CDP, avisa si algo desborda a lo ancho y guarda la página completa.

pnpm shot http://localhost:3000 capturas/playground.png
ESCALA=2 pnpm shot ...   # doble resolución, para publicar
EVAL='...' pnpm shot ... # ejecuta y muestra lo que devuelva

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选