Integración de LLM con cliente MCP usando GitHub tokens

Clase 6 de 21Curso de MCP

Resumen

Integración de Azure AI Inference con tu cliente MCP

¿Por qué integrar un modelo LLM con MCP?

Integrar un Large Language Model (LLM) como GPT-4 con tu cliente MCP permite transformar comandos humanos simples en acciones que el servidor pueda procesar. Esto mejora la experiencia al interactuar con tu proyecto, haciendo que las instrucciones sean más naturales, humanas y comprensibles.

En lugar de escribir código estructurado como add(a=2, b=20), ahora podrás decir cosas como "Agrega dos a veinte", y el modelo sabrá qué función ejecutar en el servidor.


¿Cómo integrar Azure AI Inference con tu cliente MCP?

1. Configurar credenciales de Azure AI

Antes de empezar, necesitas tener acceso a Azure AI Inference. Aquí te explicamos cómo configurarlo:

  1. Ve a Azure Portal y accede a tu cuenta.
  2. Crea un recurso de Azure AI Foundry o Azure OpenAI.
  3. Una vez creado, ve a la sección Keys and Endpoint.
  4. Copia tu API Key y Endpoint.
  5. Si usas Azure OpenAI, también necesitarás el deployment name de tu modelo.

🔐 Recomendación: Usa un archivo .env para guardar estas credenciales y no exponerlas en tu código.


2. Estructura del proyecto

Organiza tu proyecto con la siguiente estructura:

mcp-proyecto
└── clase6/
    ├── server.py
    ├── client.py
    └── .env  # Opcional pero recomendable

3. Instalación de librerías necesarias

Abre tu terminal y ejecuta:

pip install azure-ai-inference azure-core python-dotenv

4. Uso del archivo .env para tus credenciales

Dentro de tu archivo .env, agrega:

AZURE_AI_API_KEY=tu_api_key_de_azure
AZURE_AI_ENDPOINT=https://tu-endpoint.inference.ai.azure.com/
# Si usas Azure OpenAI, también agrega:
AZURE_OPENAI_DEPLOYMENT_NAME=tu_deployment_name

Y en tu client.py:

import os
from dotenv import load_dotenv
load_dotenv()

API_KEY = os.getenv("AZURE_AI_API_KEY")
ENDPOINT = os.getenv("AZURE_AI_ENDPOINT")
DEPLOYMENT_NAME = os.getenv("AZURE_OPENAI_DEPLOYMENT_NAME", "gpt-4")

5. Código en client.py: integración con Azure AI Inference

a. Importaciones necesarias

import json
from azure.core.credentials import AzureKeyCredential
from azure.ai.inference import ChatCompletionsClient

b. Convertir funciones del servidor al formato LLM

def convert_to_llm_tool():
    return {
        "name": "add",
        "description": "Suma dos números",
        "parameters": {
            "type": "object",
            "properties": {
                "a": {"type": "integer", "description": "Primer número"},
                "b": {"type": "integer", "description": "Segundo número"}
            },
            "required": ["a", "b"]
        }
    }

c. Función para llamar al LLM

def call_llm(prompt: str, functions: list):
    client = ChatCompletionsClient(ENDPOINT, AzureKeyCredential(API_KEY))
    messages = [{"role": "user", "content": prompt}]
    tools = [{"type": "function", "function": f} for f in functions]

    response = client.complete(
        model=DEPLOYMENT_NAME,  # Para Azure OpenAI usa deployment_name
        messages=messages,
        tools=tools
    )

    return response.choices[0].message.tool_calls

d. Integración final

if __name__ == "__main__":
    prompt = "Agrega 2 a 20"
    tools = [convert_to_llm_tool()]

    print("Llamando al modelo de lenguaje...")
    tool_calls = call_llm(prompt, tools)

    if tool_calls:
        for call in tool_calls:
            print("Respuesta del modelo:")
            print(json.dumps(call, indent=2))
    else:
        print("No se obtuvo respuesta.")

6. Ejecutar tu cliente MCP

Abre la terminal, navega al directorio del proyecto y ejecuta:

cd clase6
python3 client.py

Verás cómo el modelo interpreta tu frase en lenguaje natural y genera una llamada a la función del servidor, como add(a=2, b=20).

🔒 ¿Por qué usar un archivo .env?

Guardar tu token directamente en el código no es seguro. Usar .env te permite:

  • Mantener tus datos sensibles fuera del repositorio.
  • Compartir tu código sin comprometer credenciales.
  • Seguir buenas prácticas de desarrollo seguro.

✅ ¿Qué aprendiste?

  • Cómo generar un Personal Access Token en GitHub.
  • Cómo estructurar tu cliente MCP para integrar un modelo LLM.
  • Cómo transformar lenguaje natural en llamadas funcionales a tu servidor.
  • Cómo proteger tus credenciales con .env.