Este proyecto conecta un LLM local (p. ej., Qwen) con herramientas como una calculadora o una base de conocimientos mediante el protocolo MCP . El asistente detecta y llama automáticamente a estas herramientas para responder a las consultas de los usuarios.
📦 Características
🔧 Ejecución de herramientas a través del servidor MCP
🧠 Integración local de LLM a través de HTTP o OpenAI SDK
📚 Soporte de base de conocimientos (
data.json)⚡ Admite transportes
stdioysse
Related MCP server: MCP Documentation Server
🗂 Archivos del proyecto
Archivo | Descripción |
| Registra herramientas e inicia el servidor MCP |
| Utiliza |
| Utiliza SDK compatible con OpenAI para LLM + lógica de llamada de herramientas |
| Cliente MCP que utiliza stdio |
| Cliente MCP que utiliza SSE |
| Base de conocimientos de preguntas y respuestas |
📥 Instalación
Requisitos
Python 3.8+
Instalar dependencias:
pip install -r requirements.txtrequirements.txt
aiohttp==3.11.18
nest_asyncio==1.6.0
python-dotenv==1.1.0
openai==1.77.0
mcp==1.6.0🚀 Primeros pasos
1. Ejecute el servidor MCP
python server.pyEsto inicia su servidor de herramientas con funciones como add , multiply y get_knowledge_base .
2. Iniciar un cliente
Opción A: Cliente HTTP (LLM local a través de API sin procesar)
python client-http.pyOpción B: Cliente SDK de OpenAI
python client-openai.pyOpción C: transporte stdio
python client-stdio.pyOpción D: Transporte SSE
Asegúrese de que server.py establezca:
transport = "sse"Luego ejecuta:
python client-sse.py💬 Ejemplos de indicaciones
Llamada a la herramienta matemática
What is 8 times 3?Respuesta:
Eight times three is 24.Pregunta de la base de conocimientos
What are the healthcare benefits available to employees in Singapore?La respuesta incluirá la respuesta relevante de data.json .
📁 Ejemplo: data.json
[
{
"question": "What is Singapore's public holiday schedule?",
"answer": "Singapore observes several public holidays..."
},
{
"question": "How do I apply for permanent residency in Singapore?",
"answer": "Submit an online application via the ICA website..."
}
]🔧 Configuración
Dentro de client-http.py o clientopenai.py , actualice lo siguiente:
LOCAL_LLM_URL = "..."
TOKEN = "your-api-token"
LOCAL_LLM_MODEL = "your-model"Asegúrese de que su LLM esté prestando servicio a puntos finales de API compatibles con OpenAI.
🧹 Limpieza
Los clientes gestionan las llamadas y respuestas de las herramientas automáticamente. Puede detener el servidor o el cliente con Ctrl+C .
🪪 Licencia
Licencia MIT. Véase el archivo LICENSE .