periodicos-capes-mcp
Version:
MCP server para consulta de periódicos científicos do Portal de Periódicos CAPES
142 lines (108 loc) • 5.71 kB
Markdown
<div align="center">
<h1>MCP Server - Periódicos CAPES</h1>
<a href="https://www.npmjs.com/package/periodicos-capes-mcp"><img src="https://img.shields.io/npm/v/periodicos-capes-mcp" alt="NPM Version" /></a>
<img src="https://img.shields.io/github/last-commit/damarals/periodicos-capes-mcp/main?path=README.md&label=%C3%BAltima%20atualiza%C3%A7%C3%A3o&color=blue" alt="Latest Update" >
</div>
<br />
<div align="center"><strong>Servidor MCP para Consulta de Periódicos Científicos</strong></div>
<div align="center">Uma ferramenta para buscar e analisar artigos científicos do Portal de Periódicos CAPES<br/> através do protocolo Model Context Protocol (MCP).</div>
<br />
<div align="center">
<sub>Desenvolvido por <a href="https://github.com/damarals">Daniel Amaral</a> 👨💻</sub>
</div>
<br />
## Introdução
O MCP Server - Periódicos CAPES implementa o protocolo Model Context Protocol para permitir que modelos de linguagem consultem diretamente o Portal de Periódicos CAPES. Oferece busca paralela, metadados completos, métricas de citação integradas e diferentes modos de operação para otimizar performance conforme necessário.
## Características
- Busca automatizada no Portal CAPES com processamento paralelo
- Métricas integradas: OpenAlex (citações, FWCI) + Qualis (classificação brasileira)
- Filtros por qualidade, ano, tipo de documento, idioma
- Export RIS integrado com economia de tokens
- Modo de metadados apenas para otimização de performance
## Instalação
```bash
npm install -g periodicos-capes-mcp
```
**Configuração:**
```bash
# Claude Code - adicionar automaticamente
claude mcp add capes periodicos-capes-mcp
```
**Ou configurar manualmente (Claude Code/Desktop):**
```json
{
"mcpServers": {
"capes": {
"command": "periodicos-capes-mcp"
}
}
}
```
## Como Usar
O servidor fornece duas ferramentas principais:
### search_capes
Busca artigos no Portal de Periódicos CAPES com opções avançadas de filtragem.
**Parâmetros:**
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|-----------|------|-------------|--------|-----------|
| `query` | string | ✓ | - | String de busca |
| `max_pages` | number | ✗ | - | Número máximo de páginas para buscar |
| `max_results` | number | ✗ | - | Número máximo de artigos para retornar |
| `full_details` | boolean | ✗ | `false` | Se deve buscar metadados completos |
| `max_workers` | number | ✗ | `5` | Número máximo de workers paralelos |
| `timeout` | number | ✗ | `30000` | Timeout em milissegundos |
| `advanced` | boolean | ✗ | `true` | Usar sintaxe avançada |
| `document_types` | array | ✗ | - | Filtrar por tipos: 'Artigo', 'Capítulo de livro', 'Carta', 'Errata', 'Revisão' |
| `open_access_only` | boolean | ✗ | - | Filtrar por acesso aberto (true/false/undefined) |
| `peer_reviewed_only` | boolean | ✗ | - | Filtrar por revisão por pares (true/false/undefined) |
| `year_min` | number | ✗ | - | Ano mínimo de publicação (1800-2030) |
| `year_max` | number | ✗ | - | Ano máximo de publicação (1800-2030) |
| `languages` | array | ✗ | - | Filtrar por idiomas: 'Inglês', 'Português', 'Espanhol', 'Francês', 'Alemão', 'Italiano' |
| `include_metrics` | boolean | ✗ | `false` | Incluir métricas OpenAlex e Qualis |
| `export_ris` | boolean | ✗ | `false` | Exportar resultados para arquivo RIS |
| `ris_output_dir` | string | ✗ | diretório atual | Diretório de saída do arquivo RIS |
| `ris_return_content` | boolean | ✗ | `false` | Incluir conteúdo RIS na resposta |
| `show_metadata_only` | boolean | ✗ | `false` | Retornar apenas metadados para economizar tokens |
**Funcionalidades Integradas:**
- **Export RIS Integrado**: Use `export_ris: true` para exportar automaticamente os resultados para formato RIS durante a busca
- **Economia de Tokens**: Use `show_metadata_only: true` para retornar apenas metadados (total_found, query, etc.) sem os artigos completos
- **Combinação Perfeita**: `export_ris: true` + `show_metadata_only: true` = exporta arquivo RIS + retorna apenas metadados da operação
Use `include_metrics: true` para obter métricas de citação (OpenAlex) e classificação Qualis integradas aos resultados.
**Exemplo Completo:**
```json
{
"query": "machine learning wildfires",
"max_results": 10,
"full_details": true,
"export_ris": true,
"show_metadata_only": true,
"year_min": 2020,
"document_types": ["Artigo"],
"open_access_only": true
}
```
**💡 Dica:** Para preview rápido dos resultados sem baixar artigos completos, use `show_metadata_only: true`.
### get_article_details
Obtém metadados completos de um artigo específico usando seu ID.
**Parâmetros:**
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|-----------|------|-------------|--------|-----------|
| `article_id` | string | ✓ | - | ID do artigo no CAPES |
| `timeout` | number | ✗ | `30000` | Timeout em milissegundos |
**💡 Exportação RIS:** A funcionalidade de export RIS foi integrada diretamente ao `search_capes`. Use `export_ris: true` para exportar automaticamente durante a busca.
## Desenvolvimento
```bash
# Clonar repositório
git clone https://github.com/damarals/periodicos-capes-mcp.git
cd periodicos-capes-mcp
# Instalar dependências
npm install
# Compilar
npm run build
# Executar
npm start
```
## Contribuindo
Contribuições são sempre bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests. Se encontrar algum problema ou quiser sugerir uma melhoria, não hesite em contribuir.
## Licença
Este projeto está licenciado sob a licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.