Skip to main content
Glama
marlon-iac

dlp-invest-mcp

by marlon-iac
README.md
# dlp-invest-mcp

![PyPI](https://img.shields.io/pypi/v/dlp-invest-mcp)
![Python](https://img.shields.io/pypi/pyversions/dlp-invest-mcp)
![License](https://img.shields.io/pypi/l/dlp-invest-mcp)

Servidor MCP que expõe as integrações da **DLPInvest** como tools para assistentes de IA compatíveis com MCP.

---

## ⚠️ Pré-requisito

Antes de configurar o MCP, certifique-se de ter o `uv` instalado.

📖 Veja como instalar: [https://docs.astral.sh/uv/getting-started/installation/](https://docs.astral.sh/uv/getting-started/installation/)

---

## ⚡ Como usar

### Configurar o MCP

Copie o exemplo abaixo para o arquivo de configuração do seu IDE e substitua `DLP-seu-token-aqui` pelo seu token. Com o `uv` instalado, a IDE executa `uvx dlp-invest-mcp` ao iniciar o MCP; na primeira execução, o `uvx` baixa e executa o pacote automaticamente.

```json
{
  "mcpServers": {
    "dlp-invest": {
      "command": "uvx",
      "args": ["dlp-invest-mcp"],
      "env": {
        "DLP_INVEST_API_TOKEN": "DLP-seu-token-aqui",
        "DLP_INVEST_ACCESS_MODE": "read",
        "UV_LINK_MODE": "copy"
      }
    }
  }
}
```

---

## 🛠️ Tools Disponíveis

* Read:

  * `obter_operacoes`
  * `obter_carteira`
  * `obter_posicao`
  * `obter_rentabilidade`
  * `obter_extrato`
  * `obter_proventos`
  * `obter_ativos`
  * `obter_ativos_detalhes`
  * `obter_corretoras`
  * `obter_estrategias`
  * `obter_subestrategias`

* Write:
  * `adicionar_operacoes`

---

## 🎯 Exemplos de Perguntas

| Pergunta | Descrição |
|----------|------------|
| "Qual é minha posição atual na DLPInvest?" | Obtém a posição atual do usuário na carteira |
| "Mostre minhas operações recentes" | Lista as operações realizadas na conta |
| "Qual é a rentabilidade da minha carteira?" | Mostra o desempenho financeiro da carteira |
| "Gere um extrato detalhado" | Produz um extrato financeiro completo |
| "Quais corretoras estou usando?" | Lista as corretoras associadas à conta |
| "O que são as minhas estratégias atuais?" | Mostra as estratégias definidas pelo usuário |
| "Detalhe meu ativo mais valioso" | Fornece informações detalhadas sobre o ativo principal |
| "Calcule meu retorno anualizado" | Calcula métricas de retorno financeiro |
| "Mostre os subsistemas ativos" | Lista todos os subsistemas disponíveis |
| "Qual é o valor total da minha carteira?" | Somatório de todos os ativos |
| "Adicione uma nova operação" | adiciona operações via POST /operacoes |

*Essas interações são apenas exemplos*

---

## 🎛️ Modo de Acesso (Read/Write)

- **`DLP_INVEST_ACCESS_MODE=read`** - Modo somente-leitura: tools mutáveis não são expostas e requisições POST/PUT/DELETE são bloqueadas.
- **`DLP_INVEST_ACCESS_MODE=write`** (padrão) - Habilita as tools mutáveis implementadas. Atualmente, `adicionar_operacoes` envia operações para `POST /operacoes`.

Os valores não diferenciam maiúsculas de minúsculas e espaços nas pontas são ignorados. Valores diferentes de `read` e `write` impedem a inicialização do servidor.

---

## Licença

MIT — veja [LICENSE](LICENSE).

TDQS

A3.5/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a distinct resource: operations, portfolio, positions, profitability, statement, dividends, assets, asset details, brokers, strategies, and sub-strategies. Descriptions clarify boundaries, and there is no apparent overlap (e.g., operations vs. statement are differentiated by filters and purpose).

Naming Consistency5/5

All tools follow the exact same pattern: obter_<resource>_tool in snake_case. The convention is fully consistent across the entire set.

Tool Count5/5

Eleven tools are well within the ideal range (3–15) and each maps to a meaningful read operation for an investment data retrieval server. No tool feels redundant or out of place.

Completeness4/5

The surface covers core read-only needs: portfolio, positions, operations, profitability, statement, dividends, assets, brokers, strategies, and sub-strategies. Minor gaps exist (e.g., no write operations, no asset price history), but these may be intentional for a read-only reporting server.

Maintenance

ActivityMaintained
ResponsivenessResponsive