OpenAI

Un puente hacia las APIs de Chat Completion y Assistants de OpenAI.

Documentación

Servidor MCP para OpenAI

Este proyecto proporciona un servidor compatible con el Protocolo de Comunicación Máquina a Máquina (MCP) que actúa como puente hacia diversas funcionalidades de la API de OpenAI. Permite que los clientes MCP interactúen con las APIs de Chat Completion y Assistants de OpenAI a través de un conjunto estandarizado de herramientas.

Características

El servidor expone varias herramientas para interactuar con la API de OpenAI:

  • Chat Completion: Haz una pregunta directa a un modelo especificado (gpt-4, gpt-3.5-turbo).
  • Gestión de Asistentes: Crea, lista, recupera, actualiza y elimina asistentes.
  • Gestión de Archivos: Sube, lista y elimina archivos asociados con asistentes.
  • Gestión de Herramientas: Habilita o deshabilita herramientas para asistentes, como file_search.

Instalación

Para instalar las dependencias necesarias, navega a la raíz del proyecto y ejecuta:

pip install .

Esto instalará todos los paquetes definidos en pyproject.toml, incluyendo mcp, openai y click.

Uso

Para iniciar el servidor, necesitas proporcionar tu clave de API de OpenAI. Puedes hacerlo configurando una variable de entorno o pasándola como argumento de línea de comandos.

Usando una variable de entorno:

export OPENAI_API_KEY='your-api-key-here'
mcp-server-openai

Usando un argumento de línea de comandos:

mcp-server-openai --openai-api-key 'your-api-key-here'

El servidor se iniciará y escuchará mensajes MCP a través de stdio.

Uso en Cursor

Para configurar este servidor en un cliente MCP como Cursor, usa la siguiente configuración. Reemplaza "LOCAL PATH" con la ruta absoluta al directorio de este proyecto y "OPENAI API KEY" con tu clave real.

{
  "mcpServers": {
    "openai-server": {
      "command": "mcp-server-openai",
      "args": [],
      "env": {
        "PYTHONPATH": "LOCAL PATH",
        "OPENAI_API_KEY": "OPENAI API KEY"
      }
    }
  }
}

Herramientas Disponibles

Aquí hay una lista detallada de las herramientas expuestas por el servidor:

HerramientaDescripciónParámetros
ask-openaiHaz una pregunta directa.query (cadena), model (enumeración: gpt-4.1, gpt-4.1-mini, gpt-4o, etc.), temperature (número), max_tokens (entero)
list-assistantsLista todos los asistentes disponibles.Ninguno
retrieve-assistantRecupera un asistente por su ID.assistant_id (cadena)
create-assistantCrea un nuevo asistente.name (cadena), instructions (cadena), model (cadena), temperature (número), file_ids (matriz de cadenas), enable_file_search (booleano)
update-assistantActualiza un asistente existente.assistant_id (cadena), name (cadena, opcional), instructions (cadena, opcional), model (cadena, opcional), temperature (número, opcional), file_ids (matriz de cadenas, opcional), enable_file_search (booleano, opcional)
delete-assistantElimina un asistente por su ID.assistant_id (cadena)
upload-fileSube un archivo para usar con asistentes.file_path (cadena)
list-filesLista todos los archivos disponibles para asistentes.Ninguno
delete-fileElimina un archivo por su ID.file_id (cadena)

Precios de Modelos

A continuación se muestra una tabla de precios estimada para algunos de los modelos disponibles a través de este servidor. Los precios son por 1 millón de tokens. Verifica los precios más recientes en la página oficial de precios de OpenAI, ya que pueden cambiar.

ModeloPrecio de Entrada / 1M tokensPrecio de Salida / 1M tokens
gpt-4o$5.00$15.00
gpt-4o-mini$0.15$0.60
gpt-4-turbo$10.00$30.00
gpt-3.5-turbo$0.50$1.50

Desarrollo

Para contribuir a este proyecto, clona el repositorio e instálalo en modo editable:

git clone https://github.com/snilld-ai/openai-assistant-mcp
cd openai-assistant-mcp
pip install -e .

Pruebas

El proyecto incluye un archivo de prueba básico para verificar la conexión con la API de OpenAI. Para ejecutar las pruebas, usa pytest:

pytest

Asegúrate de tener configurada tu variable de entorno OPENAI_API_KEY.

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENCIA para más detalles.