DeepSeek MCP Server

Um servidor MCP para a API DeepSeek, oferecendo revisão de código, gerenciamento de arquivos e gerenciamento de conta.

Documentação

DeepSeek MCP Server

Um servidor MCP de nível de produção que integra com a API da DeepSeek, apresentando recursos avançados de revisão de código, gerenciamento eficiente de arquivos e gerenciamento de conta de API.

Recursos

  • Suporte a Múltiplos Modelos: Escolha entre vários modelos DeepSeek, incluindo DeepSeek Chat e DeepSeek Coder
  • Foco em Revisão de Código: Prompt de sistema integrado para análise detalhada de código com saída em markdown
  • Manipulação Automática de Arquivos: Gerenciamento de arquivos integrado com integração direta de caminhos
  • Gerenciamento de Conta de API: Verifique saldo e estime o uso de tokens
  • Suporte a Modo JSON: Solicite respostas JSON estruturadas para fácil análise
  • Tratamento Avançado de Erros: Degradação graciosa com registro estruturado de erros
  • Lógica de Repetição Aprimorada: Repetições automáticas com backoff exponencial configurável para chamadas de API
  • Segurança: Restrições configuráveis de tipos de arquivo e limites de tamanho
  • Monitoramento de Desempenho: Coleta integrada de métricas para latência de solicitações e throughput

Pré-requisitos

  • Go 1.21+
  • Chave de API DeepSeek
  • Compreensão básica do protocolo MCP

Instalação e Início 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

Configuração

Claude Desktop

{
  "mcpServers": {
    "deepseek": {
      "command": "/Your/project/path/bin/mcp-deepseek",
      "env": {
        "DEEPSEEK_API_KEY": "YOUR_API_KEY",
        "DEEPSEEK_MODEL": "deepseek-chat"
      }
    }
  }
}

Variáveis de Ambiente

VariávelDescriçãoPadrão
DEEPSEEK_API_KEYChave de API DeepSeekObrigatória
DEEPSEEK_MODELID do modelo entre os modelos disponíveisdeepseek-chat
DEEPSEEK_SYSTEM_PROMPTPrompt de sistema para revisão de códigoPrompt padrão de revisão de código
DEEPSEEK_SYSTEM_PROMPT_FILECaminho para o arquivo contendo o prompt de sistemaVazio
DEEPSEEK_MAX_FILE_SIZETamanho máximo de upload (bytes)10485760 (10MB)
DEEPSEEK_ALLOWED_FILE_TYPESTipos MIME separados por vírgula[Tipos comuns de texto/código]
DEEPSEEK_TIMEOUTTempo limite da API em segundos90
DEEPSEEK_MAX_RETRIESMáximo de repetições da API2
DEEPSEEK_INITIAL_BACKOFFTempo inicial de backoff (segundos)1
DEEPSEEK_MAX_BACKOFFTempo máximo de backoff (segundos)10
DEEPSEEK_TEMPERATURETemperatura do modelo (0.0-1.0)0.4

Exemplo .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

Ferramentas Principais da API

Atualmente, o servidor fornece as seguintes ferramentas:

deepseek_ask

Usada para análise de código, revisão e consultas gerais com inclusão opcional de caminhos de arquivo.

{
  "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

Lista todos os modelos DeepSeek disponíveis com suas capacidades.

{
  "name": "deepseek_models",
  "arguments": {}
}

deepseek_balance

Verifica o saldo da conta da API DeepSeek e o status de disponibilidade.

{
  "name": "deepseek_balance",
  "arguments": {}
}

deepseek_token_estimate

Estima a contagem de tokens para texto ou um arquivo para ajudar no gerenciamento de cota.

{
  "name": "deepseek_token_estimate",
  "arguments": {
    "text": "Your text to estimate...",
    "file_path": "path/to/your/file.go"
  }
}

Modelos Suportados

Os seguintes modelos DeepSeek são suportados por padrão:

ID do ModeloDescrição
deepseek-chatModelo de chat de uso geral que equilibra desempenho e eficiência
deepseek-coderModelo especializado para tarefas de codificação e técnicas
deepseek-reasonerModelo otimizado para raciocínio e tarefas de resolução de problemas

Nota: Os modelos realmente disponíveis podem variar com base no seu nível de acesso à API. O servidor descobrirá automaticamente e disponibilizará todos os modelos aos quais você tem acesso através da API DeepSeek.

Tipos de Arquivo Suportados

ExtensãoTipo MIME
.gotext/x-go
.pytext/x-python
.jstext/javascript
.mdtext/markdown
.javatext/x-java
.c/.htext/x-c
.cpp/.hpptext/x-c++
25+ mais(Veja getMimeTypeFromPath em deepseek.go)

Notas Operacionais

  • Modo Degradado: Entra automaticamente em modo seguro em erros de inicialização
  • Registro de Auditoria: Todas as operações registradas com carimbos de data/hora e metadados
  • Segurança: Conteúdo do arquivo validado por tipo MIME e tamanho antes do processamento

Manipulação de Arquivos

O servidor lida com arquivos diretamente através da ferramenta deepseek_ask:

  1. Especifique caminhos de arquivos locais no parâmetro de array file_paths
  2. O servidor automaticamente:
    • Lê os arquivos dos caminhos fornecidos
    • Determina o tipo MIME correto com base na extensão do arquivo
    • Envia o conteúdo do arquivo para a API DeepSeek
    • Usa os arquivos como contexto para a consulta

Essa abordagem direta de manipulação de arquivos elimina a necessidade de endpoints separados de upload/gerenciamento de arquivos.

Suporte a Modo JSON

Para integrações que exigem saída de dados estruturados, o servidor suporta o modo JSON:

  • Respostas Estruturadas: Solicite respostas JSON formatadas corretamente dos modelos DeepSeek
  • Amigável para Parser: Ideal para pipelines de CI/CD e sistemas de automação
  • Integração Fácil: Basta definir json_mode: true na sua solicitação

Exemplo com 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"]
  }
}

Isso retorna uma resposta JSON bem formada que pode ser analisada diretamente pela sua aplicação.

Desenvolvimento

Opções de Linha de Comando

O servidor suporta estas opções de linha de comando para substituir variáveis de ambiente:

# 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

Executando Testes

Para executar testes:

go test -v ./...

Executando Linter

golangci-lint run

Formatando Código

gofmt -w .

Licença

Licença MIT

Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.

  1. Faça um fork do projeto
  2. Crie sua branch de recurso (git checkout -b feature/amazing-feature)
  3. Faça commit das suas alterações (git commit -m 'Add some amazing feature')
  4. Envie para a branch (git push origin feature/amazing-feature)
  5. Abra um Pull Request