MCPCLIHost

Un host de línea de comandos que permite a los modelos de lenguaje grandes (LLMs) interactuar con herramientas externas mediante el Protocolo de Contexto de Modelo (MCP).

Documentación

MCPCLIHost 🤖

Una aplicación host de CLI que permite a los Modelos de Lenguaje de Gran Escala (LLMs) interactuar con herramientas externas a través del Protocolo de Contexto de Modelo (MCP). Actualmente soporta modelos de Openai, Azure Openai, Deepseek y Ollama.

Inglés | 简体中文

Cómo se ve: 🤠

snapshot

Características ✨

  • Conversaciones interactivas con múltiples modelos de LLM
  • Soporte para múltiples servidores MCP concurrentes
  • Descubrimiento e integración dinámica de herramientas
  • Ubicaciones y argumentos de servidores MCP configurables
  • Ventana de historial de mensajes configurable para la gestión de contexto
  • Monitoreo/seguimiento de errores del lado del servidor
  • Soporte para Sampling, Roots, Elicitation, recuperación de Recursos, Prompts
  • Soporte para excluir herramientas específicas en tiempo de ejecución
  • Mostrar tarjeta del servidor MCP cuando está conectado
  • Mostrar imágenes desde la salida de llamadas de herramientas

Última Actualización 💌

  • [2025-11-26] Soporte para mostrar imágenes desde la salida de llamadas de herramientas
  • [2025-07-18] Soporte para servidor MCP HTTP Streamable, proceso OAuth aún no soportado
  • [2025-07-02] Soporte para Elicitation
  • [2025-06-27] Manejo de Prompts en el servidor MCP: Enlace
  • [2025-06-20] Manejo de Resources en el servidor MCP: Enlace

Configuración del Entorno 🔧

  1. Para Openai y Deepseek:
export OPENAI_API_KEY='your-api-key'

Por defecto para Openai el base_url es "https://api.openai.com/v1" Para Deepseek es "https://api.deepseek.com", puedes cambiarlo con --base-url

  1. Para Ollama, primero debes configurar:
ollama pull mistral
  • Asegurarse de que Ollama esté ejecutándose:
ollama serve
  1. Para Azure Openai:
export AZURE_OPENAI_DEPLOYMENT='your-azure-deployment'
export AZURE_OPENAI_API_KEY='your-azure-openai-api-key'
export AZURE_OPENAI_API_VERSION='your-azure-openai-api-version'
export AZURE_OPENAI_ENDPOINT='your-azure-openai-endpoint'
  1. Para Google Gemini
export GEMINI_API_KEY='your-gemini-api-token'

Instalación 📦

pip install mcp-cli-host

Configuración ⚙️

MCPCLIHost buscará automáticamente el archivo de configuración en ~/.mcp.json. También puedes especificar una ubicación personalizada usando la bandera --config:

Servidor MCP STDIO

{
  "mcpServers": {
    "sqlite": {
      "command": "uvx",
      "args": [
        "mcp-server-sqlite",
        "--db-path",
        "/tmp/foo.db"
      ]
    },
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/tmp"
      ]
    }
  }
}

Cada entrada de servidor MCP requiere:

  • command: El comando a ejecutar (por ejemplo, uvx, npx)
  • args: Matriz de argumentos para el comando:
    • Para servidor SQLite: mcp-server-sqlite con la ruta de la base de datos
    • Para servidor de sistema de archivos: @modelcontextprotocol/server-filesystem con la ruta del directorio

Servidor MCP remoto (solo soporta HTTP Streamable)

{
  "mcpServers": {
    "github": {
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {"Authorization": "Bearer <your PAT>"}
    }
  }
}

Uso 🚀

MCPCLIHost es una herramienta CLI que te permite interactuar con varios modelos de IA a través de una interfaz unificada. Soporta varias herramientas a través de servidores MCP.

Modelos Disponibles

Los modelos se pueden especificar usando la bandera --model (-m):

  • Deepseek: deepseek:deepseek-chat
  • OpenAI: openai:gpt-4
  • Modelos Ollama: ollama:modelname
  • Azure Openai: azure:gpt-4-0613
  • Gemini: gemini:gemini-2.5-flash

Ejemplos

# Use Ollama with Qwen model
mcpclihost -m ollama:qwen2.5:3b

# Use Deepseek
mcpclihost -m deepseek:deepseek-chat --sys-prompt 'You are a slightly playful assistant, please answer questions in a cute tone!'

Banderas

  • --config string: Ubicación del archivo de configuración (por defecto es $HOME/mcp.json)
  • --debug: Habilitar registro de depuración
  • --message-window int: Número de mensajes a mantener en contexto (por defecto: 10)
  • -m, --model string: Modelo a usar (formato: proveedor:modelo) (por defecto "anthropic:claude-3-5-sonnet-latest")
  • --base-url string: URL base para la API de OpenAI (por defecto api.openai.com)
  • --roots string: Clientes MCP para exponer "raíces" del sistema de archivos a los servidores
  • --sys-prompt string: Prompt del sistema

Comandos Interactivos

Mientras chateas, puedes usar:

  • /help: Mostrar comandos disponibles
  • /tools: Listar todas las herramientas disponibles
  • /exclude_tool tool_name: Excluir una herramienta específica de la conversación
  • /resources: Listar todos los recursos disponibles
  • /get_resource: Obtener recursos específicos por uri, ejemplo: /get_resource resource_uri
  • /prompts: Listar todos los prompts disponibles
  • /get_prompt: Obtener un prompt específico por nombre, ejemplo: /get_prompt prompt_name
  • /servers: Listar servidores MCP configurados
  • /history: Mostrar historial de conversación
  • /quit: Salir en cualquier momento

Compatibilidad con Servidores MCP 🔌

MCPCliHost puede funcionar con cualquier servidor compatible con MCP. Para ejemplos e implementaciones de referencia, consulta el Repositorio de Servidores MCP.

Problemas Conocidos 🐛

  • En el escenario de Sampling y Elicitation, al escribir "Ctrl+c", el proceso se bloqueará con algo como asyncio.exceptions.CancelledError, se resolverá más adelante.

Licencia 📄

Este proyecto está licenciado bajo la Licencia Apache 2.0 - consulta el archivo LICENCIA para más detalles.