GPT Chat MCP
Servidor MCP para la API de OpenAI ChatGPT: chat, visión y embeddings
Documentación
mcp-server-gpt-chat
Un servidor MCP (Model Context Protocol) para la API de OpenAI ChatGPT. Construido en Rust, expone completaciones de chat, visión, embeddings y listado de modelos como herramientas MCP.
Se comunica mediante stdio usando JSON-RPC 2.0, como todos los servidores MCP.
Herramientas
| Herramienta | Descripción |
|---|---|
chat | Envía una solicitud de completación de chat a ChatGPT con historial multi-turno opcional, prompt de sistema, salida estructurada (esquema JSON) y selección de modelo |
chat_with_vision | Analiza una imagen con las capacidades de visión de ChatGPT dado un URL de imagen y un prompt de texto |
embedding | Genera embeddings de texto usando el modelo de embedding de OpenAI |
list_models | Lista todos los modelos de OpenAI disponibles y sus IDs |
chat
Envía una solicitud de completación de chat. Soporta conversaciones multi-turno mediante un arreglo JSON de historial de mensajes, prompts de sistema, salida estructurada mediante esquema JSON, control de temperatura y selección de modelo.
Parámetros:
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
prompt | string | sí | El mensaje del usuario a enviar |
model | string | no | Modelo a usar (predeterminado: gpt-4o) |
system_prompt | string | no | Prompt de sistema para establecer contexto |
messages | string | no | Historial completo de conversación como arreglo JSON de objetos {role, content} |
temperature | float | no | Temperatura de muestreo (0.0 - 2.0) |
max_tokens | integer | no | Máximo de tokens a generar |
response_schema | string | no | Cadena de esquema JSON para forzar salida estructurada |
chat_with_vision
Analiza una imagen usando las capacidades de visión de ChatGPT.
Parámetros:
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
prompt | string | sí | Prompt de texto que describe qué analizar |
image_url | string | sí | URL de la imagen (debe ser http:// o https://) |
model | string | no | Modelo a usar (predeterminado: gpt-4o) |
detail | string | no | Nivel de detalle de la imagen: low o high (predeterminado: high) |
temperature | float | no | Temperatura de muestreo (0.0 - 2.0) |
max_tokens | integer | no | Máximo de tokens a generar |
embedding
Genera embeddings de texto.
Parámetros:
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
input | string | sí | Texto a embeber como JSON: una sola cadena o un arreglo de cadenas |
model | string | no | Modelo de embedding a usar (predeterminado: text-embedding-3-small) |
list_models
Lista todos los modelos de OpenAI disponibles. Sin parámetros.
Requisitos previos
- Rust (edición 2024)
- Una clave de API de OpenAI de platform.openai.com
Configuración
Crea el archivo de configuración:
mkdir -p ~/.config/mcp-server-gpt-chat
Crea ~/.config/mcp-server-gpt-chat/config.toml:
api_key = "sk-..."
Compilación
cargo build --release
Esto produce target/release/gpt-chat.
Para desarrollo:
cargo build # debug build
cargo run # run in dev mode
RUST_LOG=debug cargo run # run with debug logging
Configuración de MCP
Agrega a tu configuración de Claude Desktop (~/.config/Claude/claude_desktop_config.json):
{
"mcpServers": {
"gpt-chat": {
"command": "/path/to/gpt-chat"
}
}
}
Estructura del Proyecto
src/
main.rs - entry point, config loading, stdio transport setup
server.rs - MCP tool definitions (chat, chat_with_vision, embedding, list_models)
api.rs - OpenAI HTTP client, request/response types, response formatters
params.rs - tool parameter types with serde and JSON Schema derives
config.rs - TOML config loading
Licencia
MIT