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ável | Descrição | Padrão |
|---|---|---|
DEEPSEEK_API_KEY | Chave de API DeepSeek | Obrigatória |
DEEPSEEK_MODEL | ID do modelo entre os modelos disponíveis | deepseek-chat |
DEEPSEEK_SYSTEM_PROMPT | Prompt de sistema para revisão de código | Prompt padrão de revisão de código |
DEEPSEEK_SYSTEM_PROMPT_FILE | Caminho para o arquivo contendo o prompt de sistema | Vazio |
DEEPSEEK_MAX_FILE_SIZE | Tamanho máximo de upload (bytes) | 10485760 (10MB) |
DEEPSEEK_ALLOWED_FILE_TYPES | Tipos MIME separados por vírgula | [Tipos comuns de texto/código] |
DEEPSEEK_TIMEOUT | Tempo limite da API em segundos | 90 |
DEEPSEEK_MAX_RETRIES | Máximo de repetições da API | 2 |
DEEPSEEK_INITIAL_BACKOFF | Tempo inicial de backoff (segundos) | 1 |
DEEPSEEK_MAX_BACKOFF | Tempo máximo de backoff (segundos) | 10 |
DEEPSEEK_TEMPERATURE | Temperatura 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 Modelo | Descrição |
|---|---|
deepseek-chat | Modelo de chat de uso geral que equilibra desempenho e eficiência |
deepseek-coder | Modelo especializado para tarefas de codificação e técnicas |
deepseek-reasoner | Modelo 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ão | 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+ 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:
- Especifique caminhos de arquivos locais no parâmetro de array
file_paths - 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: truena 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
Contribuindo
Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.
- Faça um fork do projeto
- Crie sua branch de recurso (
git checkout -b feature/amazing-feature) - Faça commit das suas alterações (
git commit -m 'Add some amazing feature') - Envie para a branch (
git push origin feature/amazing-feature) - Abra um Pull Request