\usepackage{mcp}
Conecte Claude, Claude Code, Cursor, VS Code y otros agentes compatibles con MCP a FormaTeX. Su asistente escribe el LaTeX, lo compila y le devuelve un enlace al PDF en la misma conversación.
\section{Qué es MCP}
Uso de herramientas nativo para IA
MCP es un protocolo abierto, presentado por Anthropic, que permite a los clientes de IA descubrir y llamar a herramientas externas en tiempo de ejecución, de modo que un asistente puede actuar sin código de integración a medida.
Una interfaz de servidor estándar
Un servidor MCP publica herramientas con nombre y entradas en JSON Schema. Cualquier cliente compatible, como Claude, Claude Code, Cursor, VS Code, Codex o su propio agente, puede llamarlas.
FormaTeX como conjunto de herramientas
El servidor de FormaTeX expone herramientas para compilar LaTeX con el motor que usted elija o con correcciones automáticas, validar la sintaxis, ejecutar trabajos asíncronos y compilar plantillas guardadas, además de recursos y un prompt fix_latex.
De principio a fin en un solo turno
Pida un informe. El asistente escribe el LaTeX, llama a una herramienta de compilación y devuelve un enlace de descarga del PDF terminado.
\section{Configuración}
Hay dos formas de conectarse. El servidor alojado no requiere instalar nada; el binario local se ejecuta en su equipo. Ambos usan la misma clave de API de FormaTeX y funcionan en todos los planes, incluido el gratuito. Las compilaciones realizadas mediante MCP cuentan para la misma cuota mensual de API que las llamadas REST.
Paso 1. Cree una clave de API
Cree una clave en la página de claves de API de su panel. Las claves de FormaTeX comienzan por fex_. Guarde la clave en una variable de entorno como FORMATEX_API_KEYen lugar de subirla a un repositorio.
El servidor enhttps://mcp.formatex.io/mcpusa Streamable HTTP. No hay nada que instalar y cada solicitud lleva su clave de API.
Authorization: Bearer <your key>.https://mcp.formatex.io/mcpclaude_desktop_config.jsonsolo sirve para servidores locales que Claude Desktop inicia por sí mismo. Añada el servidor alojado mediante Connectors, no mediante ese archivo.
Registre el servidor desde la CLI o incluya un archivo .mcp.jsonen la raíz del proyecto.${VAR} la expansión funciona en ese archivo, así que la clave permanece en su entorno.
export FORMATEX_API_KEY="fex_your_api_key"
claude mcp add --transport http formatex https://mcp.formatex.io/mcp \
--header "Authorization: Bearer $FORMATEX_API_KEY"{
"mcpServers": {
"formatex": {
"type": "http",
"url": "https://mcp.formatex.io/mcp",
"headers": {
"Authorization": "Bearer ${FORMATEX_API_KEY}"
}
}
}
}Añada el servidor a.cursor/mcp.jsonen su proyecto, o a~/.cursor/mcp.jsonpara todos los proyectos.
{
"mcpServers": {
"formatex": {
"url": "https://mcp.formatex.io/mcp",
"headers": {
"Authorization": "Bearer ${env:FORMATEX_API_KEY}"
}
}
}
}VS Code lee.vscode/mcp.json. Su clave de nivel superior es servers, nomcpServers, y las entradas remotas necesitan "type": "http".
{
"inputs": [
{
"type": "promptString",
"id": "formatex-api-key",
"description": "FormaTeX API key",
"password": true
}
],
"servers": {
"formatex": {
"type": "http",
"url": "https://mcp.formatex.io/mcp",
"headers": {
"Authorization": "Bearer ${input:formatex-api-key}"
}
}
}
}Añada una tabla de servidor a~/.codex/config.toml. bearer_token_env_varindica la variable de entorno que contiene la clave.
[mcp_servers.formatex]
url = "https://mcp.formatex.io/mcp"
bearer_token_env_var = "FORMATEX_API_KEY"Ejecuteformatex-mcpen su equipo. El cliente lo inicia como proceso hijo y el binario lee su clave de la variable de entorno. FORMATEX_API_KEYElija esta vía si su cliente solo admite stdio.
# Requires Go 1.23 or newer
go install github.com/formatexio/mcp/cmd/formatex-mcp@latest
# The binary lands in $(go env GOPATH)/bin as formatex-mcp.
# Prebuilt binaries: https://github.com/formatexio/mcp/releasesEdite ~/Library/Application Support/Claude/claude_desktop_config.json en macOS o%APPDATA%\Claude\claude_desktop_config.json en Windows y reinicie Claude Desktop.
{
"mcpServers": {
"formatex": {
"command": "/full/path/to/formatex-mcp",
"env": {
"FORMATEX_API_KEY": "fex_your_api_key"
}
}
}
}claude mcp add --env FORMATEX_API_KEY=fex_your_api_key \
--transport stdio formatex -- /full/path/to/formatex-mcp[mcp_servers.formatex]
command = "formatex-mcp"
[mcp_servers.formatex.env]
FORMATEX_API_KEY = "fex_your_api_key"Authorization: Bearer <key>o X-API-Key: <key>. Una solicitud sin clave recibe un 401./ssepor lo que un cliente que solo admita el antiguo transporte SSE debe usar el binario local.Para confirmar que el servidor alojado está activo, llame a su endpoint de estado. Después pida a su asistente que “Liste los motores de LaTeX disponibles”; debería llamar alist_engines.
curl https://mcp.formatex.io/health
# {"status":"ok","service":"formatex-mcp","version":"1.0.0"}\section{Herramientas}
| Herramienta | Qué hace |
|---|---|
| compile_smart | Compila con detección automática del motor y corrección de errores, reintentando con motores alternativos. Es la opción predeterminada recomendada. Devuelve un enlace de descarga del PDF. |
| compile_latex | Compila con el motor que usted indique: pdflatex, xelatex, lualatex o latexmk. Devuelve un enlace de descarga del PDF. |
| check_syntax | Valida el código en busca de errores de sintaxis, comandos prohibidos y problemas estructurales sin compilar. No cuenta para la cuota mensual de compilaciones. |
| compile_async | Envía un trabajo de compilación y devuelve de inmediato un ID de trabajo. Adecuado para documentos grandes y flujos de trabajo por lotes. |
| get_job | Devuelve el estado de un trabajo asíncrono: un enlace de descarga del PDF si se completó, o el registro de errores si falló. |
| fetch_pdf_bytes | Devuelve un PDF compilado como bytes en base64, para cuando necesita el archivo en sí y no un enlace. |
| list_engines | Lista los motores de LaTeX disponibles y cuándo usar cada uno. |
| get_usage | Muestra las estadísticas de compilación de este mes y los límites del plan para la clave de API. |
| list_templates | Lista sus plantillas guardadas con ID, nombres, descripciones y variables. Plan Pro y superiores. |
| get_template | Devuelve una plantilla guardada con su código LaTeX completo y las definiciones de variables. Plan Pro y superiores. |
| create_template | Guarda una nueva plantilla con marcadores de variables, comprobando antes el esquema de variables. Plan Pro y superiores, hasta el límite de plantillas del plan. |
| update_template | Modifica solo los campos indicados de una plantilla guardada. La versión anterior se reemplaza. Plan Pro y superiores. |
| compile_template | Compila una plantilla guardada por ID con sustituciones de variables opcionales. Plan Pro y superiores. |
Dos recursos,formatex://enginesy formatex://usage, exponen la lista de motores y su uso actual. Elfix_latexprompt toma su código LaTeX y el registro de errores y devuelve instrucciones estructuradas para corregir los errores.
\section{Definición de una herramienta}
Esta es la entrada decompile_latexexactamente como la devuelve el servidor alojado desdetools/list. runsy timeoutson enteros; envíe0 para dejar que lo decida la API, que entonces elige el número de pasadas y aplica el tiempo de espera predeterminado de su plan. compile_smarttoma latex, runsytimeouty elige el motor por sí misma, ycompile_asyncrequiere sololatex.
{
"name": "compile_latex",
"description": "Compile LaTeX source code to a PDF using the FormaTeX API. Returns a download URL for the PDF. Specify the engine explicitly (pdflatex for standard documents, xelatex/lualatex for Unicode/modern fonts, latexmk for complex documents).",
"inputSchema": {
"type": "object",
"properties": {
"latex": { "type": "string" },
"engine": { "type": "string" },
"runs": { "type": "integer" },
"timeout": { "type": "integer" }
},
"required": ["latex", "engine", "runs", "timeout"],
"additionalProperties": false
}
}Una compilación correcta devuelve texto sin formato: metadatos del trabajo y un enlace Download PDFEl PDF en sí no se incluye en línea, lo que mantiene la conversación ligera.fetch_pdf_byteses la única herramienta que devuelve el archivo en base64; llámela con el ID del trabajo cuando necesite los bytes.
Compilation successful. Engine: pdflatex, Duration: <ms> ms, Job ID: <job id>, PDF size: <bytes> bytes
Download PDF: <url>\section{Ejemplo en Python}
El conector MCP de la API de Messages permite que Claude llame al servidor alojado sin que usted ejecute un cliente MCP. Es una función en beta: envíe la cabecera mcp-client-2025-11-20beta, indique el servidor en mcp_servers, y habilite sus herramientas con una entrada mcp_toolsetentools. El ejemplo pide a Claude que escriba y compile una nota de una página en una sola solicitud.
import os
import anthropic
client = anthropic.Anthropic() # reads ANTHROPIC_API_KEY
response = client.beta.messages.create(
model="claude-sonnet-5-5",
max_tokens=2048,
betas=["mcp-client-2025-11-20"],
mcp_servers=[
{
"type": "url",
"url": "https://mcp.formatex.io/mcp",
"name": "formatex",
# Your FormaTeX API key, sent to the server as a bearer token.
"authorization_token": os.environ["FORMATEX_API_KEY"],
}
],
tools=[{"type": "mcp_toolset", "mcp_server_name": "formatex"}],
messages=[
{
"role": "user",
"content": (
"Write a one-page LaTeX note on gradient descent with the "
"update rule as a display equation, compile it, and give me "
"the PDF link."
),
}
],
)
for block in response.content:
if block.type == "mcp_tool_use":
print("Tool call:", block.name)
elif block.type == "text":
print(block.text)El conector solo admite llamadas a herramientas, por lo que los recursos y el fix_latexprompt están disponibles en clientes MCP y no a través de la API.
\section{Casos de uso}
Informes de investigación
Pida a su asistente que resuma un artículo y compile un PDF con formato, con ecuaciones, figuras y bibliografía, a partir de un solo prompt.
Documentación automatizada
Deje que un agente de su pipeline genere notas de versión o documentos de referencia en LaTeX y los compile a PDF.
Certificados bajo demanda
Genere certificados o facturas personalizados. El agente rellena las variables de una plantilla guardada (Pro y superiores) y FormaTeX genera el PDF.
\section{Related}
\end{mcp}
Cree una clave de API de FormaTeX, añada el servidor alojado a su cliente y empiece a generar PDF desde su chat de IA.