DeepSeek MCP Server
Un servidor MCP para la API de DeepSeek, que proporciona revisión de código, gestión de archivos y gestión de cuentas.
Documentación
DeepSeek MCP Server
Un servidor MCP de nivel de producción que se integra con la API de DeepSeek, con capacidades avanzadas de revisión de código, gestión eficiente de archivos y administración de cuentas de API.
Características
- Soporte Multi-Modelo: Elija entre varios modelos DeepSeek, incluidos DeepSeek Chat y DeepSeek Coder
- Enfoque en Revisión de Código: Prompt de sistema integrado para análisis detallado de código con salida en markdown
- Manejo Automático de Archivos: Gestión de archivos integrada con integración directa de rutas
- Administración de Cuentas API: Verifique el saldo y estime el uso de tokens
- Soporte de Modo JSON: Solicite respuestas JSON estructuradas para facilitar el análisis
- Manejo Avanzado de Errores: Degradación elegante con registro estructurado de errores
- Lógica de Reintentos Mejorada: Reintentos automáticos con retroceso exponencial configurable para llamadas a la API
- Seguridad: Restricciones de tipos de archivo y límites de tamaño configurables
- Monitoreo de Rendimiento: Recopilación de métricas integrada para latencia de solicitudes y rendimiento
Requisitos Previos
- Go 1.21+
- Clave de API de DeepSeek
- Conocimiento básico del protocolo MCP
Instalación e Inicio Rápido
# Clone and build
git clone https://github.com/your-username/DeepseekMCP
cd DeepseekMCP
go build -o bin/mcp-deepseek
# Start server with environment variables
export DEEPSEEK_API_KEY=your_api_key
export DEEPSEEK_MODEL=deepseek-chat
./bin/mcp-deepseek
Configuración
Claude Desktop
{
"mcpServers": {
"deepseek": {
"command": "/Your/project/path/bin/mcp-deepseek",
"env": {
"DEEPSEEK_API_KEY": "YOUR_API_KEY",
"DEEPSEEK_MODEL": "deepseek-chat"
}
}
}
}
Variables de Entorno
| Variable | Descripción | Predeterminado |
|---|---|---|
DEEPSEEK_API_KEY | Clave de API de DeepSeek | Requerido |
DEEPSEEK_MODEL | ID de modelo de los modelos disponibles | deepseek-chat |
DEEPSEEK_SYSTEM_PROMPT | Prompt de sistema para revisión de código | Prompt de revisión de código predeterminado |
DEEPSEEK_SYSTEM_PROMPT_FILE | Ruta al archivo que contiene el prompt de sistema | Vacío |
DEEPSEEK_MAX_FILE_SIZE | Tamaño máximo de carga (bytes) | 10485760 (10MB) |
DEEPSEEK_ALLOWED_FILE_TYPES | Tipos MIME separados por comas | [Tipos comunes de texto/código] |
DEEPSEEK_TIMEOUT | Tiempo de espera de la API en segundos | 90 |
DEEPSEEK_MAX_RETRIES | Máximo de reintentos de API | 2 |
DEEPSEEK_INITIAL_BACKOFF | Tiempo inicial de retroceso (segundos) | 1 |
DEEPSEEK_MAX_BACKOFF | Tiempo máximo de retroceso (segundos) | 10 |
DEEPSEEK_TEMPERATURE | Temperatura del modelo (0.0-1.0) | 0.4 |
Ejemplo .env:
DEEPSEEK_API_KEY=your_api_key
DEEPSEEK_MODEL=deepseek-chat
DEEPSEEK_SYSTEM_PROMPT="Your custom code review prompt here"
# Alternative: load system prompt from file
# DEEPSEEK_SYSTEM_PROMPT_FILE=/path/to/prompt.txt
DEEPSEEK_MAX_FILE_SIZE=5242880 # 5MB
DEEPSEEK_ALLOWED_FILE_TYPES=text/x-go,text/markdown
DEEPSEEK_TEMPERATURE=0.7
Herramientas Principales de la API
Actualmente, el servidor proporciona las siguientes herramientas:
deepseek_ask
Se utiliza para análisis de código, revisión y consultas generales con inclusión opcional de rutas de archivo.
{
"name": "deepseek_ask",
"arguments": {
"query": "Review this Go code for concurrency issues...",
"model": "deepseek-chat",
"systemPrompt": "Optional custom review instructions",
"file_paths": ["main.go", "config.go"],
"json_mode": false
}
}
deepseek_models
Enumera todos los modelos DeepSeek disponibles con sus capacidades.
{
"name": "deepseek_models",
"arguments": {}
}
deepseek_balance
Verifica el saldo de su cuenta de API de DeepSeek y el estado de disponibilidad.
{
"name": "deepseek_balance",
"arguments": {}
}
deepseek_token_estimate
Estima el número de tokens para texto o un archivo para ayudar con la gestión de cuotas.
{
"name": "deepseek_token_estimate",
"arguments": {
"text": "Your text to estimate...",
"file_path": "path/to/your/file.go"
}
}
Modelos Soportados
Los siguientes modelos DeepSeek son compatibles por defecto:
| ID de Modelo | Descripción |
|---|---|
deepseek-chat | Modelo de chat de propósito general que equilibra rendimiento y eficiencia |
deepseek-coder | Modelo especializado para tareas de codificación y técnicas |
deepseek-reasoner | Modelo optimizado para tareas de razonamiento y resolución de problemas |
Nota: Los modelos realmente disponibles pueden variar según su nivel de acceso a la API. El servidor descubrirá automáticamente y pondrá a disposición todos los modelos a los que tenga acceso a través de la API de DeepSeek.
Tipos de Archivo Soportados
| Extensión | Tipo MIME |
|---|---|
| .go | text/x-go |
| .py | text/x-python |
| .js | text/javascript |
| .md | text/markdown |
| .java | text/x-java |
| .c/.h | text/x-c |
| .cpp/.hpp | text/x-c++ |
| 25+ más | (Consulte getMimeTypeFromPath en deepseek.go) |
Notas Operativas
- Modo Degradado: Entra automáticamente en modo seguro ante errores de inicialización
- Registro de Auditoría: Todas las operaciones se registran con marcas de tiempo y metadatos
- Seguridad: El contenido de los archivos se valida por tipo MIME y tamaño antes del procesamiento
Manejo de Archivos
El servidor maneja archivos directamente a través de la herramienta deepseek_ask:
- Especifique rutas de archivo locales en el parámetro de matriz
file_paths - El servidor automáticamente:
- Lee los archivos de las rutas proporcionadas
- Determina el tipo MIME correcto según la extensión del archivo
- Sube el contenido del archivo a la API de DeepSeek
- Utiliza los archivos como contexto para la consulta
Este enfoque directo de manejo de archivos elimina la necesidad de endpoints separados de carga/gestión de archivos.
Soporte de Modo JSON
Para integraciones que requieren salida de datos estructurados, el servidor admite el modo JSON:
- Respuestas Estructuradas: Solicite respuestas JSON correctamente formateadas de los modelos DeepSeek
- Amigable con Analizadores: Ideal para pipelines de CI/CD y sistemas de automatización
- Integración Fácil: Simplemente configure
json_mode: trueen su solicitud
Ejemplo con modo JSON:
{
"name": "deepseek_ask",
"arguments": {
"query": "Analyze this code and return a JSON object with: issues_found (array of strings), complexity_score (number 1-10), and recommendations (array of strings)",
"model": "deepseek-chat",
"json_mode": true,
"file_paths": ["main.go", "config.go"]
}
}
Esto devuelve una respuesta JSON bien formada que su aplicación puede analizar directamente.
Desarrollo
Opciones de Línea de Comandos
El servidor admite estas opciones de línea de comandos para anular las variables de entorno:
# Override the DeepSeek model to use
./bin/mcp-deepseek -deepseek-model=deepseek-coder
# Override the system prompt
./bin/mcp-deepseek -deepseek-system-prompt="Your custom prompt here"
# Override the temperature setting (0.0-1.0)
./bin/mcp-deepseek -deepseek-temperature=0.8
Ejecutar Pruebas
Para ejecutar pruebas:
go test -v ./...
Ejecutar Linter
golangci-lint run
Formatear Código
gofmt -w .
Licencia
Contribuciones
¡Las contribuciones son bienvenidas! No dude en enviar una Pull Request.
- Haga un fork del proyecto
- Cree su rama de características (
git checkout -b feature/amazing-feature) - Haga commit de sus cambios (
git commit -m 'Add some amazing feature') - Haga push a la rama (
git push origin feature/amazing-feature) - Abra una Pull Request