Doc2X MCP
Convierte PDFs e imágenes a Markdown/LaTeX con fórmulas y tablas, y traduce documentos mediante la API de Doc2X.
Documentación
Servidor MCP de Doc2x
简体中文 | English
Envuelve las capacidades de PDF/imágenes de Doc2x v2 como un servidor MCP basado en stdio, proporcionando herramientas semánticas estables y componibles.
Tabla de contenidos
- Posicionamiento del proyecto
- Versión y entorno
- Inicio rápido
- Referencia de configuración
- Resumen de la API de herramientas
- Flujos de trabajo comunes
- Desarrollo local
- Pipeline de CI / publicación
- Cómo publicar
- Instalar la Skill de este repositorio (opcional)
- Seguridad y solución de problemas
- Comentarios y problemas
- Registro de cambios
- Licencia
Posicionamiento del proyecto
- Proporciona capacidades de Doc2x a clientes MCP (Codex CLI / Claude Code / Agentes personalizados).
- Utiliza un modelo unificado de tareas asíncronas submit/status/wait para facilitar la orquestación automatizada.
- Ofrece límites de seguridad en tiempo de ejecución, como tiempo de espera controlable, sondeo y lista blanca de descargas.
Versión y entorno
- Ejecución local: Node.js
>=18es suficiente. - Verificación en CI: Node.js
18,20ejecutarán la compilación. - Entorno de publicación: las tareas de publicación en GitHub Actions usan Node.js
24. - Gestor de paquetes: se usa pnpm de forma uniforme (archivo de bloqueo
pnpm-lock.yaml).
Inicio rápido
Método A: mediante npx (recomendado)
Agregue en la configuración del cliente MCP:
{
"command": "npx",
"args": ["-y", "@noedgeai-org/doc2x-mcp@latest"],
"env": {
"DOC2X_API_KEY": "sk-xxx",
"DOC2X_BASE_URL": "https://v2.doc2x.noedgeai.com"
}
}
Método B: ejecución desde el código fuente local
cd doc2x-mcp
pnpm install --frozen-lockfile
pnpm run build
DOC2X_API_KEY=sk-xxx pnpm start
El cliente MCP apunta al artefacto de compilación local:
{
"command": "node",
"args": ["<ABS_PATH>/doc2x-mcp/dist/index.js"],
"env": {
"DOC2X_API_KEY": "sk-xxx",
"DOC2X_BASE_URL": "https://v2.doc2x.noedgeai.com"
}
}
Referencia de configuración
| Variable de entorno | Obligatoria | Valor predeterminado | Descripción |
|---|---|---|---|
DOC2X_API_KEY | Sí | - | Clave API de Doc2x (sk-xxx) |
DOC2X_BASE_URL | No | https://v2.doc2x.noedgeai.com | Dirección base de la API de Doc2x |
DOC2X_HTTP_TIMEOUT_MS | No | 60000 | Tiempo de espera de HTTP por solicitud (milisegundos) |
DOC2X_POLL_INTERVAL_MS | No | 2000 | Intervalo de sondeo (milisegundos) |
DOC2X_MAX_WAIT_MS | No | 600000 | Tiempo máximo de espera para herramientas tipo wait (milisegundos) |
DOC2X_PARSE_PDF_MAX_OUTPUT_CHARS | No | 5000 | Número máximo de caracteres devueltos por doc2x_parse_pdf_wait_text; 0=sin límite |
DOC2X_PARSE_PDF_MAX_OUTPUT_PAGES | No | 10 | Número máximo de páginas combinadas por doc2x_parse_pdf_wait_text; 0=sin límite |
DOC2X_DOWNLOAD_URL_ALLOWLIST | No | .amazonaws.com.cn,.aliyuncs.com,.noedgeai.com | Lista blanca de URL de descarga; * permite cualquier host (no recomendado) |
Resumen de la API de herramientas
| Fase | Herramientas | Descripción |
|---|---|---|
| Análisis de PDF | doc2x_parse_pdf_submit / doc2x_parse_pdf_status / doc2x_parse_pdf_wait_text / doc2x_materialize_pdf_layout_json | Enviar tarea, consultar estado, esperar y obtener texto, o guardar el resultado de layout v3 como JSON local |
| Exportación de resultados | doc2x_convert_export_submit / doc2x_convert_export_result / doc2x_convert_export_wait | Iniciar exportación, consultar resultado, esperar a que la exportación termine |
| Descarga y guardado | doc2x_download_url_to_file / doc2x_materialize_convert_zip | Descargar URL a local, descomprimir zip de convert |
| Análisis de layout de imágenes | doc2x_parse_image_layout_sync / doc2x_parse_image_layout_submit / doc2x_parse_image_layout_status / doc2x_parse_image_layout_wait_text | OCR de imágenes síncrono/asíncrono y análisis de layout |
| Diagnóstico | doc2x_debug_config | Devuelve el análisis de configuración y el origen de la clave API para facilitar la solución de problemas |
Modelo de análisis de PDF (doc2x_parse_pdf_submit / doc2x_parse_pdf_wait_text)
- Parámetro opcional:
model - Valores opcionales:
v2(predeterminado) /v3-2026(modelo más reciente) - Si no se envía, el valor predeterminado es
v2
{
"model": "v3-2026"
}
Guardado de JSON de layout de PDF (doc2x_materialize_pdf_layout_json)
- Parámetro obligatorio:
output_path - Se debe elegir uno entre
uidypdf_path v2no admitelayout; si necesitapages[].layout, usev3-2026- Si se envía
pdf_pathpero nomodel, esta herramienta usav3-2026de forma predeterminada - En caso de éxito, escribe el JSON original de
resulten el archivo local
layout es la estructura de bloques de página e información de coordenadas, adecuado para recorte de figuras/tablas, resaltado de regiones, extracción estructurada y análisis de layout; si solo desea ver el contenido del texto, priorice la exportación a Markdown / DOCX.
{
"pdf_path": "/absolute/path/to/input.pdf",
"output_path": "/absolute/path/to/input_v3.layout.json"
}
Parámetros de fórmulas de exportación (doc2x_convert_export_submit / doc2x_convert_export_wait)
- Parámetro obligatorio:
formula_mode(normal/dollar) - Parámetro opcional:
formula_level(solo tiene efecto cuando la tarea de análisis de origen esmodel=v3-2026) - Descripción de valores:
0: conservar fórmulas1: degradar solo fórmulas en línea (\\(...\\),$...$)2: degradar todas las fórmulas (\\(...\\),$...$,\\[...\\],$$...$$)
Flujos de trabajo comunes
Flujo de trabajo 1: PDF -> archivo local Markdown
doc2x_parse_pdf_submitenvía el análisis de PDF.doc2x_convert_export_waitespera la exportación (to=md, y especificaformula_mode).doc2x_convert_export_resultobtiene la URL de descarga.doc2x_download_url_to_filedescarga a la ruta de destino.
Flujo de trabajo 2: resultado rápido de OCR de layout de imágenes
doc2x_parse_image_layout_syncanaliza directamente de forma síncrona.- Si necesita sondeo estable, use la combinación submit/status/wait.
Flujo de trabajo 3: PDF -> archivo local JSON de layout v3
- Llame a
doc2x_materialize_pdf_layout_json, pasandopdf_pathyoutput_path. - La herramienta esperará a que el análisis tenga éxito y escribirá el JSON original de
resulten el archivo local. - Ese JSON se puede proporcionar directamente a scripts posteriores de recorte de figuras/tablas.
Desarrollo local
Requisitos del entorno
- Node.js
>=18 - pnpm (coincidente con el archivo de bloqueo del repositorio)
Comandos comunes
pnpm install --frozen-lockfile
pnpm run build
pnpm run test
pnpm run format:check
Ejecutar el servicio:
DOC2X_API_KEY=sk-xxx pnpm start
Pipeline de CI / publicación
El repositorio usa GitHub Actions:
-
CI:
.github/workflows/ci.yml- Activación:
pushhaciamain,pull_request,workflow_dispatch, cada lunes UTC03:17 - Los cambios solo de documentación (
**/*.md,LICENSE) se omiten automáticamente - Tareas:
dependency-review(solo PR)build(matriz de Node.js18/20)package-smoke(npm pack --dry-run)security-audit(solo manual/programado)
- Activación:
-
Publicación:
.github/workflows/publish.yml- Push a la rama
dev: publica el tag npmdev - Push del tag
v*.*.*: publica npmlatest - Antes de publicar, verifica que la versión del tag coincida con la versión de
package.json - Comando de publicación:
npm publish --provenance
- Push a la rama
Se recomienda alinear localmente antes de enviar:
pnpm install --frozen-lockfile
pnpm run build
npm pack --dry-run
pnpm audit --prod --audit-level high
Cómo publicar
- Pre-lanzamiento de desarrollo (
dev): después de hacer push a la ramadev, se publica automáticamente en el tag npmdev. La versión se cambiará automáticamente ax.y.z-dev.<run>.<attempt>. - Lanzamiento oficial (
latest): después de hacer push del tagv*.*.*, se publica en npmlatest. La versión del tag debe coincidir con la versión depackage.json.
Instalar la Skill de este repositorio (opcional)
Se usa para agregar a Codex CLI / Claude Code una "Skill que enseña al modelo grande cómo usar las herramientas de doc2x-mcp".
Nota: después de cada actualización de la versión de
doc2x-mcp, se recomienda volver a ejecutar el comando de instalación para actualizar la Skill y garantizar que el modelo grande use las descripciones de herramientas y los flujos de trabajo más recientes.
Instalación con un solo clic sin clonar el repositorio (recomendado):
curl -fsSL https://raw.githubusercontent.com/NoEdgeAI/doc2x-mcp/main/scripts/install-skill.sh | sh
Instalación en el directorio del código fuente de este repositorio:
pnpm run skill:install
Directorio de instalación predeterminado:
- Codex CLI:
~/.codex/skills/public/doc2x-mcp(se puede sobrescribir conCODEX_HOME) - Claude Code:
~/.claude/skills/doc2x-mcp(se puede sobrescribir conCLAUDE_HOME)
Notas:
--target auto(predeterminado) instalará en Codex + Claude al mismo tiempo.- PowerShell 7+:
irm https://raw.githubusercontent.com/NoEdgeAI/doc2x-mcp/main/scripts/install-skill.ps1 | iex - Windows PowerShell 5.1:
irm https://raw.githubusercontent.com/NoEdgeAI/doc2x-mcp/main/scripts/install-skill-winps.ps1 | iex
Seguridad y solución de problemas
- No envíe
DOC2X_API_KEYreales al repositorio. - La lista blanca restringe los dominios de descarga de forma predeterminada; si necesita ampliarla, evalúe los riesgos antes de usar
DOC2X_DOWNLOAD_URL_ALLOWLIST=*. - Si hay anomalías de configuración, priorice llamar a
doc2x_debug_configpara localizar el origen de las variables de entorno y los resultados del análisis.
Comentarios y problemas
- Problemas de uso o informes de errores: GitHub Issues
https://github.com/NoEdgeAI/doc2x-mcp/issues - Se recomienda adjuntar en el issue la entrada mínima de reproducción, el nombre de la herramienta activada y el resultado de
doc2x_debug_config(se puede desensibilizar).
Licencia
Licencia MIT; consulte LICENSE para más detalles.