Integración de LLM con cliente MCP usando GitHub tokens
Clase 6 de 21 • Curso 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:
- Ve a Azure Portal y accede a tu cuenta.
- Crea un recurso de Azure AI Foundry o Azure OpenAI.
- Una vez creado, ve a la sección Keys and Endpoint.
- Copia tu API Key y Endpoint.
- 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
.