Agent Skills API
Agency Skills — Backend API
Plataforma de gestión de agencias de agentes con sistema multi-agente, recursos personalizados (skills, rules, agentes, workflows) y protocolo MCP (Model Context Protocol) para integración con herramientas CLI.
Stack
Runtime: Node.js + TypeScript
Framework: NestJS 11 (Arquitectura Hexagonal + CQRS)
Base de datos: PostgreSQL (TypeORM 0.3)
Cache/Sesiones: Redis (ioredis)
Auth: Google OAuth 2.0 + JWT (access + refresh tokens)
API Docs: Swagger UI (
/api)MCP:
@modelcontextprotocol/sdk(stdio + SSE)
Quick Start
# Instalar dependencias
pnpm install
# Configurar variables de entorno
cp .env.example .env
# Editar .env con tus credenciales (DB, JWT secrets, Google OAuth)
# Docker (PostgreSQL + Redis)
pnpm run docker:up
# Ejecutar migraciones
pnpm run db:migrate
# Desarrollo
pnpm run start:devEl servidor arranca en http://localhost:8004.
Estructura
src/
├── core/ # Domain + Ports (Clean Architecture)
│ ├── agents/ # 17 agentes especializados
│ ├── domain/ # Interfaces, entidades, tokens
│ ├── infrastructure/ # DB, adapters, MCP controller
│ ├── presentation/ # Controllers REST (health, rules, mcp, agents, sessions)
│ └── skills/ # Sistema de skills Hermes
├── modules/
│ ├── auth/ # Google OAuth + JWT (access/refresh)
│ ├── agencies/ # CRUD de agencias
│ ├── agency-resources/ # Skills, rules, agents, workflows por agencia
│ ├── users/ # Usuarios (lookup por IP)
│ ├── sessions/ # Sesiones MCP
│ ├── issues/ # Gestión de issues
│ ├── projects/ # Detección de proyectos
│ ├── contexts/ # Contextos de proyecto
│ ├── plans/ # Planes de trabajo
│ ├── memory/ # Sistema de memoria
│ └── agency-agents/ # Catálogo de agentes
├── agents/ # Implementaciones de agentes
├── rules/ # Reglas de código (archivos .rule.ts)
├── shared/ # Middleware, utils, constantes
├── mcp-server.ts # Servidor MCP stdio
├── mcp-http-server.ts # Servidor MCP HTTP
└── main.ts # Bootstrap NestJSVariables de entorno
# Server
PORT=8004
CORS_ORIGIN=http://localhost:4200
# Database
DB_URL=postgres://user:password@localhost:5432/agent_skills?sslmode=disable
DB_SYNCHRONIZE=false
# Redis
REDIS_URL=redis://localhost:6379/0
# JWT
JWT_ACCESS_SECRET=your-secret-here
JWT_REFRESH_SECRET=your-other-secret-here
JWT_ACCESS_EXPIRES_IN=15m
JWT_REFRESH_EXPIRES_IN=7d
# Google OAuth
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=Ver .env.example para todas las variables disponibles (Exa AI, Context7, ChromaDB, etc.).
Scripts
# Desarrollo
pnpm run start:dev # Hot-reload
pnpm run start:debug # Debug mode
# Producción
pnpm run build # Build completo
pnpm run start:prod # Ejecutar dist/main
# Base de datos
pnpm run db:migrate # Ejecutar migraciones pendientes
pnpm run db:migrate:revert # Revertir última migración
pnpm run db:generate # Generar migración desde cambios en entidades
# MCP
pnpm run start:mcp # MCP stdio server
pnpm run start:mcp-http # MCP HTTP server
pnpm run build:mcp # Build MCP stdio
pnpm run build:mcp-http # Build MCP HTTP
# Tests
pnpm run test # Unit tests
pnpm run test:e2e # E2E tests
pnpm run test:cov # Coverage
# Docker
pnpm run docker:up # Levantar servicios
pnpm run docker:down # Parar servicios
pnpm run docker:logs # Ver logs
# Lint
pnpm run lint # ESLint + auto-fix
pnpm run typecheck # Type-check sin emitir
# Agentes CLI
pnpm run agent:setup-gemini # Configurar Gemini MCP
pnpm run mcp:update-claude # Actualizar config Claude CodeEndpoints principales
Método | Ruta | Descripción |
|
| Health check |
|
| Swagger UI |
|
| MCP SSE endpoint |
|
| MCP message endpoint |
Auth
Método | Ruta | Descripción |
|
| Login con Google |
|
| Renovar access token |
|
| Cerrar sesión |
Agencies
Método | Ruta | Descripción |
|
| Crear agencia |
|
| Obtener agencia del usuario |
|
| Obtener agencia por ID |
|
| Actualizar agencia |
|
| Eliminar agencia |
Agency Resources
Método | Ruta | Descripción |
|
| Crear skill |
|
| Listar skills |
|
| Obtener skill |
|
| Actualizar skill |
|
| Eliminar skill |
(ídem para |
Agency Members
Método | Ruta | Descripción |
|
| Listar miembros |
|
| Agregar miembro |
|
| Remover miembro |
Users
Método | Ruta | Descripción |
|
| Buscar usuarios por email/nombre |
|
| Obtener usuario por ID |
Agentes (17)
Agente | Responsabilidad |
RouterAgent | Orquestador principal, detecta intención y delega |
SearchAgent | Búsqueda BM25 de reglas |
IdentityAgent | Identidad MCP y prefijos |
RulesAgent | Listado y gestión de reglas |
CodeAgent | Generación de código |
ArchitectureAgent | Validación arquitectónica |
AnalysisAgent | Análisis de código |
MetricsAgent | Métricas y tracking |
PMAgent | Gestión de proyecto |
IssueWorkflowAgent | Workflow de issues |
GitHubAgent | Integración GitHub |
FrontendArchitectureAgent | Arquitectura frontend |
WebSearchAgent | Búsqueda web (Exa AI) |
Context7Agent | Documentación de librerías |
ContextAgent | Contexto de proyecto |
ProjectHistoryAgent | Historial de proyecto |
GraphifyAgent | Visualización de código |
ObsidianAgent | Integración Obsidian |
MCP (Model Context Protocol)
El servidor MCP expone herramientas a través de dos transportes:
stdio (
pnpm run start:mcp): para integración con CLI locales (Claude Code, Gemini, OpenCode)SSE (
/mcp/sse+/mcp/message): para integración web y remota
Herramientas MCP
Tool | Descripción |
| Inicializa sesión MCP con contexto del proyecto |
| Lista skills de la agencia activa |
| Detalle de un skill específico |
| Ejecuta un skill |
Arquitectura
Hexagonal (Ports & Adapters): lógica de negocio aislada de infraestructura
CQRS: comandos y queries separados con
@nestjs/cqrsRepository Pattern: interfaces en domain, implementaciones en infrastructure
JWT dual: access tokens (15min) en localStorage, refresh tokens (7d) en httpOnly cookie
IP-based auth: para conexiones SSE/MCP donde no hay cookie disponible
Documentación adicional
doc/ARCHITECTURE.md— Arquitectura completa del sistemadoc/MCP-CONFIG.md— Configuración MCP por herramientadoc/IMPLEMENTATION_STATUS.md— Estado de implementación
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/agency-skills/agency-skills-b'
If you have feedback or need assistance with the MCP directory API, please join our Discord server