mcp-emtrafesa 1.0.1 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.es.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  > Un servidor del Protocolo de Contexto de Modelo (MCP) para acceder a los servicios de transporte de autobuses de Emtrafesa en Perú
4
4
 
5
+ [![NPM Version](https://img.shields.io/npm/v/mcp-emtrafesa?style=flat&logo=npm&logoColor=red)](https://www.npmjs.com/package/mcp-emtrafesa)
5
6
  [![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=flat&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
6
7
  [![Bun](https://img.shields.io/badge/Bun-000000?style=flat&logo=bun&logoColor=white)](https://bun.sh)
7
8
  [![MCP](https://img.shields.io/badge/MCP-Model%20Context%20Protocol-blue)](https://modelcontextprotocol.io)
@@ -12,23 +13,36 @@
12
13
 
13
14
  **MCP Emtrafesa** es un servidor del Protocolo de Contexto de Modelo que proporciona a los asistentes de IA acceso fluido al sistema de transporte de autobuses Emtrafesa de Perú. Consulta terminales, horarios, boletos y preguntas frecuentes a través de herramientas MCP estandarizadas.
14
15
 
15
- ## 🚀 Características
16
+ ---
16
17
 
17
- - **🏢 Gestión de Terminales**: Accede a todos los terminales de autobuses en todo el Perú
18
- - **📅 Consulta de Horarios**: Horarios de salida y llegada en tiempo real
19
- - **🎫 Búsqueda de Boletos**: Busca boletos comprados por DNI y correo electrónico
20
- - **❓ Soporte de FAQ**: Accede a preguntas frecuentes
21
- - **🔍 Planificación de Rutas**: Encuentra rutas disponibles entre terminales
22
- - **🌍 Específico para Perú**: Formatos de fecha localizados y manejo de zona horaria
18
+ ## ¿Qué puedes hacer con este MCP?
23
19
 
24
- ## 📦 Instalación
20
+ - **Buscar terminales** de buses en todo el Perú
21
+ - **Consultar horarios** entre cualquier par de ciudades
22
+ - **Ver tus boletos comprados** usando tu DNI y correo electrónico
23
+ - **Descargar tu boleto en PDF** para imprimir o compartir
24
+ - **Obtener respuestas** a preguntas frecuentes
25
25
 
26
- ### Prerrequisitos
26
+ ---
27
27
 
28
- - [Bun](https://bun.sh) v1.2.10 o superior
29
- - Node.js v18+ (para soporte de TypeScript)
28
+ ## Inicio Rápido
30
29
 
31
- ### Inicio Rápido
30
+ ### Opción 1: Usar directamente con npx (Recomendado)
31
+
32
+ Agrega a la configuración de tu cliente MCP:
33
+
34
+ ```json
35
+ {
36
+ "mcpServers": {
37
+ "mcp-emtrafesa": {
38
+ "command": "npx",
39
+ "args": ["mcp-emtrafesa@latest"]
40
+ }
41
+ }
42
+ }
43
+ ```
44
+
45
+ ### Opción 2: Clonar y ejecutar localmente
32
46
 
33
47
  ```bash
34
48
  # Clona el repositorio
@@ -40,143 +54,125 @@ bun install
40
54
 
41
55
  # Inicia el servidor MCP
42
56
  bun run index.ts
43
-
44
- # Opcional: Inicia con el Inspector del Protocolo de Contexto de Modelo
45
- bunx @modelcontextprotocol/inspector bun index.ts
46
57
  ```
47
58
 
48
- ## 🔧 Uso
59
+ > **Tip:** Usa el Inspector MCP para depuración: `bunx @modelcontextprotocol/inspector bun index.ts`
49
60
 
50
- ### Integración con Cliente MCP
61
+ ---
51
62
 
52
- Configura tu cliente MCP para conectarse a este servidor:
63
+ ## Herramientas Disponibles
53
64
 
54
- ```json
55
- {
56
- "mcpServers": {
57
- "mcp-emtrafesa": {
58
- "command": "bun",
59
- "args": ["run", "index.ts"],
60
- "cwd": "/ruta/a/mcp-emtrafesa"
61
- }
62
- }
63
- }
64
- ```
65
+ | Herramienta | Descripción | Parámetros |
66
+ |-------------|-------------|------------|
67
+ | `get-terminals` | Obtiene todos los terminales de buses del Perú | Ninguno |
68
+ | `get-arrival-terminal` | Obtiene terminales de destino para un origen | `departureTerminalId` |
69
+ | `get-departure-schedules` | Obtiene horarios entre dos terminales | `departureTerminalId`, `arrivalTerminalId`, `date?` |
70
+ | `get-latest-purchased-tickets` | Busca tus boletos comprados | `DNI`, `email` |
71
+ | `download-ticket-pdf` | Descarga tu boleto como archivo PDF | `ticketCode` |
72
+ | `get-frequently-asked-questions` | Obtiene preguntas frecuentes del servicio | Ninguno |
65
73
 
66
- ### Herramientas Disponibles
74
+ ---
67
75
 
68
- | Herramienta | Descripción | Parámetros |
69
- | -------------------------------- | -------------------------------------------------- | --------------------------------------------------- |
70
- | `get-terminals` | Obtiene todos los terminales de autobuses del Perú | Ninguno |
71
- | `get-arrival-terminal` | Obtiene terminales de destino para origen | `departureTerminalId` |
72
- | `get-departure-schedules` | Obtiene horarios entre terminales | `departureTerminalId`, `arrivalTerminalId`, `date?` |
73
- | `get-latest-purchased-tickets` | Busca boletos por información del usuario | `DNI`, `email` |
74
- | `get-frequently-asked-questions` | Obtiene FAQs sobre el servicio | Ninguno |
76
+ ## Ejemplos de Uso
75
77
 
76
- ### Ejemplos de Consultas
78
+ ### Obtener todos los terminales
77
79
 
78
80
  ```typescript
79
- // Obtener todos los terminales
80
81
  const terminals = await client.callTool("get-terminals");
82
+ ```
81
83
 
82
- // Buscar rutas de Chiclayo a Trujillo
84
+ ### Buscar horarios de Chiclayo a Trujillo
85
+
86
+ ```typescript
83
87
  const schedules = await client.callTool("get-departure-schedules", {
84
88
  departureTerminalId: "002",
85
89
  arrivalTerminalId: "001",
86
90
  date: "14/07/2025", // formato DD/MM/YYYY
87
91
  });
92
+ ```
88
93
 
89
- // Buscar boletos comprados
94
+ ### Ver tus boletos comprados
95
+
96
+ ```typescript
90
97
  const tickets = await client.callTool("get-latest-purchased-tickets", {
91
98
  DNI: "12345678",
92
99
  email: "usuario@ejemplo.com",
93
100
  });
94
101
  ```
95
102
 
96
- ## Estructura del Proyecto
103
+ ### Descargar tu boleto en PDF
97
104
 
98
- ```
99
- mcp-emtrafesa/
100
- ├── 📁 config/ # Configuración de API
101
- │ └── api.ts # Cabeceras y configuraciones base
102
- ├── 📁 internal/ # Lógica de negocio principal
103
- │ └── emtrafesa/ # Código específico de Emtrafesa
104
- │ ├── services.ts # Funciones del cliente API
105
- │ └── types.ts # Definiciones de tipos TypeScript
106
- ├── 📁 sandbox/ # Utilidades de desarrollo
107
- │ └── post-consulta.html # Referencia para análisis HTML
108
- ├── 📄 index.ts # Punto de entrada del servidor MCP
109
- ├── 📄 package.json # Dependencias y scripts
110
- ├── 📄 tsconfig.json # Configuración de TypeScript
111
- └── 📄 biome.json # Reglas de formateo de código
105
+ ```typescript
106
+ const pdf = await client.callTool("download-ticket-pdf", {
107
+ ticketCode: "BP01-123456",
108
+ });
109
+ // Devuelve un PDF codificado en base64 que puedes guardar o mostrar
112
110
  ```
113
111
 
114
- ## 🛡️ Integración de API
112
+ ---
115
113
 
116
- ### Endpoints Soportados
114
+ ## Requisitos
117
115
 
118
- - **Terminales**: `GET /Home/GetSucursales`
119
- - **Destinos**: `GET /Home/GetSucursalesDestino`
120
- - **Horarios**: `POST /Home/GetItinerario` (JSON)
121
- - **Boletos**: `POST /Consulta/PostConsulta` (Codificado en formulario)
122
- - **FAQs**: `GET /Home/GetPreguntasFrecuentes`
116
+ - [Bun](https://bun.sh) v1.2.10+ o Node.js v18+
117
+ - Un cliente compatible con MCP (Claude Desktop, etc.)
123
118
 
124
- ### Manejo de Datos
119
+ ---
125
120
 
126
- - **APIs JSON**: Deserialización directa para datos estructurados
127
- - **Web Scraping HTML**: Análisis basado en Cheerio para información de boletos
128
- - **Formatos de Fecha**: Zona horaria de Perú (America/Lima) con formato DD/MM/YYYY
129
- - **Manejo de Errores**: Degradación elegante con respuestas de error JSON
121
+ ## Estructura del Proyecto
122
+
123
+ ```
124
+ mcp-emtrafesa/
125
+ ├── src/
126
+ │ ├── common/ # Herramientas y utilidades compartidas
127
+ │ ├── config/ # Configuración de API
128
+ │ ├── internal/ # Lógica de negocio (servicios, tipos)
129
+ │ └── lib/ # Utilidades auxiliares
130
+ ├── index.ts # Punto de entrada del servidor MCP
131
+ ├── package.json
132
+ └── tsconfig.json
133
+ ```
130
134
 
131
- ## 🧪 Desarrollo
135
+ ---
132
136
 
133
- ### Formateo de Código
137
+ ## Desarrollo
134
138
 
135
139
  ```bash
136
- # Formatear código con Biome
140
+ # Formatear código
137
141
  bun run format
138
142
 
139
- # Verificar formateo sin escribir
143
+ # Verificar formateo
140
144
  bunx biome check
141
145
  ```
142
146
 
143
- ### Seguridad de Tipos
147
+ ---
144
148
 
145
- - Configuración estricta de TypeScript con `noUncheckedIndexedAccess`
146
- - Esquemas Zod para validación en tiempo de ejecución
147
- - Mapeo exacto de campos de API en definiciones de tipos
149
+ ## Contribuciones
148
150
 
149
- ### Pruebas de Análisis HTML
151
+ 1. Haz fork del repositorio
152
+ 2. Crea una rama de característica (`git checkout -b feature/nueva-caracteristica`)
153
+ 3. Formatea tu código (`bun run format`)
154
+ 4. Confirma tus cambios
155
+ 5. Abre un Pull Request
150
156
 
151
- Usa el archivo de referencia para probar cambios:
157
+ ---
152
158
 
153
- ```bash
154
- # Ver la referencia de estructura HTML
155
- open sandbox/post-consulta.html
156
- ```
157
-
158
- ## 🤝 Contribuciones
159
+ ## Licencia
159
160
 
160
- 1. **Haz fork** del repositorio
161
- 2. **Crea** una rama de característica (`git checkout -b feature/caracteristica-increible`)
162
- 3. **Formatea** tu código (`bun run format`)
163
- 4. **Confirma** tus cambios (`git commit -m 'Agrega característica increíble'`)
164
- 5. **Envía** a la rama (`git push origin feature/caracteristica-increible`)
165
- 6. **Abre** un Pull Request
161
+ Licencia MIT - ver [LICENSE](LICENSE) para más detalles.
166
162
 
167
- ## 📄 Licencia
168
-
169
- Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo [LICENSE](LICENSE) para más detalles.
163
+ ---
170
164
 
171
165
  ## Reconocimientos
172
166
 
173
- - [Emtrafesa](https://emtrafesa.pe) por proporcionar la API de transporte
174
- - [Model Context Protocol](https://modelcontextprotocol.io) por la especificación MCP
175
- - [@tecncr](https://github.com/tecncr) por los insights de endpoints de API
176
- - [Bun](https://bun.sh) por el runtime rápido de JavaScript
167
+ - [Emtrafesa](https://emtrafesa.pe) - Proveedor de la API de transporte
168
+ - [Model Context Protocol](https://modelcontextprotocol.io) - Especificación MCP
169
+ - [@tecncr](https://github.com/tecncr) - Insights de endpoints de API
170
+ - [Bun](https://bun.sh) - Runtime rápido de JavaScript
171
+
172
+ ---
177
173
 
178
174
  ## Soporte
179
175
 
180
- - **Issues**: [GitHub Issues](https://github.com/georgegiosue/mcp-emtrafesa/issues)
181
- - **Discusiones**: [GitHub Discussions](https://github.com/georgegiosue/mcp-emtrafesa/discussions)
182
- - **Email**: [peraldonamoc@gmail.com](mailto:peraldonamoc@gmail.com)
176
+ - [GitHub Issues](https://github.com/georgegiosue/mcp-emtrafesa/issues)
177
+ - [GitHub Discussions](https://github.com/georgegiosue/mcp-emtrafesa/discussions)
178
+ - Email: [peraldonamoc@gmail.com](mailto:peraldonamoc@gmail.com)
package/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  > A Model Context Protocol (MCP) server for accessing Emtrafesa bus transportation services in Peru
4
4
 
5
+ [![NPM Version](https://img.shields.io/npm/v/mcp-emtrafesa?style=flat&logo=npm&logoColor=red)](https://www.npmjs.com/package/mcp-emtrafesa)
5
6
  [![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=flat&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
6
7
  [![Bun](https://img.shields.io/badge/Bun-000000?style=flat&logo=bun&logoColor=white)](https://bun.sh)
7
8
  [![MCP](https://img.shields.io/badge/MCP-Model%20Context%20Protocol-blue)](https://modelcontextprotocol.io)
@@ -12,23 +13,36 @@
12
13
 
13
14
  **MCP Emtrafesa** is a Model Context Protocol server that provides AI assistants with seamless access to Peru's Emtrafesa bus transportation system. Query terminals, schedules, tickets, and FAQs through standardized MCP tools.
14
15
 
15
- ## 🚀 Features
16
+ ---
16
17
 
17
- - **🏢 Terminal Management**: Access all bus terminals across Peru
18
- - **📅 Schedule Queries**: Real-time departure and arrival schedules
19
- - **🎫 Ticket Lookup**: Search purchased tickets by DNI and email
20
- - **❓ FAQ Support**: Access frequently asked questions
21
- - **🔍 Route Planning**: Find available routes between terminals
22
- - **🌍 Peru-Specific**: Localized date formats and timezone handling
18
+ ## What can you do with this MCP?
23
19
 
24
- ## 📦 Installation
20
+ - **Find bus terminals** across Peru
21
+ - **Check schedules** between any two cities
22
+ - **Look up your purchased tickets** using your DNI and email
23
+ - **Download your ticket as PDF** for printing or sharing
24
+ - **Get answers** to frequently asked questions
25
25
 
26
- ### Prerequisites
26
+ ---
27
27
 
28
- - [Bun](https://bun.sh) v1.2.10 or higher
29
- - Node.js v18+ (for TypeScript support)
28
+ ## Quick Start
30
29
 
31
- ### Quick Start
30
+ ### Option 1: Use directly with npx (Recommended)
31
+
32
+ Add to your MCP client configuration:
33
+
34
+ ```json
35
+ {
36
+ "mcpServers": {
37
+ "mcp-emtrafesa": {
38
+ "command": "npx",
39
+ "args": ["mcp-emtrafesa@latest"]
40
+ }
41
+ }
42
+ }
43
+ ```
44
+
45
+ ### Option 2: Clone and run locally
32
46
 
33
47
  ```bash
34
48
  # Clone the repository
@@ -40,143 +54,125 @@ bun install
40
54
 
41
55
  # Start the MCP server
42
56
  bun run index.ts
43
-
44
- # Optional: Start with Model Context Protocol Inspector
45
- bunx @modelcontextprotocol/inspector bun index.ts
46
57
  ```
47
58
 
48
- ## 🔧 Usage
59
+ > **Tip:** Use the MCP Inspector for debugging: `bunx @modelcontextprotocol/inspector bun index.ts`
49
60
 
50
- ### MCP Client Integration
61
+ ---
51
62
 
52
- Configure your MCP client to connect to this server:
63
+ ## Available Tools
53
64
 
54
- ```json
55
- {
56
- "mcpServers": {
57
- "mcp-emtrafesa": {
58
- "command": "bun",
59
- "args": ["run", "index.ts"],
60
- "cwd": "/path/to/mcp-emtrafesa"
61
- }
62
- }
63
- }
64
- ```
65
+ | Tool | Description | Parameters |
66
+ |------|-------------|------------|
67
+ | `get-terminals` | Get all bus terminals in Peru | None |
68
+ | `get-arrival-terminal` | Get destination terminals for a given origin | `departureTerminalId` |
69
+ | `get-departure-schedules` | Get schedules between two terminals | `departureTerminalId`, `arrivalTerminalId`, `date?` |
70
+ | `get-latest-purchased-tickets` | Search your purchased tickets | `DNI`, `email` |
71
+ | `download-ticket-pdf` | Download your ticket as a PDF file | `ticketCode` |
72
+ | `get-frequently-asked-questions` | Get FAQs about the service | None |
65
73
 
66
- ### Available Tools
74
+ ---
67
75
 
68
- | Tool | Description | Parameters |
69
- | -------------------------------- | ------------------------------------ | --------------------------------------------------- |
70
- | `get-terminals` | Get all bus terminals in Peru | None |
71
- | `get-arrival-terminal` | Get destination terminals for origin | `departureTerminalId` |
72
- | `get-departure-schedules` | Get schedules between terminals | `departureTerminalId`, `arrivalTerminalId`, `date?` |
73
- | `get-latest-purchased-tickets` | Search tickets by user info | `DNI`, `email` |
74
- | `get-frequently-asked-questions` | Get FAQs about the service | None |
76
+ ## Usage Examples
75
77
 
76
- ### Example Queries
78
+ ### Get all terminals
77
79
 
78
80
  ```typescript
79
- // Get all terminals
80
81
  const terminals = await client.callTool("get-terminals");
82
+ ```
81
83
 
82
- // Find routes from Chiclayo to Trujillo
84
+ ### Find schedules from Chiclayo to Trujillo
85
+
86
+ ```typescript
83
87
  const schedules = await client.callTool("get-departure-schedules", {
84
88
  departureTerminalId: "002",
85
89
  arrivalTerminalId: "001",
86
90
  date: "14/07/2025", // DD/MM/YYYY format
87
91
  });
92
+ ```
88
93
 
89
- // Look up purchased tickets
94
+ ### Look up your purchased tickets
95
+
96
+ ```typescript
90
97
  const tickets = await client.callTool("get-latest-purchased-tickets", {
91
98
  DNI: "12345678",
92
99
  email: "user@example.com",
93
100
  });
94
101
  ```
95
102
 
96
- ## Project Structure
103
+ ### Download your ticket as PDF
97
104
 
98
- ```
99
- mcp-emtrafesa/
100
- ├── 📁 config/ # API configuration
101
- │ └── api.ts # Headers and base settings
102
- ├── 📁 internal/ # Core business logic
103
- │ └── emtrafesa/ # Emtrafesa-specific code
104
- │ ├── services.ts # API client functions
105
- │ └── types.ts # TypeScript type definitions
106
- ├── 📁 sandbox/ # Development utilities
107
- │ └── post-consulta.html # HTML parsing reference
108
- ├── 📄 index.ts # MCP server entry point
109
- ├── 📄 package.json # Dependencies and scripts
110
- ├── 📄 tsconfig.json # TypeScript configuration
111
- └── 📄 biome.json # Code formatting rules
105
+ ```typescript
106
+ const pdf = await client.callTool("download-ticket-pdf", {
107
+ ticketCode: "BP01-123456",
108
+ });
109
+ // Returns a base64-encoded PDF that can be saved or displayed
112
110
  ```
113
111
 
114
- ## 🛡️ API Integration
112
+ ---
115
113
 
116
- ### Supported Endpoints
114
+ ## Requirements
117
115
 
118
- - **Terminals**: `GET /Home/GetSucursales`
119
- - **Destinations**: `GET /Home/GetSucursalesDestino`
120
- - **Schedules**: `POST /Home/GetItinerario` (JSON)
121
- - **Tickets**: `POST /Consulta/PostConsulta` (Form-encoded)
122
- - **FAQs**: `GET /Home/GetPreguntasFrecuentes`
116
+ - [Bun](https://bun.sh) v1.2.10+ or Node.js v18+
117
+ - An MCP-compatible client (Claude Desktop, etc.)
123
118
 
124
- ### Data Handling
119
+ ---
125
120
 
126
- - **JSON APIs**: Direct deserialization for structured data
127
- - **HTML Scraping**: Cheerio-based parsing for ticket information
128
- - **Date Formats**: Peru timezone (America/Lima) with DD/MM/YYYY format
129
- - **Error Handling**: Graceful degradation with JSON error responses
121
+ ## Project Structure
122
+
123
+ ```
124
+ mcp-emtrafesa/
125
+ ├── src/
126
+ │ ├── common/ # Shared tools and utilities
127
+ │ ├── config/ # API configuration
128
+ │ ├── internal/ # Core business logic (services, types)
129
+ │ └── lib/ # Helper utilities
130
+ ├── index.ts # MCP server entry point
131
+ ├── package.json
132
+ └── tsconfig.json
133
+ ```
130
134
 
131
- ## 🧪 Development
135
+ ---
132
136
 
133
- ### Code Formatting
137
+ ## Development
134
138
 
135
139
  ```bash
136
- # Format code with Biome
140
+ # Format code
137
141
  bun run format
138
142
 
139
- # Check formatting without writing
143
+ # Check formatting
140
144
  bunx biome check
141
145
  ```
142
146
 
143
- ### Type Safety
147
+ ---
144
148
 
145
- - Strict TypeScript configuration with `noUncheckedIndexedAccess`
146
- - Zod schemas for runtime validation
147
- - Exact API field mapping in type definitions
149
+ ## Contributing
148
150
 
149
- ### Testing HTML Parsing
151
+ 1. Fork the repository
152
+ 2. Create a feature branch (`git checkout -b feature/new-feature`)
153
+ 3. Format your code (`bun run format`)
154
+ 4. Commit your changes
155
+ 5. Open a Pull Request
150
156
 
151
- Use the reference file for testing changes:
157
+ ---
152
158
 
153
- ```bash
154
- # View the HTML structure reference
155
- open sanbox/post-consulta.html
156
- ```
157
-
158
- ## 🤝 Contributing
159
+ ## License
159
160
 
160
- 1. **Fork** the repository
161
- 2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)
162
- 3. **Format** your code (`bun run format`)
163
- 4. **Commit** your changes (`git commit -m 'Add amazing feature'`)
164
- 5. **Push** to the branch (`git push origin feature/amazing-feature`)
165
- 6. **Open** a Pull Request
161
+ MIT License - see [LICENSE](LICENSE) for details.
166
162
 
167
- ## 📄 License
168
-
169
- This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
163
+ ---
170
164
 
171
165
  ## Acknowledgments
172
166
 
173
- - [Emtrafesa](https://emtrafesa.pe) for providing the transportation API
174
- - [Model Context Protocol](https://modelcontextprotocol.io) for the MCP specification
175
- - [@tecncr](https://github.com/tecncr) for API endpoint insights
176
- - [Bun](https://bun.sh) for the fast JavaScript runtime
167
+ - [Emtrafesa](https://emtrafesa.pe) - Transportation API provider
168
+ - [Model Context Protocol](https://modelcontextprotocol.io) - MCP specification
169
+ - [@tecncr](https://github.com/tecncr) - API endpoint insights
170
+ - [Bun](https://bun.sh) - Fast JavaScript runtime
171
+
172
+ ---
177
173
 
178
174
  ## Support
179
175
 
180
- - **Issues**: [GitHub Issues](https://github.com/georgegiosue/mcp-emtrafesa/issues)
181
- - **Discussions**: [GitHub Discussions](https://github.com/georgegiosue/mcp-emtrafesa/discussions)
182
- - **Email**: [peraldonamoc@gmail.com](mailto:peraldonamoc@gmail.com)
176
+ - [GitHub Issues](https://github.com/georgegiosue/mcp-emtrafesa/issues)
177
+ - [GitHub Discussions](https://github.com/georgegiosue/mcp-emtrafesa/discussions)
178
+ - Email: [peraldonamoc@gmail.com](mailto:peraldonamoc@gmail.com)