npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

docgen-mcp-server

v6.3.0

Published

Servidor MCP (stdio) para leitura, escrita, renderização e edição de documentos e planilhas.

Readme

DocGen MCP Server

O que é

Servidor Model Context Protocol (MCP) via stdio para leitura e escrita de documentos, planilhas, renderização HTML→PDF (Puppeteer) e utilitários de arquivo. Está publicado no npm como docgen-mcp-server e requer Node.js 18+.

Recomenda-se executar com npx -y docgen-mcp-server@latest para o npx resolver sempre o dist-tag latest (evita reutilizar cache de instalação antiga). Para travar em uma versão: docgen-mcp-server@<versão> no lugar de @latest.

Na primeira execução, Puppeteer pode baixar Chromium (tools render_slide e render_page).

Ferramentas

| Módulo | Ferramenta | Descrição resumida | |--------|------------|-------------------| | read_ | read_doc | .docx/.pdf/.odt → Markdown; previewOnly / maxChars limitam saída. | | | read_sheet | Planilhas → JSON ou Markdown; range tipo A1:D10; previewOnly / maxRows. | | | read_archive | Lista árvore de entradas em .zip. | | write_ | write_doc | .docx/.pdf; Markdown (#, listas, ```) ou contentFormat: plain; template {{campo}}. | | | write_sheet | .xlsx ou .csv; append em .xlsx para logs. | | render_ | render_slide | HTML/CSS → PDF ou ZIP de slides (use .slide por página). | | | render_page | HTML/CSS → PDF A4 (índice opcional). | | patch_ | patch_doc | PDF: merge, split, watermark; DOCX: replace_text em XML. | | | patch_sheet | Atualiza células em .xlsx. | | system_ | scan_dir | Busca por regex em diretório ou em arquivos/ZIPs. | | | diff_file | Diff texto ou dados (planilhas). | | | bundle_zip | Compacta lista de arquivos em um ZIP. |

Segurança

  • Sem .. nos caminhos; leitura limitada por tamanho de ficheiro.
  • Escrita bloqueada em pastas do sistema (ex.: Windows, Program Files, .ssh, .aws no home).
  • Opcional: DOCGEN_ALLOWED_ROOTS — lista separada por vírgulas de pastas absolutas; só é permitido ler/escrever dentro delas (útil em monorepos/CI).

Variáveis de ambiente (opcional)

| Variável | Efeito | |----------|--------| | DOCGEN_ALLOWED_ROOTS | Ex.: C:\repo\my-app,C:\tmp — restrição de caminhos. | | DOCGEN_SCAN_MAX_MATCHES | Máximo de correspondências em scan_dir (padrão 500). | | DOCGEN_READ_SHEET_MAX_ROWS | Teto de linhas de dados em read_sheet quando não usas maxRows (padrão 10000). |

Erros das tools devolvem structuredContent com ok: false, code, tool, message e às vezes hint.

Como usar nos clientes (recomendado: npm publicado)

Em qualquer cliente MCP com transporte stdio:

  • Comando: npx (no Windows, se necessário, use o caminho completo de npx.cmd).
  • Argumentos: ["-y", "docgen-mcp-server@latest"] (ou versão fixa: ["-y", "[email protected]"]).
  • Variáveis de ambiente: opcional; veja variáveis do Puppeteer/Chromium se precisar de proxy ou caminho de browser.

Exemplo (Cursor, VS Code com MCP, Claude Desktop, etc.):

{
  "mcpServers": {
    "docgen": {
      "command": "npx",
      "args": ["-y", "docgen-mcp-server@latest"],
      "env": {}
    }
  }
}

No repositório há um exemplo em .cursor/mcp.json.example.

Cursor

Configurações → MCP (ou JSON de MCP do projeto): use command, args e env como acima.

Claude Desktop

Mesmo esquema de command, args e env. Detalhes de caminho do arquivo de configuração variam por SO; veja a documentação da Anthropic sobre MCP.

Problemas comuns no Windows com npx

Se aparecer EPERM, TAR_ENTRY_ERROR ou erros tipo Cannot find package '...\node_modules\yauzl\index.js', o cache do npx costuma estar corrompido (extração interrompida quando o Cursor recarrega o MCP no meio do npm install).

  1. Desligue ou desative temporariamente o servidor Docgen no MCP.
  2. Apague %LocalAppData%\npm-cache\_npx (pasta inteira ou só o subdiretório do pacote).
  3. Suba o MCP de novo com npx -y docgen-mcp-server@latest.

Alternativa estável: npm install -g docgen-mcp-server e no MCP use command: docgen-mcp-server (sem npx), ou node com o caminho absoluto do cli.js global.

Desenvolvimento a partir do clone

git clone <repo>
cd docgen-mcp-server
npm install
npm run build
npm start

Sem build prévio (local):

npm install
npm run dev

| Script | Ação | |--------|------| | npm run build | Compila src/dist/ (tsc) | | npm start | node dist/cli.js | | npm run dev | tsx src/cli.ts |

Publicação no npm (mantenedores)

O pacote não inclui node_modules; o tarball contém só dist/ + README.md + package.json (dependências são instaladas pelo cliente ao rodar npx).

npm whoami
npm publish --dry-run
npm publish

Se a conta tiver 2FA “Auth and writes”, o npm exige OTP:

npm publish --otp=123456

Erro 403 Forbidden com nome livre costuma ser: OTP ausente, npm login em outra conta, ou registro apontando para outro servidor (npm config get registry deve ser https://registry.npmjs.org/).

Versões subsequentes (como no Nautilus):

npm run release        # patch
npm run release:minor
npm run release:major

Licença

ISC