Skip to main content
Glama
joseant1215

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