Markdown to any text
Converta markdown para qualquer formato de texto que desejar
Documentação
AI Answer Copier — Exportador Multi-Formato com MCP
Transforme "Ruído de IA" em "Material Pronto para a Sala de Aula" em 5 Segundos.
Um servidor Model Context Protocol (MCP) que dá ao seu assistente de IA o poder de converter Markdown em 22 formatos de documentos profissionais, converter em lote vários documentos em 22 formatos em uma única chamada, analisar documentos, reparar Markdown quebrado e converter entre plataformas — tudo sem sair do seu chat de IA.
npm: https://www.npmjs.com/package/@xjtlumedia/markdown-mcp-server
Por Que Isso Existe
Você pediu para uma IA escrever 20 perguntas. Ela entregou. Mas agora você está travado:
| Ponto de Dor | Fluxo Manual | Com AI Answer Copier |
|---|---|---|
| Extrair perguntas e respostas | 10–15 min copiando cada linha | 2 segundos (detecção automática) |
| Formatar matemática | 20 min corrigindo símbolos quebrados | Instantâneo (suporte a KaTeX) |
| Upload no LMS | 15 min de entrada manual em CSV | Exportação com 1 clique |
| Tempo total de preparação | ~45–60 minutos | < 1 minuto |
Gerar conteúdo leva segundos. Formatá-lo para o mundo real leva uma hora. Este servidor MCP elimina essa lacuna completamente.
Demonstração ao Vivo
Versão web online (sem necessidade de instalação): ai-answer-copier.vercel.app
Teste a ferramenta MCP no inspetor:
Use uma instância MCP real:
Todas as 34 Ferramentas MCP
Ferramentas de Conversão de Documentos (15)
| # | Ferramenta | Saída | Descrição |
|---|---|---|---|
| 1 | harmonize_markdown | .md | Padroniza e normaliza a sintaxe Markdown (cabeçalhos ATX, marcadores de lista -, blocos de código cercados) sem alterar o significado |
| 2 | convert_to_txt | .txt | Remove toda a formatação para produzir texto simples |
| 3 | convert_to_html | .html | Documento HTML completo e estilizado com tabelas GFM, matemática KaTeX e folha de estilo incorporada |
| 4 | generate_html | string HTML | Gera HTML autocontido com todos os estilos embutidos (somente leitura, sem E/S de arquivo) |
| 5 | convert_to_pdf | .pdf | PDF pronto para impressão via Chromium headless com matemática KaTeX completa e realce de sintaxe |
| 6 | convert_to_docx | .docx | Documento Microsoft Word com cabeçalhos, listas e formatação de código estilizados |
| 7 | convert_to_latex | .tex | Código-fonte LaTeX com \section, ambientes de lista e passagem nativa de matemática |
| 8 | convert_to_rtf | .rtf | Rich Text Format para processadores de texto legados e clientes de e-mail |
| 9 | convert_to_csv | .csv | Extrai tabelas de pipe GFM para valores separados por vírgula |
| 10 | convert_to_json | .json | Representação JSON estruturada com seções, cabeçalhos, listas, blocos de código e tabelas |
| 11 | convert_to_xml | .xml | XML bem formado com declaração <?xml?> e elementos estruturados |
| 12 | convert_to_xlsx | .xlsx | Planilha Excel — cada tabela Markdown vira uma aba |
| 13 | convert_to_image | .png | Captura de tela PNG em página inteira via Chromium headless |
| 14 | convert_to_md | .md | Exporta Markdown para arquivo, opcionalmente harmonizando a formatação primeiro (harmonize=true) |
| 15 | convert_to_email_html | .html | HTML otimizado para e-mail com todos os estilos embutidos, compatível com Outlook, Gmail, Apple Mail |
Ferramentas de Conversão de Plataforma (10)
| # | Ferramenta | Plataforma Alvo | Descrição |
|---|---|---|---|
| 16 | convert_to_slack | Slack | Formato mrkdwn — negrito como *, links como <url|text>, cabeçalhos como texto em negrito |
| 17 | convert_to_discord | Discord | Cabeçalhos estilizados em negrito/sublinhado, blocos de código preservados |
| 18 | convert_to_jira | JIRA | Marcação Wiki — h1./h2., blocos {code}, links [text|url] |
| 19 | convert_to_confluence | Confluence | Marcação Wiki com {info}, painéis {note} e sintaxe {code:language=x} |
| 20 | convert_to_asciidoc | AsciiDoc | Cabeçalhos =, blocos de código ----, links url[text], diretivas image:: |
| 21 | convert_to_rst | reStructuredText | Cabeçalhos sublinhados, diretivas .. code-block::, sintaxe de referência RST |
| 22 | convert_to_mediawiki | MediaWiki | Cabeçalhos ==, '''bold''', tags <syntaxhighlight>, {\ wikitable |
| 23 | convert_to_bbcode | BBCode | Tags [b], [i], [code], [url], [img] para fóruns phpBB/vBulletin |
| 24 | convert_to_textile | Textile | Marcação para Redmine, Basecamp e plataformas CMS |
| 25 | convert_to_orgmode | Emacs Org Mode | Cabeçalhos *, código #+BEGIN_SRC/#+END_SRC, links [[url][text]] |
Ferramentas de Importação (1)
| # | Ferramenta | Descrição |
|---|---|---|
| 26 | html_to_markdown | Converte conteúdo HTML (documento completo ou fragmento) de volta para Markdown |
Ferramentas de Reparo e Lint (2)
| # | Ferramenta | Descrição |
|---|---|---|
| 27 | repair_markdown | Corrige Markdown quebrado de saída de LLM ou copiar-colar — cercas de código não fechadas, tabelas quebradas, marcadores de ênfase soltos, espaços ausentes em cabeçalhos, links quebrados |
| 28 | lint_markdown | Executa lint e relata problemas como array JSON com número da linha, gravidade, nome da regra, mensagem e sinalizador de correção |
Ferramentas de Análise de Documentos (5)
| # | Ferramenta | Descrição |
|---|---|---|
| 29 | extract_code_blocks | Extrai todos os blocos de código com linguagem, conteúdo e números de linha inicial/final |
| 30 | extract_links | Extrai todos os links e imagens com texto, URL, número da linha e tipo (inline, referência, imagem, autolink) |
| 31 | generate_toc | Gera Sumário Markdown a partir dos cabeçalhos com max_depth configurável (1–6) |
| 32 | analyze_document | Estatísticas abrangentes — contagens de linhas/palavras/caracteres/parágrafos/frases, contagens de cabeçalhos/código/tabelas/links/imagens, tempo estimado de leitura |
| 33 | extract_structure | Arquitetura do documento em visão panorâmica — estatísticas, esboço de cabeçalhos, resumo de blocos de código, resumo de links |
Conversão em Lote (1)
| # | Ferramenta | Entrada | Descrição |
|---|---|---|---|
| 34 | batch_convert | items[] × formats[] | Converte em lote vários documentos Markdown para 22 formatos em uma única chamada. Erros isolados por item+formato. output_dir opcional para saída em arquivo. Formatos: txt, csv, json, xml, xlsx, latex, rtf, docx, pdf, html, md, email, slack, discord, jira, confluence, asciidoc, rst, mediawiki, bbcode, textile, orgmode |
6 Prompts Integrados
Modelos de prompt pré-configurados que orquestram múltiplas ferramentas:
| Prompt | Descrição |
|---|---|
convert-document | Converte Markdown para qualquer formato suportado (PDF, DOCX, HTML, LaTeX, CSV, JSON, XML, XLSX, RTF, PNG, TXT, MD) |
extract-tables | Extrai todas as tabelas do Markdown e exporta como CSV ou XLSX |
format-for-sharing | Harmoniza a formatação e depois converte para PDF e HTML para distribuição |
analyze-and-repair | Lint → Reparo → Novo lint para confirmar que todos os problemas foram resolvidos |
convert-for-platform | Converte Markdown para qualquer formato de plataforma (Slack, Discord, JIRA, Confluence, AsciiDoc, RST, MediaWiki, BBCode, Textile, Org Mode) |
document-overview | Visão geral completa — estatísticas, sumário, blocos de código e links em um único relatório |
2 Recursos
| URI do Recurso | Descrição |
|---|---|
markdown-formatter://supported-formats | Lista JSON completa de todos os 23+ formatos de saída com nomes e tipos de ferramentas |
markdown-formatter://conversion-guide | Guia para escolher o formato de saída certo com base no seu caso de uso |
Início Rápido
Instalar via npx (Recomendado)
Nenhuma instalação necessária — basta configurar seu cliente MCP:
{
"mcpServers": {
"ai-answer-copier": {
"command": "npx",
"args": ["-y", "@xjtlumedia/markdown-mcp-server"]
}
}
}
Instalar Globalmente
npm install -g @xjtlumedia/markdown-mcp-server
Depois configure:
{
"mcpServers": {
"ai-answer-copier": {
"command": "markdown-mcp-server"
}
}
}
Configuração por Cliente de IA
🔌 Claude Desktop
Edite %APPDATA%\Claude\claude_desktop_config.json (Windows) ou ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"ai-answer-copier": {
"command": "npx",
"args": ["-y", "@xjtlumedia/markdown-mcp-server"]
}
}
}
Reinicie o Claude Desktop. Você verá um ícone 🔌 — todas as 34 ferramentas estarão disponíveis.
VS Code (GitHub Copilot)
Adicione a .vscode/mcp.json ou às configurações do VS Code:
{
"servers": {
"ai-answer-copier": {
"command": "npx",
"args": ["-y", "@xjtlumedia/markdown-mcp-server"]
}
}
}
Cursor / Windsurf / Qualquer Cliente MCP
Use o mesmo padrão de comando npx acima na configuração MCP do seu cliente.
Versão DIY (build local)
{
"mcpServers": {
"markdown-formatter": {
"command": "node",
"args": [
"YOUR_PATH_TO_PROJECT/mcp-server/dist/mcp-server/src/index.js"
]
}
}
}
Substitua YOUR_PATH_TO_PROJECT pelo caminho absoluto para esta pasta.
Modo HTTP (Vercel)
Um endpoint HTTP hospedado está disponível para integrações baseadas em navegador e remotas:
https://ai-answer-copier.vercel.app/api/mcp
Teste com o MCP Inspector:
npx @modelcontextprotocol/inspector https://ai-answer-copier.vercel.app/api/mcp
Exemplos de Uso
Depois de conectado, basta conversar naturalmente com sua IA:
"Converta em lote 5 documentos markdown para DOCX, PDF e HTML simultaneamente e salve-os na minha pasta Downloads." → A IA usa
batch_convertcom items[] e formats[]
"Gere 10 perguntas de física sobre as Leis de Newton e exporte-as como um CSV do Kahoot." → A IA usa
convert_to_csv
"Converta este markdown em um documento Word e salve-o na minha Área de Trabalho." → A IA chama
convert_to_docxcomoutput_path
"Pegue estas notas de aula e produza um PDF pronto para impressão." → A IA chama
convert_to_pdfcom renderização Puppeteer, matemática KaTeX e realce de sintaxe
"Transforme isso em um banco de questões XML compatível com Moodle." → A IA chama
convert_to_xml
"Formate isso para o Slack e envie para o canal da equipe." → A IA chama
convert_to_slack
"Verifique este Markdown em busca de problemas e corrija-os." → A IA chama
lint_markdowne depoisrepair_markdown
"Me dê uma visão geral deste documento — contagem de palavras, estrutura, todos os links." → A IA encadeia
analyze_document+generate_toc+extract_links
Recursos
22 Formatos de Saída
Exporte para PDF, DOCX, HTML, LaTeX, CSV, JSON, XML, XLSX, RTF, PNG, TXT, Markdown — além de Slack, Discord, JIRA, Confluence, AsciiDoc, RST, MediaWiki, BBCode, Textile, Org Mode e HTML para e-mail.
Conversão em Lote
Converta vários documentos Markdown para vários formatos em uma única chamada batch_convert. Erros são isolados por item+formato, então uma falha nunca bloqueia o restante.
Matemática e Código como Cidadãos de Primeira Classe
Suporte completo para expressões matemáticas KaTeX e blocos de código com realce de sintaxe. Seus trechos $\sqrt{x^2 + y^2}$ e Python sobrevivem perfeitamente a cada conversão.
Manipulação Inteligente de Binários
Formatos binários (PDF, DOCX, XLSX, PNG) não despejam base64 bruto no chat. O servidor retorna orientações acionáveis para que a IA saiba salvar em um caminho de arquivo.
Análise e Reparo de Documentos
Execute lint em Markdown, repare automaticamente formatação quebrada, extraia blocos de código e links, gere Sumário e obtenha estatísticas abrangentes do documento — tudo sem sair do chat.
GFM (GitHub Flavored Markdown)
Tabelas, listas de tarefas, tachado, autolinks — tudo analisado corretamente via remark-gfm.
PDF e PNG com Puppeteer
Exportações de PDF e imagem usam Chromium headless para renderização perfeita em pixels, com estilos CSS completos, matemática KaTeX, realce de sintaxe e layouts otimizados para impressão.
Autocontido
Zero dependências de runtime em APIs externas. Tudo roda localmente. Seus dados nunca saem do seu computador.
Arquitetura
┌─────────────────────────┐
│ AI Client │
│ (Claude, Copilot, │
│ Cursor, Windsurf) │
└──────────┬──────────────┘
│ MCP Protocol (stdio / HTTP)
▼
┌─────────────────────────┐
│ AI Answer Copier │
│ MCP Server (34 tools) │
│ │
│ ┌── Conversion ────────┐│
│ │ remark/rehype, docx, ││
│ │ puppeteer, xlsx, ││
│ │ CSV/JSON/XML/RTF/ ││
│ │ LaTeX/TXT parsers ││
│ └──────────────────────┘│
│ ┌── Platform ──────────┐│
│ │ Slack, Discord, JIRA,││
│ │ Confluence, AsciiDoc,││
│ │ RST, MediaWiki, ││
│ │ BBCode, Textile, Org ││
│ └──────────────────────┘│
│ ┌── Batch ─────────────┐│
│ │ items[] × formats[] ││
│ │ 22 formats, isolated ││
│ └──────────────────────┘│
│ ┌── Analysis ──────────┐│
│ │ Code blocks, links, ││
│ │ TOC, stats, structure││
│ └──────────────────────┘│
│ ┌── Repair ────────────┐│
│ │ Lint, auto-repair ││
│ └──────────────────────┘│
│ ┌── Import ────────────┐│
│ │ HTML → Markdown ││
│ └──────────────────────┘│
└─────────────────────────┘
O Que Há de Novo na v2.1.0
Esta versão reforça tanto o transporte MCP local (npx) quanto o remoto Vercel com 8 correções de lógica:
| # | Correção | Área |
|---|---|---|
| 1 | Navegador não fechado em erro — try/finally em torno de browser.close() para que o Chromium nunca vaze em falhas de PDF/PNG | Ambos os transportes |
| 2 | generate_html faltando CSS do KaTeX — restaurado viewport meta, folha de estilo KaTeX (hash SRI) e estilos inline completos para que a matemática seja renderizada corretamente | Vercel /api/mcp |
| 3 | convert_to_html estilos incompletos — adicionado hash de integridade SRI, bordas de tabela e estilo de blockquote para corresponder à saída local | Vercel /api/mcp |
| 4 | Vazamento de memória no mapa de sessões — instances Map agora remove sessões obsoletas após 30 minutos (SESSION_TTL_MS); McpInstance rastreia lastUsed | Vercel /api/mcp |
| 5 | keepAlive intervalo não limpo no fim normal do stream SSE — adicionado try/finally interno que sempre chama clearInterval(keepAlive) | Vercel /api/mcp |
| 6 | _initialized acesso interno do SDK — substituído @ts-ignore puro por uma proteção typeof para que o servidor falhe graciosamente após atualizações do SDK | Vercel /api/mcp |
| 7 | Sem validação de tamanho de entrada — adicionado limite rígido de 1 GB (MAX_INPUT_BYTES) a todas as chamadas de ferramenta para evitar CPU/memória descontrolados em cargas superdimensionadas | Ambos os transportes |
| 8 | Método DELETE cria nova sessão — o handler agora retorna 200 imediatamente em DELETE, prevenindo criação de sessão fantasma | Vercel /api/mcp |
Limitações Conhecidas
- PDF / PNG exigem Chromium local —
convert_to_pdfeconvert_to_imageiniciam um navegador headless. Isso funciona bem comnpx, mas não está disponível no plano gratuito da Vercel (sem Chromium empacotado). Defina a variável de ambientePUPPETEER_EXECUTABLE_PATHpara apontar para o seu Chrome local se a detecção automática falhar. - Versão do Chromium na Vercel — o endpoint remoto usa
@sparticuz/chromium-mincom um tar fixado em v131.0.1. Se a Vercel alterar o runtime Lambda, talvez seja necessário atualizar a variável de ambienteCHROMIUM_TAR_URL. - Limite de entrada de 1 MB — todas as chamadas de ferramenta rejeitam entradas maiores que 1 MB. Divida documentos grandes em seções antes de converter.
- TTL de sessão (somente remoto) — sessões no endpoint da Vercel expiram após 30 minutos de inatividade. Fluxos de trabalho com estado de longa duração devem emitir chamadas keep-alive periódicas.
Desenvolvimento
# Clone the repository
git clone https://github.com/XJTLUmedia/AI_answer_copier.git
# Web app
npm install
npm run dev
# MCP server
cd mcp-server
npm install
npm run dev # hot reload
npm run build # production build
npm run inspector # test with MCP Inspector
Pilha Tecnológica
| Componente | Tecnologia |
|---|---|
| SDK MCP | @modelcontextprotocol/sdk |
| Parser de Markdown | unified + remark + rehype |
| Renderização Matemática | remark-math + rehype-katex |
| Exportação Word | docx |
| Exportação Excel | xlsx |
| Exportação PDF/PNG | puppeteer |
| Validação de Esquema | zod |
| Runtime | Node.js (ESM) |
Contribuindo
Aceitamos contribuições! Seja um novo formato de exportação, uma correção de bug ou melhoria de documentação — considere fazer um pull request.
- Faça um fork do repositório
- Crie um branch de funcionalidade
- Envie um pull request
Licença
Feito por educadores, para educadores.
Recupere 5 horas da sua semana. Deixe a IA cuidar da formatação.