MCP API Engineering Lab
by joseant1215
README.md
# MCP API Engineering Lab
Servidor MCP público y genérico para demostrar cómo un agente puede recibir contexto desde una base de datos y contratos OpenAPI.
> Creado desde cero para el portafolio. No contiene código, endpoints, reglas, esquemas ni credenciales de clientes.
## Stack
- TypeScript
- MCP TypeScript SDK v2
- Zod
- PostgreSQL (`pg`)
- OpenAPI YAML
## Architecture
```mermaid
flowchart LR
DB[(PostgreSQL)] --> MCP[MCP Server]
OpenAPI[OpenAPI contracts] --> MCP
MCP --> Agent[MCP-capable AI client]
Agent --> Code[Code / API tasks]
```
## Tools
- `get_database_schema`
- `list_api_contracts`
- `get_api_contract`
- `create_api_contract`
- `update_api_contract`
- `delete_api_contract`
## Ejecutar
```bash
npm install
npm run build
npm start
```
Para desarrollo:
```bash
npm run dev
```
## Base de datos
Si defines `DATABASE_URL`, el tool `get_database_schema` consulta `information_schema`.
Si no está definida, devuelve `data/sample-schema.sql`, para poder demostrar el servidor sin infraestructura externa.
## OpenAPI
Los contratos viven en `contracts/`.
El MCP puede leer, crear, actualizar y eliminar contratos locales. `template.yaml` está protegido.
## Cliente MCP
Configura este proyecto como servidor `stdio` con:
```bash
node /ruta/al/repositorio/dist/index.js
```
Usa la documentación de tu cliente MCP para el formato exacto de configuración.
TDQS
A3.7/5.0
Scored across 6 tools
Disambiguation5/5
Each tool has a clearly distinct purpose: get_database_schema retrieves schema, while the other five perform CRUD on API contracts. List, get, create, update, and delete are unambiguous.
Naming Consistency5/5
All tools follow a consistent verb_noun pattern (list_, get_, create_, update_, delete_), and get_database_schema fits the same style. No mixed conventions.
Tool Count5/5
Six tools is well within the ideal range for a focused server. Each tool serves a clear purpose without unnecessary overlap or bloat.
Completeness4/5
The CRUD lifecycle for API contracts is fully covered (list, get, create, update, delete). However, update only modifies title/version, not arbitrary fields, and a validation tool is absent—minor gaps for full contract management.
Maintenance
ActivitySlowing
ResponsivenessNo issues