MCP-workers

MCP-workers

An MCP server that enables AI agents to search and analyze employee profiles, skills, tasks, and team structures stored in PostgreSQL, including advanced features like burnout detection and skill gap analysis.

Category
访问服务器

README

MCP Server - Gestión de Colaboradores y Talento Humano (PostgreSQL)

Este proyecto es un servidor de Model Context Protocol (MCP) desarrollado en Python utilizando librerías 100% de código abierto (principalmente el SDK oficial de MCP y FastMCP). Se conecta a una base de datos relacional en PostgreSQL y expone una serie de herramientas (Tools) y recursos (Resources) lógicos para que agentes de Inteligencia Artificial (IDEs como Cursor, VS Code, Antigravity) puedan realizar búsquedas complejas y análisis sobre el capital humano de una empresa.

El sistema resuelve el problema de la dispersión de datos unificando en un solo lugar la información sobre perfiles, roles, asignación de equipos (squads), habilidades técnicas (skills), avance de cursos de capacitación y tareas activas.


1. Arquitectura y Reglas de Negocio

El diseño del servidor MCP se basa en la Arquitectura de Agentes Eficientes para optimizar el consumo de tokens y prevenir alucinaciones de los modelos de lenguaje:

  • Resource Estático (db://schema): En lugar de enviar sentencias CREATE TABLE pesadas, se entrega un catálogo semántico en formato JSON condensado con la estructura lógica, relaciones clave y reglas del sistema.
  • Mitigación de Token Bloat (Control de Inundación): Las herramientas de búsqueda masiva (ej. search_collaborators_by_skill) están limitadas a un máximo de 10 registros. Si la consulta supera este límite, el servidor intercepta el flujo y devuelve un estado ambiguous_result con "facetas" o agregaciones de datos (distribución por seniority y squads), obligando a la IA a pedirle un filtro más cerrado al usuario.
  • Vistas Consolidadas en Backend: Las operaciones de agregación y los JOINs se resuelven en consultas SQL parametrizadas optimizadas, entregando DTOs (Data Transfer Objects) limpios a la IA.
  • Reglas de Negocio Implementadas:
    • Calificación de Skills: Rango discreto de 1 a 10.
    • Avance de Capacitaciones: Porcentaje del 1 al 100. Un avance < 100 o nulo se infiere como un upskilling activo o una brecha formativa a cubrir.
    • Detección de Burnout: El sistema analiza tareas con estado EN_CURSO. Se marca riesgo de burnout si la estimación semanal supera las 40 horas o si el colaborador trabaja en múltiples tareas EN_CURSO de forma paralela (multitasking).
    • Detección de Brechas Formativas (Gaps): Se comparan las tecnologías dominadas por otros miembros del squad (nivel >= 5) con las del colaborador en cuestión, identificando cuáles de ellas tiene en nivel bajo (< 3) o sin registrar.

2. Estructura de Carpetas

El proyecto está diseñado bajo buenas prácticas de modularidad, dividiendo responsabilidades en carpetas y archivos específicos:

mcp-workers/
├── src/
│   ├── tools/
│   │   ├── collaborators.py  # Consulta de perfiles e integrantes de Squads
│   │   ├── tasks.py          # Creación, actualización de tareas y cálculo de Burnout
│   │   ├── skills.py         # Matriz de conocimientos y desambiguación de inundación
│   │   └── courses.py        # Seguimiento académico y brechas formativas (Upskilling)
│   ├── resources/
│   │   └── schema.py         # Catálogo semántico estático (db://schema)
│   ├── config.py             # Carga y validación de variables de entorno (.env)
│   ├── database.py           # Gestor de conexiones y transacciones seguras (PostgreSQL)
│   ├── errors.py             # Errores globales normalizados (ERR_COLABORADOR_NO_ENCONTRADO, etc.)
│   ├── models.py             # Modelos de validación y DTOs basados en Pydantic
│   └── main.py               # Orquestador del servidor FastMCP y puntos de entrada
├── Dockerfile                # Configuración de imagen Docker para el servidor MCP
├── docker-compose.yml        # Orquestación de base de datos PostgreSQL + Servidor MCP
├── init.sql                  # Definición de tablas y datos semilla de prueba
├── requirements.txt          # Dependencias Open Source del proyecto
├── .env.example              # Plantilla de variables de entorno
├── .env                      # Variables de entorno locales
├── .gitignore                # Reglas de exclusión de Git
└── .dockerignore             # Reglas de exclusión para empaquetado Docker

3. Prácticas de Seguridad Implementadas

  1. Prevención de SQL Injections: Todas las consultas a la base de datos se realizan con consultas parametrizadas a través del driver psycopg2. Jamás se concatena texto para armar queries dinámicas.
  2. Validación de Rangos y Tipados Estrictos: Los inputs y outputs de las herramientas se validan utilizando Pydantic y restricciones lógicas a nivel base de datos (CHECK constraints y validadores python).
  3. Gestión Segura de Secretos: Las contraseñas, hosts y puertos no están hardcodeados en el código fuente. Se extraen de variables de entorno gestionadas localmente por .env.
  4. Aislamiento de Docker: La base de datos no expone puertos innecesarios internamente más que a la red de Docker, aunque se mapea el puerto 5432 externamente para facilidades de desarrollo local controlado. El servidor se ejecuta con un usuario no administrativo dentro del contenedor y no monta volúmenes innecesarios.

4. Despliegue Rápido (Con Docker Compose)

Para levantar la base de datos PostgreSQL (con toda la estructura de tablas y datos semilla) en conjunto con el servidor MCP en un solo comando:

  1. Asegúrate de tener instalado Docker y Docker Compose.
  2. Crea un archivo .env en la raíz del proyecto (puedes copiar el archivo .env.example):
    cp .env.example .env
    
  3. Ejecuta el siguiente comando para compilar y levantar los contenedores:
    docker compose up --build -d
    
  4. El contenedor de base de datos se iniciará, ejecutará el script init.sql para crear y poblar las tablas, y el contenedor mcp-server esperará a que el motor esté listo mediante su healthcheck interno antes de iniciar el servidor en el puerto 8000 exponiendo el endpoint /mcp.

5. Configuración en Clientes MCP (Antigravity y Cursor)

A. Integración en Cursor (Modo HTTP)

Cuando el servidor está corriendo dentro de Docker en modo HTTP JSON-RPC:

  1. Abre Cursor y ve a Settings -> Beta -> Features -> MCP.
  2. Haz clic en + Add New MCP Server.
  3. Completa los campos:
    • Name: MCP Colaboradores
    • Type: http o SSE
    • URL: http://localhost:8000/mcp
  4. Guarda la configuración.

B. Integración en Cursor (Modo Stdio / Sin Docker)

Si prefieres correr la base de datos en Docker pero ejecutar el servidor MCP de manera local directa a través del comando STDIO:

  1. Asegúrate de que la base de datos de Docker esté activa (docker compose up db).
  2. Instala el entorno virtual en la raíz del proyecto y sus dependencias:
    python -m venv .venv
    .venv\Scripts\activate     # En Windows
    pip install -r requirements.txt
    
  3. En Cursor, agrega el servidor MCP con la siguiente configuración:
    • Name: MCP Colaboradores Local
    • Type: command
    • Command: C:\drafts\mcp-workers\.venv\Scripts\python.exe -m src.main
  4. Asegúrate de tener un archivo .env local en la raíz con la configuración:
    DB_HOST=localhost
    DB_PORT=5432
    DB_NAME=mcp_colaboradores
    DB_USER=postgres
    DB_PASSWORD=postgres_secure_pass_2026
    

C. Integración en Antigravity

Para registrar este MCP en Antigravity, puedes usar el archivo mcp.json creado en la raíz del proyecto o agregar la siguiente entrada a tu configuración de servidores MCP HTTP:

{
  "mcpServers": {
    "mcp-colaboradores-http": {
      "serverUrl": "http://localhost:8000/mcp"
    }
  }
}

6. Listado de Herramientas Expuestas a la IA

Nombre Parámetros Descripción
obtener_ficha_colaborador identificador: str Devuelve el perfil completo de un colaborador (datos personales, seniority, equipo, rol, conocimientos, cursos y brechas formativas frente a su equipo) resolviendo por correo, legajo o nombre parcial. Si hay múltiples coincidencias, retorna ambiguous_result.
analizar_estructura_equipo nombre_equipo: str Lista los miembros de un equipo (squad) con su legajo, nombre completo, email y rol asignado.
consultar_estado_operativo identificador: str Analiza la carga operativa de un colaborador, listando sus tareas activas, la carga horaria acumulada, la fecha de liberación estimada y evaluando riesgos de burnout (multitasking o >40 horas).
buscar_colaboradores_por_habilidad tecnologia: str, nivel_min?: int, seniority?: str, equipo?: str Busca colaboradores calificados. Filtra por nivel (1-10), seniority y equipo. Si supera los 10 registros, activa control de inundación con facetas. Retorna 0 resultados de forma segura si la tecnología no está en el catálogo.
listar_catalogos_maestros tipo_catalogo: str Lista nombres del catálogo (tecnologias, proyectos, equipos, roles o seniorities) para evitar alucinaciones.
ejecutar_consulta sql: str Ejecuta una consulta SQL SELECT libre de lectura. Capped automáticamente a 100 registros por seguridad y bloquea keywords de modificación (INSERT, UPDATE, etc.).

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选