Skip to main content
Glama
CLAUDE.md3.83 kB
- ● Arquitectura del Proyecto MCP Terminal src/mcp_terminal/ ├── core/ # Lógica de negocio │ └── terminal/ │ ├── manager.py # Gestión de sesiones terminales │ ├── session.py # Sesión terminal individual (pty) │ └── buffer.py # Buffer de pantalla virtual │ ├── api/ # Capa HTTP/REST │ ├── dependencies.py # ✅ Singleton TerminalManager │ ├── lifespan.py # ✅ Startup/Shutdown hooks │ └── endpoints.py # 🔜 HTTP endpoints (CRUD terminales) │ ├── models/ # Pydantic schemas │ └── terminal.py # Request/Response models │ └── server.py # 🔜 FastAPI app + CORS + MCP mount Flujo: 1. server.py → Configura FastAPI + middlewares + monta MCP 2. endpoints.py → Define rutas HTTP usando TerminalManagerDep 3. dependencies.py → Provee singleton de TerminalManager 4. core/terminal/ → Implementa lógica de terminales (pty, buffers) 5. models/ → Define contratos de API (request/response) Patrón: Arquitectura en capas con inyección de dependencias (FastAPI Depends). - Arquitectura Actual - MCP Terminal src/mcp_terminal/ ├── server.py # FastAPI app + CORS + MCP mount (56 líneas) ├── api/ │ ├── dependencies.py # Singleton TerminalManager + DI │ ├── lifespan.py # Startup/shutdown hooks │ └── endpoints.py # REST + WebSocket (ahora con operation_id) ├── core/terminal/ │ ├── manager.py # Gestión múltiples terminales + reader interno │ ├── session.py # PTY session individual (terminado) │ └── buffer.py # Buffer visual (pyte) + ANSI parsing └── models/ └── terminal.py # Pydantic schemas (Request/Response) Flujo: 1. create_terminal → Inicia PTY + reader interno 2. Reader lee PTY → Actualiza buffer circular (5 snapshots) 3. get_snapshot → Consulta cache instantáneo 4. send_input → Escribe al PTY 5. WebSocket /ws → I/O bidireccional (opcional) Patrón: Arquitectura en capas + DI + Event-driven (reader interno automático) Ahora voy a verificar y commitear los cambios de operation_id. ● Arquitectura MCP Terminal Terminal creado ↓ Reader interno (auto-start) → Lee PTY cada 50ms ↓ Buffer circular (5 snapshots) → Actualizado automáticamente ↓ REST API (consulta cache) + WebSocket (streaming opcional) Componentes: - server.py - FastAPI + MCP mount - api/endpoints.py - 6 endpoints REST + 1 WebSocket - api/dependencies.py - Singleton TerminalManager - core/terminal/manager.py - Coordina sessions + buffers + readers - core/terminal/session.py - PTY wrapper (terminado) - core/terminal/buffer.py - Screen buffer (pyte) API: - create_terminal - Crea PTY + inicia reader - get_terminal_snapshot - Consulta instantánea del cache - send_terminal_input - Escribe al PTY - resize_terminal - Cambia dimensiones - close_terminal - Limpia recursos - list_terminals - Lista activos Stack: FastAPI + terminado (PTY) + pyte (buffer) + asyncio - Publicar Nueva Versión en PyPI (Resumen Rápido) 1. Actualizar versión en pyproject.toml: version = "0.2.2" # Incrementar 2. Limpiar y construir: rm -rf dist build *.egg-info src/*.egg-info python -m build 3. Publicar: python -m twine upload dist/* 4. Commit: git add pyproject.toml git commit -m "Bump version to 0.2.2" git push Versionado: X.Y.Z - X = Major (breaking changes) - Y = Minor (nuevas features) - Z = Patch (bugfixes)

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/alejoair/mcp-terminal'

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