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 +96 -100
- package/README.md +96 -100
- package/dist/{index.js → src/index.js} +17105 -13241
- package/package.json +15 -14
- /package/dist/{index.d.ts → src/index.d.ts} +0 -0
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
|
+
[](https://www.npmjs.com/package/mcp-emtrafesa)
|
|
5
6
|
[](https://www.typescriptlang.org/)
|
|
6
7
|
[](https://bun.sh)
|
|
7
8
|
[](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
|
-
|
|
16
|
+
---
|
|
16
17
|
|
|
17
|
-
|
|
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
|
-
|
|
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
|
-
|
|
26
|
+
---
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
- Node.js v18+ (para soporte de TypeScript)
|
|
28
|
+
## Inicio Rápido
|
|
30
29
|
|
|
31
|
-
###
|
|
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
|
-
|
|
59
|
+
> **Tip:** Usa el Inspector MCP para depuración: `bunx @modelcontextprotocol/inspector bun index.ts`
|
|
49
60
|
|
|
50
|
-
|
|
61
|
+
---
|
|
51
62
|
|
|
52
|
-
|
|
63
|
+
## Herramientas Disponibles
|
|
53
64
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
-
|
|
74
|
+
---
|
|
67
75
|
|
|
68
|
-
|
|
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
|
-
###
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
103
|
+
### Descargar tu boleto en PDF
|
|
97
104
|
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
-
|
|
112
|
+
---
|
|
115
113
|
|
|
116
|
-
|
|
114
|
+
## Requisitos
|
|
117
115
|
|
|
118
|
-
-
|
|
119
|
-
-
|
|
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
|
-
|
|
119
|
+
---
|
|
125
120
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
-
|
|
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
|
-
|
|
135
|
+
---
|
|
132
136
|
|
|
133
|
-
|
|
137
|
+
## Desarrollo
|
|
134
138
|
|
|
135
139
|
```bash
|
|
136
|
-
# Formatear código
|
|
140
|
+
# Formatear código
|
|
137
141
|
bun run format
|
|
138
142
|
|
|
139
|
-
# Verificar formateo
|
|
143
|
+
# Verificar formateo
|
|
140
144
|
bunx biome check
|
|
141
145
|
```
|
|
142
146
|
|
|
143
|
-
|
|
147
|
+
---
|
|
144
148
|
|
|
145
|
-
|
|
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
|
-
|
|
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
|
-
|
|
157
|
+
---
|
|
152
158
|
|
|
153
|
-
|
|
154
|
-
# Ver la referencia de estructura HTML
|
|
155
|
-
open sandbox/post-consulta.html
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
## 🤝 Contribuciones
|
|
159
|
+
## Licencia
|
|
159
160
|
|
|
160
|
-
|
|
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
|
-
|
|
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)
|
|
174
|
-
- [Model Context Protocol](https://modelcontextprotocol.io)
|
|
175
|
-
- [@tecncr](https://github.com/tecncr)
|
|
176
|
-
- [Bun](https://bun.sh)
|
|
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
|
-
-
|
|
181
|
-
-
|
|
182
|
-
-
|
|
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
|
+
[](https://www.npmjs.com/package/mcp-emtrafesa)
|
|
5
6
|
[](https://www.typescriptlang.org/)
|
|
6
7
|
[](https://bun.sh)
|
|
7
8
|
[](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
|
-
|
|
16
|
+
---
|
|
16
17
|
|
|
17
|
-
|
|
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
|
-
|
|
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
|
-
|
|
26
|
+
---
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
- Node.js v18+ (for TypeScript support)
|
|
28
|
+
## Quick Start
|
|
30
29
|
|
|
31
|
-
###
|
|
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
|
-
|
|
59
|
+
> **Tip:** Use the MCP Inspector for debugging: `bunx @modelcontextprotocol/inspector bun index.ts`
|
|
49
60
|
|
|
50
|
-
|
|
61
|
+
---
|
|
51
62
|
|
|
52
|
-
|
|
63
|
+
## Available Tools
|
|
53
64
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
-
|
|
74
|
+
---
|
|
67
75
|
|
|
68
|
-
|
|
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
|
-
###
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
103
|
+
### Download your ticket as PDF
|
|
97
104
|
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
-
|
|
112
|
+
---
|
|
115
113
|
|
|
116
|
-
|
|
114
|
+
## Requirements
|
|
117
115
|
|
|
118
|
-
-
|
|
119
|
-
-
|
|
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
|
-
|
|
119
|
+
---
|
|
125
120
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
-
|
|
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
|
-
|
|
135
|
+
---
|
|
132
136
|
|
|
133
|
-
|
|
137
|
+
## Development
|
|
134
138
|
|
|
135
139
|
```bash
|
|
136
|
-
# Format code
|
|
140
|
+
# Format code
|
|
137
141
|
bun run format
|
|
138
142
|
|
|
139
|
-
# Check formatting
|
|
143
|
+
# Check formatting
|
|
140
144
|
bunx biome check
|
|
141
145
|
```
|
|
142
146
|
|
|
143
|
-
|
|
147
|
+
---
|
|
144
148
|
|
|
145
|
-
|
|
146
|
-
- Zod schemas for runtime validation
|
|
147
|
-
- Exact API field mapping in type definitions
|
|
149
|
+
## Contributing
|
|
148
150
|
|
|
149
|
-
|
|
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
|
-
|
|
157
|
+
---
|
|
152
158
|
|
|
153
|
-
|
|
154
|
-
# View the HTML structure reference
|
|
155
|
-
open sanbox/post-consulta.html
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
## 🤝 Contributing
|
|
159
|
+
## License
|
|
159
160
|
|
|
160
|
-
|
|
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
|
-
|
|
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)
|
|
174
|
-
- [Model Context Protocol](https://modelcontextprotocol.io)
|
|
175
|
-
- [@tecncr](https://github.com/tecncr)
|
|
176
|
-
- [Bun](https://bun.sh)
|
|
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
|
-
-
|
|
181
|
-
-
|
|
182
|
-
-
|
|
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)
|