Skip to main content
Glama
pbpeter

Enterprise Support MCP Server

by pbpeter

Servidor MCP de Soporte Empresarial

Un prototipo ligero de integración de IA empresarial que demuestra cómo las capacidades empresariales pueden exponerse a Modelos de Lenguaje de Gran Escala a través del Protocolo de Contexto de Modelo (MCP).

El proyecto proporciona información de clientes y pedidos a través de un servidor MCP basado en Python. Un asistente de IA impulsado por Mistral descubre dinámicamente las herramientas MCP disponibles y decide qué herramientas invocar según solicitudes de soporte en lenguaje natural.

Para solicitudes más complejas, el asistente puede ejecutar múltiples llamadas a herramientas de forma iterativa hasta que haya suficiente información para generar una respuesta final.

Todos los registros de clientes y pedidos utilizados en este proyecto son datos de demostración sintéticos.


Características principales

  • Servidor y cliente del Protocolo de Contexto de Modelo (MCP)

  • Descubrimiento dinámico de herramientas MCP

  • Selección de herramientas impulsada por LLM usando Mistral AI

  • Flujo de trabajo de llamadas a herramientas en múltiples pasos

  • Interacción en lenguaje natural con datos empresariales

  • Consulta de clientes y pedidos

  • Modelos de datos Pydantic

  • Persistencia SQLite

  • Manejo estructurado de errores

  • Separación de las capas de MCP, persistencia e integración de IA


Related MCP server: E-commerce MCP Server

Arquitectura

flowchart TD
    U[User] --> L[Mistral LLM]
    L --> C[MCP Client]
    C --> S[Enterprise Support MCP Server]
    S --> D[(SQLite Customer / Order Database)]
    D --> S
    S --> C
    C --> L
    L --> U

El LLM no accede directamente a la base de datos.

En su lugar, las capacidades empresariales se exponen a través de herramientas MCP estandarizadas. El cliente MCP descubre estas herramientas dinámicamente y pone sus esquemas a disposición del LLM.

El LLM decide entonces qué herramienta se necesita para una solicitud de usuario determinada.


Flujo de trabajo de ejemplo

Un usuario introduce:

Show me customer 1001.

La aplicación realiza el siguiente flujo de trabajo:

User request
    ↓
Mistral LLM
    ↓
Selects get_customer
    ↓
MCP Client
    ↓
Enterprise Support MCP Server
    ↓
SQLite
    ↓
Customer data
    ↓
MCP Client
    ↓
Mistral LLM
    ↓
Natural-language response

Resultado de ejemplo:

Here is the information for customer 1001:

- Name: Anna Schmidt
- Email: anna@example.com
- Status: ACTIVE

El código de la aplicación no codifica de forma fija la selección de get_customer.
El LLM selecciona la herramienta MCP adecuada según la solicitud en lenguaje natural del usuario.


Herramientas MCP disponibles

get_customer

Recupera información del cliente por ID de cliente.

Ejemplo de entrada:

{
  "customer_id": 1001
}

get_customer_orders

Recupera todos los pedidos pertenecientes a un cliente.

Ejemplo de entrada:

{
  "customer_id": 1001
}

get_order_status

Recupera el estado actual y la información de seguimiento de un pedido.

Ejemplo de entrada:

{
  "order_id": 5002
}

Pila tecnológica

  • Python

  • SDK de Python del Protocolo de Contexto de Modelo (MCP)

  • Mistral AI

  • Pydantic

  • SQLite

  • asyncio

  • python-dotenv

  • uv


Primeros pasos

Requisitos previos

El proyecto requiere:

  • Python 3.11+

  • pip

  • uv

  • una clave API de Mistral

Verifica tu instalación de Python:

python --version

Verifica uv:

uv --version

1. Clonar el repositorio

git clone https://github.com/YOUR-USERNAME/enterprise-support-mcp-server.git
cd enterprise-support-mcp-server

Reemplaza YOUR-USERNAME con tu nombre de usuario de GitHub.


2. Crear un entorno virtual

python -m venv .venv

Windows PowerShell

.venv\Scripts\Activate.ps1

Linux / macOS

source .venv/bin/activate

3. Instalar dependencias

pip install -r requirements.txt

Las dependencias principales incluyen:

mcp[cli]
mistralai
pydantic
python-dotenv

4. Configurar la clave API de Mistral

Crea un archivo .env en la raíz del proyecto.

Puedes usar .env.example como plantilla:

MISTRAL_API_KEY=your_mistral_api_key

Nunca subas el archivo .env real ni una clave API a Git.


5. Inicializar la base de datos de demostración

Ejecuta:

python init_db.py

Esto crea la base de datos SQLite local que contiene los registros sintéticos de clientes y pedidos utilizados por las herramientas MCP.


Pruebas

El proyecto se puede probar en varios niveles.

Prueba 1 – Acceso a la base de datos

Las funciones de la base de datos se pueden probar de forma independiente antes de que MCP esté involucrado.

Verifica que la base de datos de demostración se haya inicializado:

python init_db.py

La capa de base de datos proporciona operaciones para:

get_customer
get_customer_orders
get_order_status

Esto verifica la capa de persistencia independientemente de MCP y el LLM.


Prueba 2 – Iniciar el servidor MCP

Ejecuta:

python server.py

Para un servidor MCP basado en stdio, no se abre ningún puerto HTTP ni navegador.

El proceso espera a que un cliente MCP se comunique a través de la entrada/salida estándar.

Detén el servidor con:

Ctrl+C

Prueba 3 – Cliente MCP sin un LLM

Ejecuta:

python client.py

El cliente se conecta al servidor MCP y descubre las herramientas disponibles.

Descubrimiento de herramientas esperado:

Available tools:
- get_customer
- get_customer_orders
- get_order_status

El cliente puede entonces invocar las herramientas MCP directamente.

Esta prueba verifica:

MCP Client
    ↓
MCP protocol
    ↓
MCP Server
    ↓
SQLite
    ↓
MCP result

No se requiere ningún Modelo de Lenguaje de Gran Escala para esta prueba.


Prueba 4 – Selección de herramientas MCP impulsada por LLM

Ejecuta:

python llm_client.py

La aplicación debería mostrar primero las herramientas MCP descubiertas desde el servidor:

Available MCP tools:
- get_customer
- get_customer_orders
- get_order_status

Luego puedes introducir una solicitud en lenguaje natural.

Consulta de cliente

Show me customer 1001.

Comportamiento esperado:

Mistral
    ↓
get_customer
    ↓
customer_id = 1001

La respuesta final debe contener la información del cliente 1001.


Pedidos de cliente

Prueba:

Show me all orders for customer 1001.

Herramienta esperada:

get_customer_orders

Estado del pedido

Prueba:

What is the status of order 5002?

Herramienta esperada:

get_order_status

Solicitud sin datos empresariales

Prueba:

What can you help me with?

El LLM debería poder responder a esta solicitud sin acceder a datos de clientes o pedidos.

Esto demuestra que la ejecución de herramientas se selecciona dinámicamente en lugar de ejecutarse para cada solicitud.


Prueba 5 – Llamada a herramientas en múltiples pasos

El cliente LLM admite la ejecución iterativa de herramientas.

Prueba una solicitud más compleja como:

Customer 1001 says that one of her orders has not arrived.
Can you investigate?

Para solicitudes complejas, el asistente puede usar múltiples herramientas MCP antes de generar la respuesta final.

Conceptualmente:

User
    ↓
Mistral
    ↓
MCP Tool
    ↓
Tool Result
    ↓
Mistral
    ↓
Another tool required?
    ├── Yes → MCP Tool → Result → Mistral
    └── No  → Final Response

El bucle de llamada a herramientas tiene un número máximo de iteraciones para evitar una ejecución infinita accidental.


Pruebas de manejo de errores

El servidor MCP también maneja entidades empresariales desconocidas.

Por ejemplo:

Show me customer 9999.

La herramienta MCP correspondiente devuelve un resultado de error en lugar de inventar información del cliente.

Esto es particularmente importante para integraciones empresariales basadas en IA: la información factual de clientes y pedidos debe originarse en el sistema empresarial conectado, no en el LLM.


Estructura del proyecto

enterprise-support-mcp-server/
│
├── server.py
│   └── MCP server and tool definitions
│
├── client.py
│   └── MCP client for direct tool testing
│
├── llm_client.py
│   └── Mistral integration and agentic tool-calling workflow
│
├── database.py
│   └── Database access layer
│
├── models.py
│   └── Pydantic domain models
│
├── init_db.py
│   └── Creates synthetic demo data
│
├── requirements.txt
├── .env.example
├── .gitignore
└── README.md

¿Por qué MCP?

Un LLM también puede llamar directamente a funciones específicas de la aplicación.

MCP introduce una interfaz estandarizada entre aplicaciones de IA y capacidades externas.

En este proyecto:

Mistral
   ↓
Tool Calling
   ↓
MCP Client
   ↓
Standardized MCP interface
   ↓
Enterprise Support MCP Server
   ↓
Enterprise capabilities

El LLM es responsable de decidir qué capacidad se necesita.

MCP es responsable de exponer esas capacidades a través de un protocolo estandarizado.

Esta separación significa que el backend empresarial no necesita diseñarse específicamente para un proveedor de LLM.


Propósito del proyecto

El proyecto es intencionalmente pequeño y se centra en una pregunta arquitectónica:

¿Cómo se pueden poner las capacidades empresariales existentes a disposición de los asistentes de IA a través de una capa de integración estandarizada?

Demuestra la combinación de:

  • Integración de sistemas empresariales

  • Protocolo de Contexto de Modelo

  • Llamada a herramientas LLM

  • Flujos de trabajo agentivos

  • Datos empresariales estructurados

  • Separación de responsabilidades

El proyecto sirve como un prototipo práctico para integrar asistentes de IA con aplicaciones empresariales existentes.


Aviso de seguridad

Este repositorio contiene solo datos de demostración sintéticos.

No expongas claves API, credenciales, datos de clientes u otra información sensible a través del código fuente o archivos .env subidos.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • The grounded data layer for any LLM: governed SQL, metrics, lineage and catalog over your data.

  • A Model Context Protocol server for Wix AI tools

  • Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.

View all MCP Connectors

Latest Blog Posts

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/pbpeter/enterprise-support-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server