Skip to main content
Glama
Werverton

MCP Acadêmico

by Werverton
README.md
# 🎓 MCP Acadêmico

Servidor MCP (Model Context Protocol) para auxiliar na escrita de artigos acadêmicos, dissertações e teses. Extrai, organiza e referencia artigos científicos em PDF com formatação ABNT.

## O que este MCP faz

| Ferramenta | Função |
|---|---|
| `listar_artigos` | Lista todos os artigos cadastrados e PDFs disponíveis |
| `cadastrar_artigo` | Registra metadados de um artigo (autores, título, DOI, etc.) |
| `extrair_pdf` | Extrai o texto completo de um PDF (com cache) |
| `fichar_artigo` | Prepara fichamento estruturado (resumo, método, citações) |
| `buscar_nos_artigos` | Busca um termo em todos os artigos de uma vez |
| `extrair_citacao` | Gera referência ABNT completa, citação direta ou indireta |
| `comparar_metodologias` | Compara metodologias de múltiplos artigos |
| `estruturar_artigo` | Sugere estrutura completa para seu artigo de mestrado |
| `gerar_secao` | Prepara material de referência para escrever uma seção específica |
| `limpar_cache` | Limpa o cache de textos extraídos |

---

## Instalação

### 1. Instalar dependências

```bash
cd mcp-academico
npm install
```

### 2. Compilar

```bash
npm run build
```

### 3. Configurar no Claude Code

Adicione no seu arquivo `~/.claude/claude_desktop_config.json` (ou `%APPDATA%\Claude\claude_desktop_config.json` no Windows):

```json
{
  "mcpServers": {
    "academico": {
      "command": "node",
      "args": ["C:\\Users\\werve\\Downloads\\claude\\mcp-academico\\dist\\index.js"]
    }
  }
}
```

**Alternativa via `settings.json`** (Claude Code CLI):

```json
{
  "mcpServers": {
    "academico": {
      "command": "node",
      "args": ["dist/index.js"],
      "cwd": "C:\\Users\\werve\\Downloads\\claude\\mcp-academico"
    }
  }
}
```

---

## Fluxo de Uso Recomendado

### Passo 1: Coloque seus PDFs
Copie todos os PDFs dos artigos para a pasta `referencias/`.

### Passo 2: Cadastre os metadados
Para cada artigo, use `cadastrar_artigo`:

```
→ Use a ferramenta cadastrar_artigo para cadastrar o artigo com:
  id: "silva2023"
  arquivo: "silva2023.pdf"
  titulo: "Uma Análise da Aplicação de IA na Educação Brasileira"
  autores: [{"sobrenome":"Silva","nome":"João"},{"sobrenome":"Santos","nome":"Maria"}]
  ano: 2023
  tipo: "artigo"
  revista: "Revista Brasileira de Educação"
  doi: "10.1234/rbe.2023.001"
```

### Passo 3: Extraia os textos
```
→ Use extrair_pdf para extrair o texto de "silva2023.pdf"
```

### Passo 4: Faça fichamentos
```
→ Use fichar_artigo para fazer o fichamento de "silva2023"
```

### Passo 5: Estruture seu artigo
```
→ Use estruturar_artigo com tema: "Aplicação de IA na Educação"
```

### Passo 6: Escreva seção por seção
```
→ Use gerar_secao com secao: "referencial_teorico" e tema_pesquisa: "IA na educação"
→ Depois use buscar_nos_artigos para aprofundar em conceitos específicos
→ Use extrair_citacao com tipo_citacao: "direta" para citações textuais
```

---

## Formato ABNT

O MCP gera automaticamente citações no formato ABNT:

**Citação inline (dentro do texto):**
- 1 autor: `(Silva, 2024)`
- 2 autores: `(Silva; Santos, 2024)`
- 3+ autores: `(Silva et al., 2024)`

**Referência completa:**
> SILVA, João Paulo; SANTOS, Maria Clara. Título do artigo. **Revista Brasileira de Pesquisa Exemplo**, São Paulo, v. 15, n. 2, p. 123-145, jan./jun. 2024. DOI: 10.1234/exemplo.2024.001.

---

## Dicas

1. **Mantenha o `artigos.json` organizado** — quanto mais completos os metadados, melhores as citações
2. **Use `buscar_nos_artigos` antes de escrever cada seção** — encontra conexões entre autores que você pode não ter notado
3. **Compare metodologias** com `comparar_metodologias` — ajuda muito a justificar suas escolhas metodológicas
4. **Cache é automático** — PDFs extraídos uma vez não precisam ser processados novamente
5. **Para PDFs grandes**, use o parâmetro `paginas` do `extrair_pdf` para ler apenas a seção que interessa

---

## Solução de Problemas

| Problema | Solução |
|---|---|
| `pdf-parse não está instalado` | Rode `npm install` |
| PDF não extrai texto | O PDF pode ser de imagem escaneada. Converta para PDF com texto usando OCR (ex: Adobe Acrobat, PDF24) |
| "Arquivo não encontrado" | Verifique se o PDF está na pasta `referencias/` e o nome está correto no cadastro |
| Cache desatualizado | Use `limpar_cache` para forçar re-extração |

TDQS

A4/5.0

Scored across 10 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: listing, registering, extracting, comparing, searching, citing, structuring, and generating sections. No overlap is apparent; even similar tools like 'fichar_artigo' and 'extrair_pdf' have different outputs (structured summary vs raw text).

Naming Consistency5/5

All tool names follow a consistent verb_infinitive_noun pattern in Portuguese (e.g., listar_artigos, cadastrar_artigo, extrair_pdf). No mixing of naming conventions or styles.

Tool Count5/5

10 tools is well-scoped for the domain of academic paper management and writing support. Each tool serves a necessary function without redundancy, covering the full workflow from import to writing assistance.

Completeness5/5

The toolset covers the entire lifecycle: adding articles (cadastrar, extrair), organizing (listar, buscar, comparar), structured extraction (fichar), citation formatting (extrair_citacao), and writing guidance (estruturar, gerar_secao). Minor gaps like automatic bibliography generation are mitigated by combining existing tools.

Maintenance

ActivitySlowing
ResponsivenessNo issues