tin-canMCP
tin-canMCP
Una plantilla prescriptiva para crear servidores MCP grandes (más de 20 herramientas) organizados como un catálogo escalonado con un intermediario (broker).
Cada servidor tin-canMCP expone exactamente 7 herramientas al cliente de IA, independientemente del tamaño del catálogo. El catálogo en sí puede contener cientos de herramientas; el intermediario limita la visibilidad para que la IA solo vea un subconjunto acotado y relevante para la tarea en cualquier momento.
Cuándo usar esta plantilla
Utilice tin-canMCP cuando su MCP vaya a envolver muchas herramientas (binarios CLI, puntos finales de API, comandos de AppleScript, métodos de SDK). El patrón de intermediario mantiene el número de herramientas visibles para la IA por debajo de un límite amigable para la caché.
NO utilice tin-canMCP si solo necesita de 3 a 10 herramientas sin agrupación. Un servidor FastMCP simple es más sencillo.
Related MCP server: production-grade-mcp-agentic-system
Las 7 herramientas que expone cada servidor
Herramienta | Propósito |
| Muestra el estado de activación actual y sugerencias de enrutamiento |
| Lista todos los grupos en el catálogo |
| Busca en todo el catálogo por nombre/descripción (no se requiere activación) |
| Activa grupos/niveles para que sus herramientas se puedan ejecutar |
| Amplía la activación al siguiente nivel (canónico → avanzado → interno) |
| Muestra qué herramientas se pueden ejecutar actualmente |
| Ejecuta una herramienta activa por nombre con argumentos |
Las herramientas de dominio solo se alcanzan a través de catalog_run_tool. Consulte HOW-TO-USE.md para conocer el flujo de trabajo completo.
Inicio rápido
pip install -r requirements.txt
cp .env.example .env
# Scaffold a catalog for your domain
python scripts/scaffold_catalog.py \
--name mydomain \
--source cli \
--tools list,get,create,delete \
--out catalog-runtime \
--force
# Validate the registry is structurally sound
python scripts/validate_registry.py catalog-runtime
# Run the server
python main.py --transport=stdioEn este punto, el servidor se carga, expone las 7 herramientas del intermediario, y catalog_run_tool se negará a ejecutar nada hasta que complete los marcadores TODO en catalog-runtime/registry/tools.json y los manifiestos por herramienta en catalog-runtime/tools/.
Siguiente: lea HOW-TO-USE.md; le guiará a través de la creación de manifiestos de herramientas, estrategias de agrupación y asignación de niveles.
Diseño del repositorio
.
├── app/
│ ├── catalog_runtime/ # Broker, loader, executor (DO NOT modify)
│ ├── tools/ # Registers the 7 broker MCP tools (DO NOT modify)
│ ├── prompts/ # Optional MCP prompts
│ ├── config.py # Env-backed settings
│ └── server.py # FastMCP server
├── catalog-runtime/
│ ├── registry/ # YOUR 7 registry JSON files — edit these
│ ├── tools/ # YOUR per-tool manifests — edit these
│ └── schema/ # JSON Schemas for registry files (reference)
├── scripts/
│ ├── scaffold_catalog.py # Generate a registry skeleton
│ └── validate_registry.py # Check invariants (run in CI)
├── ai-prompts/ # Master prompt + per-source hints for AI implementation
├── docs/
│ └── catalog-runtime-template.md # Full schema contract reference
├── main.py
└── HOW-TO-USE.md # Prescriptive authoring workflowConfiguración
Variables de entorno (a través de .env o shell):
VAR_CATALOG_RUNTIME_DIR— ruta a su tiempo de ejecución de catálogo (predeterminado:catalog-runtime/local del repositorio)VAR_SERVER_NAME— nombre del servidor MCP mostrado a los clientes (predeterminado:tin-canMCP)VAR_COMMAND_TIMEOUT_SECONDS— tiempo de espera por herramienta (predeterminado:20)VAR_MAX_OUTPUT_CHARS— umbral de truncamiento para stdout/stderr (predeterminado:12000)MCP_TRANSPORT—stdio,sseoweb(predeterminado:stdio)
Qué NO hacer
No añada decoradores
@mcp.tool()para sus herramientas de dominio enapp/tools/. Eso anula el propósito del intermediario. Añada entradas al catálogo en su lugar.No aumente
max_tools_per_activationpor encima de ~15. El objetivo principal es una superficie visible acotada.No ponga todas las herramientas en
canonical. Utilice los nivelesadvancedeinternalpara diferir las herramientas de nicho.No omita
validate_registry.py. Los errores de referencia cruzada son silenciosos.
Agradecimientos
Esta plantilla se inspiró en el trabajo de josharsh sobre patrones de intermediarios MCP.
Licencia
MIT. Consulte LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Search, vet & assemble MCP servers from your agent: verified tools, risk labels, and trust scores.
Patterns for designing and reviewing AI skills, agents, and multi-agent workflows. Find guidance on context economy, delegation, verification, and tool design; inspect claims, worked examples, maturity labels, and source references. Five read-only tools let agents discover relevant patterns, compare concise cards, read specific sections, and explore relationships. Hosted Streamable HTTP at https://agentic-atlas.dev/mcp/ — no installation, account, or API key required. Browse the atlas at https://agentic-atlas.dev/.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA progressive-disclosure gateway for MCP servers that keeps tool lists small by exposing one top-level tool per server, allowing agents to search, list, inspect, and call underlying tools within a selected domain.14MIT
- AlicenseNot gradedqualityDmaintenanceA production-grade MCP server designed for multi-tenant, authenticated, and observable AI agent systems, enabling secure tool execution across heterogeneous data sources.66MIT
- FlicenseNot gradedqualityDmaintenanceProduction-grade FastMCP 3.x server template for scalable semantic tool retrieval, dynamic providers, paginated tool lists, and role-based progressive disclosure.-
- FlicenseNot gradedqualityCmaintenanceA browse-first MCP middleware that provides an LLM-friendly catalogue for discovering and invoking tools across multiple upstream MCP servers, reducing context overhead.-