Abnt
FreeNot checkedABNT Copilot MCP - Servidor Model Context Protocol definitivo para elaboração, revisão e compilação de TCCs, dissertações e artigos no padrão ABNT
About
ABNT Copilot MCP - Servidor Model Context Protocol definitivo para elaboração, revisão e compilação de TCCs, dissertações e artigos no padrão ABNT
README
Servidor Model Context Protocol para Padronização, Auditoria e Conformidade Documental Acadêmica (ABNT/IBGE)
Python Version FastMCP ABNT Standard License: MIT Tests Coverage CI/CD
1. Apresentação e Justificativa Científica
A elaboração de manuscritos técnico-científicos no Brasil — compreendendo Trabalhos de Conclusão de Curso (TCC), dissertações de mestrado, teses de doutorado e artigos para periódicos — exige estrita consonância com o arcabouço normativo estabelecido pela Associação Brasileira de Normas Técnicas (ABNT) e pelas diretrizes de representação tabular do Instituto Brasileiro de Geografia e Estatística (IBGE).
Apesar da ampla disseminação de Grandes Modelos de Linguagem (LLMs) como assistentes na pesquisa acadêmica, observa-se uma taxa reincidente de desvios normativos e alucinações estruturais, tais como:
- Persistência de padrões revogados: Utilização de autoria em CAIXA ALTA dentro de parênteses, prática formalmente extinta pela atualização da ABNT NBR 10520:2023;
- Inconsistências bibliográficas cruzadas: Citações órfãs no corpo do texto e obras listadas nas referências finais que jamais foram citadas;
- Ausência de distinção tipográfica entre Tabelas e Quadros: Violação sistemática das Normas Tabulares do IBGE (1993), que estabelecem o fechamento aberto para dados quantitativos e fechado para representações conceituais;
- Desvios de impessoalidade: Frequente introdução de pronomes em primeira pessoa e asserções opinativas desprovidas de respaldo empírico ou bibliográfico.
O ABNT Copilot MCP (abnt-mcp) implementa uma camada de infraestrutura via Model Context Protocol (MCP), dotando ambientes de desenvolvimento, clientes de IA e pesquisadores de mecanismos programáticos de auditoria, formatação formal, consulta em bases científicas indexadas e compilação direta para PDF.
2. Marco Regulatório e Normas Contempladas
O servidor foi arquitetado sob auditoria estrita das seguintes normas vigentes:
| Norma / Documento | Ano / Edição | Escopo no Servidor MCP |
|---|---|---|
| ABNT NBR 14724 | 2011 (Em vigor) | Estrutura completa de trabalhos acadêmicos (elementos pré-textuais, textuais e pós-textuais), tipografia, paginação (3-3-2-2), ilustrações e equações/fórmulas numeradas. |
| ABNT NBR 6022 | 2018 | Estrutura de artigos científicos em publicações periódicas (dispensa capa, folha de rosto e sumário; exige elementos textuais contínuos). |
| ABNT NBR 10520 | 2023 (Edição Vigente) | Sistema autor-data em caixa mista (Silva, 2023), citações diretas curtas (<=3 linhas) e longas (recuo de 4 cm, corpo 10, entrelinhas simples). |
| ABNT NBR 6023 | 2018 (Errata 2020) | Referências bibliográficas alinhadas à esquerda, destaque gráfico exclusivo no título principal e abreviatura padronizada de meses (maio sem ponto). |
| ABNT NBR 6024 | 2012 | Numeração progressiva das seções de um documento; erradicação de ponto final após o indicativo numérico (1.1 e nunca 1.1.). |
| ABNT NBR 6027 | 2012 | Apresentação e ordenação estrita de sumários a partir dos elementos textuais. |
| ABNT NBR 6028 | 2021 | Resumos documentais em parágrafo único (150 a 500 palavras) e representação de palavras-chave separadas por ponto e vírgula. |
| Normas IBGE | 1993 | Normas de apresentação tabular (distinção física entre tabelas abertas e quadros fechados). |
3. Arquitetura dos Pilares e Motor SDD (Spec-Driven Development)
O núcleo do sistema opera segregado em pilares modulares governados por especificações canônicas (specs/):
abnt-mcp/
├── specs/ # Especificações SDD Canônicas (Normas, Schema e Contratos MCP)
├── src/abnt_mcp/
│ └── pillars/
│ ├── diagnostics.py # Pilar 1: Análise Estrutural (14724/6022), Tom Científico e Auditoria
│ ├── writing.py # Pilar 2: Citações 2023, Referências 6023, Resumos e Figuras
│ ├── compiler.py # Pilar 3: Compilação Multi-engine (Typst Rust Nativo e LaTeX)
│ ├── advisory.py # Pilar 4: Crossref, SciELO, BibTeX por DOI e Simulação de Banca
│ └── spec.py # Motor SDD: Manifesto Científico abnt.spec.json / SPEC.md
Pilar 1: Analisar & Diagnosticar
- Validação Estrutural (NBR 14724 e NBR 6022): Valida a hierarquia documental para monografias (NBR 14724) e artigos científicos periódicos (NBR 6022), emitindo diagnósticos rastreáveis por IDs canônicos (
NBR14724-R01,NBR14724-R02,NBR6022-R01,NBR6024-R01). Analisa fontes.tex,.md,.type arquivos compilados.pdf. - Auditoria Cruzada Citações vs. Referências: Identifica chaves órfãs no texto e entradas inertes no arquivo
.bib, compatível com chamadas LaTeX (\cite,\citeonline,\apud,\citep), Markdown ([@ref],@ref) e Typst (@ref). - Análise de Impessoalidade e Rigor: Detecta pronomes de primeira pessoa, adjetivação hiperbólica, coloquialismos e parágrafos sem fundamentação.
Pilar 2: Redigir & Reformular
- Formatador de Citações (NBR 10520:2023): Assegura autoria em caixa baixa-alta dentro de parênteses
(Silva; Santos, 2023)e posicionamento do ponto final após os parênteses da indicação da fonte. - Formatador de Figuras e Ilustrações (NBR 14724): Gera a chamada textual obrigatória, identificação superior (
Figura X – Título) e fonte no rodapé (Fonte: Elaborado pelo autor (Ano).) acoplada sem vãos. - Diferenciação Tabular IBGE (1993): Implementa o padrão canônico com laterais e divisórias abertas em Tabelas e fechamento em moldura completa para Quadros.
- Formatador de Equações e Fórmulas (NBR 14724 item 5.9 e NBR14724-R04): Equações centralizadas e destacadas do texto com numeração consecutiva entre parênteses à margem direita, com explicação de variáveis iniciada por "onde:" sem recuo de parágrafo e entrelinha simples.
- Gerador de Resumo (NBR 6028:2021): Síntese em parágrafo único de 150 a 500 palavras estruturada em contexto, objetivo, metodologia, resultados e conclusão.
Pilar 3: Testar & Compilar
- Motor Tipográfico Nativo Embutido: Compilação ultra-rápida via biblioteca nativa em Rust (
typst), entregando arquivos.pdfdiretamente sem demandar a instalação de distribuições externas de LaTeX no sistema operacional. - Ciclo Completo abnTeX2: Suporte ao ciclo multi-pass (
pdflatex -> bibtex -> pdflatex -> pdflatex) oulatexmkpara resolução irrestrita de referências cruzadas[?]. - Linter de Sintaxe Pré-compilação: Mapeamento de ambientes desbalanceados (
\begin{...}sem\end{...}) e caracteres especiais desprotegidos com identificação da linha exata.
Pilar 4 & Motor SDD: Mentoria, Banca Examinadora e Especificação Científica
- Escrita Acadêmica Orientada a Especificação (
abnt.spec.json&SPEC.md): Formaliza em 3 camadas o Perfil Normativo, a Matriz Científica (OBJ-01,OBJ-02...) e os Capítulos Planejados, auditando automaticamente se cada objetivo específico prometido na Introdução foi desenvolvido no texto e respondido na Conclusão. - Recuperação de Literatura Primária: Consulta em tempo real às APIs abertas do Crossref e da rede SciELO, obtendo metadados completos (DOI, resumo, periódico e autores).
- Consistência de BibTeX por DOI: Obtenção automática de metadados oficiais diretamente de
doi.orgcom deduplicação nativa. - Simulador de Banca Avaliadora: Avaliação determinística do alinhamento entre os objetivos específicos da
abnt.spec.jsone os achados das Considerações Finais, formulando arguições personalizadas para objetivos pendentes.
4. Especificação Técnica das Interfaces MCP
O servidor expõe formalmente 19 ferramentas, 3 prompts orientados e 8 recursos canônicos sob a especificação do Model Context Protocol:
4.1. Ferramentas Operacionais (@mcp.tool)
| Identificador | Parâmetros de Entrada | Descrição Formal |
|---|---|---|
scaffold_academic_project |
project_path: str, title: str, author: str, document_type: str = "tcc", format: "typst"|"latex"|"markdown" = "typst", sample_pdf_path: str?, logo_path: str?, ... |
Inicializa a árvore do projeto com injeção dinâmica dos 9 elementos pré-textuais e listas reativas, aprendendo o perfil e brasão/logotipo de um PDF modelo. |
init_research_spec |
project_path: str, title: str, research_problem: str, general_objective: str, specific_objectives: list, methodology_summary: str, sample_pdf_path: str?, logo_path: str?, ... |
Inicializa o manifesto científico SDD (abnt.spec.json e SPEC.md) em 3 camadas no projeto. |
audit_research_spec |
project_path: str, spec_path: str? |
Audita o manuscrito contra abnt.spec.json, validando objetivos (OBJ-XX), regras da instituição, ilustrações/tabelas, prontidão (submission_readiness) e salvando relatórios em .abnt-mcp/. |
simulate_banca |
project_path: str |
Simula arguição de banca examinadora com notas por eixo e cobrança direta de objetivos específicos pendentes. |
check_structure |
project_path: str, standard: str = "ABNT_14724" |
Analisa a conformidade dos elementos pré, textuais e pós-textuais (NBR 14724 e NBR 6022) de fontes ou PDFs. |
audit_illustrations_and_tables |
project_path: str |
Audita figuras, tabelas e quadros (chamada prévia obrigatória, Fonte:, caminhos de imagem, sequência e distinção Tabela vs Quadro IBGE). |
validate_citations |
project_path: str, bib_path: str? |
Auditoria cruzada entre texto e referências, apontando citações órfãs e violações de caixa alta. |
analyze_tone |
text: str |
Mensura o índice de rigor científico (0-100), sinalizando primeira pessoa e coloquialismos. |
format_citation |
authors: list[str], year: str|int, style: str, quote_type: str, page: str?, quote_text: str? |
Formatação de citações diretas (curtas/longas) e indiretas sob a NBR 10520:2023. |
format_reference |
entry_type: str, title: str, year: str|int, authors: list?, journal_name: str?, publisher: str?, ... |
Elaboração de referências conforme NBR 6023:2018 com destaque exclusivo no título principal. |
format_figure |
image_path: str, caption: str, source: str, figure_number: int|str |
Gera snippets para inserção formal de ilustrações (topo, centro, base com fonte e chamada textual). |
format_table |
title: str, headers: list[str], rows: list[list[str]], source: str, category: "tabela"|"quadro" |
Formatação de tabelas (Normas IBGE, laterais abertas) ou quadros (ABNT, bordas fechadas). |
format_equation |
expression: str, equation_number: int|str = 1, variable_definitions: list?|str?, label: str?, target_format: str = "typst" |
Formatação de equações matemáticas centralizadas, numeradas à direita e variáveis sem recuo (NBR 14724 item 5.9 e NBR14724-R04). |
generate_academic_resumo |
context: str, objective: str, methodology: str, results: str, conclusion: str, keywords: list[str], language: "pt"|"en" |
Redação de resumo ou abstract canônico contínuo (NBR 6028) com validação de extensão. |
search_academic_papers |
query: str, source: "all"|"crossref"|"scielo", limit: int = 5 |
Recuperação de artigos indexados com DOI, resumo e metadados estruturados. |
fetch_bibtex_by_doi |
doi: str, bib_file: str? |
Recupera a entrada BibTeX oficial via negociação de conteúdo e anexa ao .bib sem duplicatas. |
clean_bibtex_file |
bib_path: str, output_path: str? |
Higienização de arquivos BibTeX, conversão para UTF-8 estrito e normalização de meses ABNT. |
compile_tcc |
project_path: str, engine: "auto"|"typst"|"latex"|"markdown" |
Compilação direta para PDF no padrão ABNT com diagnóstico de erros e indicação de linhas. |
read_pdf_section |
pdf_path: str, pages: list[int]?, start_page: int?, end_page: int? |
Extração seletiva de texto e contagem lexical de documentos PDF para fins de auditoria. |
4.2. Prompts de Orientação e Revisão (@mcp.prompt)
revisar_capitulo(texto, foco): Instruções parametrizadas para parecer técnico contendo nota de rigor científico, diagnóstico de impessoalidade e proposta de reformulação.formatar_citacao(trecho, autor, ano, pagina, tipo): Geração de blocos canônicos de citação para Markdown, LaTeX (abntex2) e Typst.simular_banca(projeto_path): Análise de vulnerabilidades metodológicas, conformidade com a introdução e as principais perguntas de arguição para defesa oral.
4.3. Recursos Canônicos Integrados (@mcp.resource)
abnt://guia/citacoes: Síntese executiva da ABNT NBR 10520:2023.abnt://guia/estrutura: Checklist completo da NBR 14724:2011 e NBR 6024:2012.abnt://guia/referencias: Matriz tipológica de referências bibliográficas da NBR 6023:2018.abnt://guia/sdd: Guia de Escrita Acadêmica Orientada a Especificações (SDD).abnt://template/latex: Template funcional completo para LaTeX configurado com abnTeX2.abnt://template/typst: Template funcional moderno em Typst com geometria física 3-3-2-2.abnt://template/markdown: Template Pandoc com cabeçalho YAML e metadados para CSL.abnt://template/spec: Template JSON em 3 camadas do manifestoabnt.spec.json.
5. Instalação e Execução
O servidor é compatível com Python >=3.10 e preparado para execução direta através do gerenciador de ambientes uv:
Execução Instantânea via uvx (Zero Configuração)
# Via PyPI:
uvx abnt-mcp
# Ou diretamente da Release oficial no GitHub:
uvx --from git+https://github.com/PedroSmaxY/[email protected] abnt-mcp
Instalação via Gerenciador de Pacotes
# Utilizando uv:
uv pip install abnt-mcp
# Utilizando pip tradicional:
pip install abnt-mcp
# Execução do servidor MCP (transporte stdio padrão):
abnt-mcp
6. Configuração nos Ambientes de Pesquisa
Claude Desktop
Edite o arquivo de configuração do Claude Desktop (claude_desktop_config.json):
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS / Linux:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"abnt-mcp": {
"command": "uvx",
"args": ["abnt-mcp"]
}
}
}
Cursor IDE
No diretório raiz da sua pesquisa ou globalmente nas preferências do Cursor, configure .cursor/mcp.json:
{
"mcpServers": {
"abnt-mcp": {
"command": "uvx",
"args": ["abnt-mcp"]
}
}
}
Google Antigravity / Gemini CLI
No arquivo de registro de servidores MCP (mcp_config.json):
{
"mcpServers": {
"abnt-mcp": {
"command": "uvx",
"args": ["abnt-mcp"]
}
}
}
7. Garantia de Qualidade, Cobertura e CI/CD
A integridade do código-fonte e a fidelidade às normas técnicas são aferidas de forma contínua através de uma suíte automatizada no pytest, com auditoria de cobertura de código via pytest-cov e esteira de integração contínua (GitHub Actions CI/CD) multiplataforma.
7.1 Execução da Suíte de Testes
# Execução da suíte completa com análise de cobertura
uv run pytest -v --cov=abnt_mcp --cov-report=term-missing
============================= 76 passed in 1.25s =============================
tests/test_advisory.py (4 testes) -> Consulta Crossref/SciELO, DOI e Simulador de Banca
tests/test_compiler.py (4 testes) -> Linter de ambientes, tratamento de logs e engines
tests/test_diagnostics.py (6 testes) -> Estrutura NBR 14724, auditoria de citações e tom científico
tests/test_edge_cases.py (23 testes) -> Casos de borda (paginação NBR 14724, autores compostos, localizadores, IBGE vs ABNT)
tests/test_parsers.py (9 testes) -> Extratores LaTeX/MD/Typst, validação de caixa alta e extração de PDF
tests/test_sdd.py (13 testes) -> Trava Anti-Drift SDD, CHANGELOG/SemVer, scaffolding, PDF/logo institucional e relatórios
tests/test_server.py (6 testes) -> Registro e execução de tools, prompts e resources
tests/test_writing.py (11 testes) -> Citações 2023, Referências 6023, Resumo, Figuras e Tabelas
7.2 Relatório de Cobertura de Código
A suíte assegura 83% de cobertura global no núcleo do sistema:
| Módulo / Camada | Declarações | Cobertura | Escopo de Garantia |
|---|---|---|---|
abnt_mcp.config |
14 | 100% | Catálogo SDD (NORMATIVE_RULES), regexes normativas, meses ABNT e léxico |
abnt_mcp.models |
130 | 100% | Esquemas Pydantic e modelos de 3 camadas (ResearchSpec) |
abnt_mcp.parsers.citations |
81 | 91% | Extração e auditoria de citações em LaTeX, MD e Typst |
abnt_mcp.pillars.diagnostics |
174 | 89% | Validação NBR 14724 / NBR 6022, auditoria de .bib, tom científico e paginação |
abnt_mcp.pillars.writing |
204 | 87% | NBR 10520:2023, NBR 6023:2018, NBR 6028, tabelas IBGE e figuras |
abnt_mcp.server |
110 | 85% | Protocolo FastMCP (16 tools, 3 prompts, 8 resources) |
abnt_mcp.pillars.spec |
159 | 82% | Motor SDD (abnt.spec.json, SPEC.md e auditoria de objetivos específicos) |
abnt_mcp.pillars.advisory |
146 | 81% | Consultas Crossref, SciELO, BibTeX por DOI e banca integrada ao SDD |
abnt_mcp.parsers.bibtex |
92 | 80% | Sanitização, normalização e deduplicação de entradas |
abnt_mcp.parsers.pdf_reader |
98 | 80% | Auditoria forense de paginação NBR 14724 e extração de PDF |
abnt_mcp.pillars.compiler |
222 | 66% | Compilação nativa Typst, LaTeX abnTeX2 e Pandoc |
| Total do Ecossistema | 1464 | 83% | 69 testes aprovados |
7.3 Esteira de Integração Contínua (GitHub Actions)
A cada push ou pull request submetido à branch main, o pipeline automatizado (.github/workflows/ci.yml) valida o projeto em matriz cruzada:
- Sistemas Operacionais: Ubuntu Linux (
ubuntu-latest) e Windows Server (windows-latest). - Versões do Interpretador Python: 3.10, 3.11 e 3.12.
- Validações Automatizadas: Resolução determinística com
uv sync, execução completa dos 69 testes (incluindo trava anti-drift SDD) com relatório XML de cobertura e teste de integridade da CLI (abnt-mcp --help).
8. Como Citar este Projeto
Caso utilize o ABNT Copilot MCP no desenvolvimento de sua pesquisa, dissertação, tese ou artigo científico, cite o repositório em conformidade com a ABNT NBR 6023:2018:
NOVAIS, Pedro Henrique da Silva. ABNT Copilot MCP: servidor Model Context Protocol para padronização e conformidade acadêmica. Versão 0.1.0. GitHub, 2026. Disponível em: https://github.com/PedroSmaxY/abnt-mcp. Acesso em: 24 out. 2026.
Entrada BibTeX:
@software{novais2026abntmcp,
author = {Novais, Pedro Henrique da Silva},
title = {ABNT Copilot MCP: Servidor Model Context Protocol para Padronização e Conformidade Acadêmica},
version = {0.1.0},
year = {2026},
publisher = {GitHub},
url = {https://github.com/PedroSmaxY/abnt-mcp}
}
9. Governança SDD, Licença e Contribuições
Este projeto é disponibilizado sob a licença de código aberto MIT e regido por Desenvolvimento Orientado a Especificações (Spec-Driven Development — SDD).
Antes de propor alterações ou submeter um Pull Request, consulte obrigatoriamente:
- CONTRIBUTING.md: Protocolo técnico-científico de colaboração, convenção de branches, commits semânticos e matriz de rastreabilidade.
- AGENTS.md & CLAUDE.md: Diretrizes mandatórias de sincronização de especificações (
specs/) para agentes de Inteligência Artificial. - specs/: Catálogo normativo canônico (
01-normative-catalog.spec.md), especificação do manifesto científico (02-research-spec-schema.spec.md) e contratos de ferramentas MCP (03-mcp-tools-contract.spec.md).
Install Abnt in Claude Desktop, Claude Code & Cursor
unyly install abntInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add abnt -- uvx abnt-mcpStep-by-step: how to install Abnt
FAQ
Is Abnt MCP free?
Yes, Abnt MCP is free — one-click install via Unyly at no cost.
Does Abnt need an API key?
No, Abnt runs without API keys or environment variables.
Is Abnt hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Abnt in Claude Desktop, Claude Code or Cursor?
Open Abnt on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Unyly Deploy
Deploy sites and MCP servers to Unyly straight from your AI agent
by UnylyAmap Maps Mcp Server
MCP server for using the AMap Maps API
by duxiaohuiPayMCP
Lightweight payments layer for MCP servers: turn tools into paid endpoints with a two-line decorator. [PyPI](https://pypi.org/project/paymcp/) · [npm](https://w
by blustAIServer For Power BI
Enables exploring Microsoft Fabric / Power BI workspaces and semantic models, and executing ad-hoc DAX queries.
by Mitsubishi-FusoTemplate MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectSupabase
Database, auth and storage
by SupabaseEverything
Reference / test server with prompts, resources, and tools.
Compare Abnt with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
