Integrations
Used to make HTTP requests to the ALBERTO system API, specifically enabling user authentication and ticket retrieval functionality.
Serves as the runtime environment for the ALBERTO service integration, enabling server-side JavaScript execution for the MCP server.
Used as the implementation language for the ALBERTO integration, providing type safety for API interactions and tool definitions.
MCP-ALBERTO: Servidor de Herramientas Fundamentales para IA
Este proyecto implementa un servidor MCP (Model Context Protocol) diseñado para extender las capacidades de un asistente de IA. Proporciona un conjunto de herramientas fundamentales y atómicas que, si bien pueden tener una utilidad limitada de forma aislada, están diseñadas para ser combinadas y orquestadas por un modelo de IA para ejecutar flujos de trabajo complejos e interactuar con servicios externos específicos (actualmente, un sistema denominado "ALBERTO" relacionado con TotalCheck).
El objetivo no es ofrecer herramientas complejas pre-empaquetadas, sino componentes básicos (primitivas) que la IA puede utilizar dinámicamente para resolver tareas como obtener credenciales, autenticarse y potencialmente interactuar con otros endpoints del servicio subyacente.
Configuración de Ejecución (Ejemplo para integración)
La siguiente configuración (ejemplo) muestra cómo podría integrarse este MCP con una herramienta que lo utilice:
Estructura del Proyecto
main.ts
: Punto de entrada de la aplicación. Inicializa el servidor MCP, configura el transporte (actualmenteStdioServerTransport
) y registra las herramientas disponibles.userservice/
:userservice-api-rest.ts
: Contiene la lógica para interactuar con la API REST del servicio de usuarios (ej. obtener ticket de autenticación).userservice-tool.ts
: Define y registra las herramientas MCP relacionadas con el servicio de usuarios (ej.get_ticket
).
README.md
: Este archivo..gitignore
: Especifica los archivos y directorios ignorados por Git.package.json
/package-lock.json
: Gestión de dependencias del proyecto Node.js.tsconfig.json
: Configuración del compilador TypeScript.
Herramientas MCP Disponibles
Este servidor expone las siguientes herramientas. Es crucial entender que estas herramientas son bloques de construcción de bajo nivel. Su verdadero potencial se desbloquea cuando una IA las utiliza en secuencia o combinación para lograr un objetivo mayor.
get_node_info
- Descripción: Obtiene información detallada y completa de un nodo específico del sistema.
- Implementación:
nodeservice/nodeservice-tool.ts
- Parámetros:
unique_id
(string, requerido),alf_ticket
(string). - Uso: Ideal cuando se conoce el
unique_id
exacto del nodo y se necesitan todos sus detalles.
search_by_type
- Descripción: Realiza búsquedas flexibles por Tenant y Tipo en ElasticSearch, permitiendo encontrar nodos basados en diversos criterios.
- Implementación:
searchservice/by_type/tool.ts
- Endpoint API:
/searchservice/tenant/{tenant}/type/{type}/...
- Parámetros:
tenant_name
(string, requerido): El tenant donde buscar.type_name
(string, requerido): El índice/tipo específico a consultar (ej.expediente_inscripcion_mt
).query_body
(string, requerido): Query ElasticSearch en formato JSON string.alf_ticket
(string): Ticket de autenticación.from_index
(number, opcional): Paginación.page_size
(number, opcional): Paginación.sort
(string, opcional): Ordenación.
- Uso: Para búsquedas dirigidas a un índice específico (expedientes, usuarios, etc.).
search_workflow
- Descripción: Realiza búsquedas flexibles en el alias
taskmanager
de Workflow en ElasticSearch. - Implementación:
searchservice/workflow/tool.ts
- Endpoint API:
/searchservice/workflow/...
- Parámetros:
query_body
(string, requerido): Query ElasticSearch en formato JSON string.alf_ticket
(string): Ticket de autenticación.from_index
(number, opcional): Paginación.page_size
(number, opcional): Paginación.
- Uso: Para encontrar tareas o información de workflow, útil como paso intermedio para descubrir
unique_id
otype_name
de un caso si solo se tienen datos parciales (patente, operación).
- Descripción: Realiza búsquedas flexibles en el alias
get_ticket
- Descripción: Obtiene un ticket de autenticación desde el servicio de login externo.
- Implementación:
userservice/userservice-tool.ts
- Parámetros:
usuario
(string): Nombre de usuario para la autenticación.password
(string): Contraseña del usuario.
- Retorna: El ticket de autenticación como texto.
get_config_credentials
- Descripción: Obtiene una lista predefinida de credenciales de configuración (usuario, clave, descripción).
- Implementación:
configuraciones/configuraciones-tool.ts
- Parámetros: Ninguno.
- Retorna: Un array de objetos JSON, cada uno con
username
,clave
ydescription
. - Nota: Provee a la IA de las identidades disponibles para interactuar con el sistema.
Flujos de Trabajo Comunes
- Obtener Ticket con Credenciales de Configuración:
- Llamar a
get_config_credentials
para obtener el usuario y la contraseña preconfigurados. - Extraer el
usuario
ypassword
del resultado JSON. - Llamar a
get_ticket
pasando elusuario
ypassword
obtenidos en el paso anterior.
- Llamar a
Orquestación por IA (Ejemplo Conceptual)
Un asistente de IA podría recibir una solicitud como "Obtén un ticket para el usuario administrador". La IA, utilizando las herramientas disponibles, ejecutaría los siguientes pasos:
- Llamar a
get_config_credentials
: Para obtener la lista de usuarios y sus descripciones. - Identificar Usuario: Procesar la respuesta para encontrar el
username
correspondiente a la descripción "Usuario de Administrador". - Llamar a
get_ticket
: Utilizar elusername
identificado y suclave
(implícita o extraída) para solicitar el ticket de autenticación. - Presentar Resultado: Devolver el ticket obtenido al usuario.
Este ejemplo ilustra cómo herramientas simples se combinan bajo la dirección de la IA para satisfacer una necesidad compleja.
Interacción entre Servicios y Elasticsearch
Es fundamental entender cómo search_by_type
, search_workflow
y get_node_info
interactúan y cómo se relacionan con la estructura de datos en Elasticsearch:
- Índices Primarios: Cada tipo principal de entidad (ej.
expediente_inscripcion_mt
,expediente_operacion_leasing
,user
,tenant
) reside en su propio índice ElasticSearch.search_by_type
puede consultar estos índices directamente especificando eltype_name
apropiado. - Índices de Workflow (
taskmanager_*
): Cuando un nodo entra en un flujo de trabajo, se generan entradas en índices específicos del workflow (ej.taskmanager_expediente_inscripcion_mt
). - Alias
taskmanager
: Existe un alias llamadotaskmanager
que agrupa todos los índices de workflow. Usarsearch_workflow
osearch_by_type
permite buscar en todas las tareas activas. - Flujo Típico:
- Si se conoce el tipo primario, la IA usará
search_by_type
directamente. - Si se busca información general o se desconoce el tipo exacto, la IA podría usar
search_workflow
(consultando el aliastaskmanager
) como paso de descubrimiento. - El resultado de
search_workflow
osearch_by_type
puede contener la información necesaria o elunique_id
del nodo principal. - Si se obtiene un
unique_id
y se necesitan todos los detalles, la IA puede usarget_node_info
.
- Si se conoce el tipo primario, la IA usará
Guía para la IA: Condiciones Mínimas de Búsqueda
Para asegurar resultados relevantes y eficientes, al construir el query_body
para search_by_type
o search_workflow
, la IA debe aplicar las siguientes condiciones mínimas por defecto, a menos que la solicitud del usuario indique explícitamente lo contrario:
- Al consultar Índices Primarios (ej.
expediente_*
,user
,tenant
):- Excluir registros borrados. Incluir en la query:(Combinar con otras cláusulasCopy
must
,filter
según sea necesario dentro delbool
).
- Excluir registros borrados. Incluir en la query:
- Al consultar el Alias
taskmanager
:- Incluir solo tareas activas y excluir registros borrados.
- Incluir en la query:(Ajustar el campoCopy
status
y su valoractive
si los nombres reales difieren; combinar con otras cláusulasmust
,filter
).
Detalles Técnicos Clave
1- Configuración adicional de package.json
- "type": "module"
: Habilita el uso de módulos ES6 (import/export).
2- Paquetes importantes (dependencies
)
- @modelcontextprotocol/sdk
: SDK para crear el servidor MCP.
- zod
: Para validación de esquemas (usado en la definición de herramientas).
- axios
: Cliente HTTP para realizar llamadas a la API REST.
- tsx
: Para ejecutar directamente archivos TypeScript.
3- Archivos principales del MCP
- main.ts
: Orquestador principal.
- userservice/userservice-api-rest.ts
: Lógica de llamadas a la API.
- userservice/userservice-tool.ts
: Definición de herramientas MCP.
Comandos para Desarrollo Local
- Instalar dependencias:Copy
- Ejecutar el servidor MCP:El servidor se iniciará y esperará comunicación a través de stdio.Copy
You must be authenticated.
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
A server that enables AI to access external services through the Model Context Protocol, specifically integrating with an authentication system to obtain login tickets.
- Configuración de Ejecución (Ejemplo para integración)
- Estructura del Proyecto
- Herramientas MCP Disponibles
- Flujos de Trabajo Comunes
- Orquestación por IA (Ejemplo Conceptual)
- Interacción entre Servicios y Elasticsearch
- Guía para la IA: Condiciones Mínimas de Búsqueda
- Detalles Técnicos Clave
- Comandos para Desarrollo Local
Related MCP Servers
- -securityFlicense-qualityA server that enables AI systems to browse, retrieve content from, and interact with web pages through the Model Context Protocol.Last updated -
- -securityFlicense-qualityA Model Context Protocol server that enables AI assistants to access Flow blockchain data and perform operations such as checking balances, resolving domains, executing scripts, and submitting transactions.Last updated -JavaScript
- AsecurityFlicenseAqualityA Model Context Protocol server implementation that provides structured, AI-friendly access to eRegulations data, making it easier for AI models to answer user questions about administrative procedures.Last updated -428TypeScript
- AsecurityFlicenseAqualityA Model Context Protocol server that allows AI assistants to connect to and manage Israeli bank accounts, fetch transactions, and handle authentication for all major Israeli banks and credit card companies.Last updated -29TypeScript