Skip to main content
Glama

LaTeX PDF MCP Server

A Model Context Protocol (MCP) server that provides tools for converting LaTeX source code into PDF documents. This server enables AI assistants to generate high-quality PDF documents from LaTeX markup with professional formatting capabilities.

Features

  • LaTeX to PDF Conversion: Convert LaTeX source code directly to PDF format

  • Professional Document Generation: Supports all standard LaTeX features for academic and professional documents

  • Local File Generation: Creates PDF files in a specified directory for easy access

  • HTTP Server Integration: Generates downloadable links for created PDFs

  • Error Handling: Comprehensive error reporting for LaTeX compilation issues

Related MCP server: LaTeX Resume MCP

Prerequisites

Before using this MCP server, ensure you have:

  1. Node.js (version 18 or higher)

  2. LaTeX Distribution: A complete LaTeX installation such as:

  3. latexmk: Usually included with LaTeX distributions

Installation

npm install -g latexpdf-mcp

From Source

  1. Clone the repository:

git clone https://github.com/ihor-sokoliuk/latexpdf-mcp.git
cd latexpdf-mcp
  1. Install dependencies:

pnpm install
  1. Build the project:

pnpm run build

Configuration

Claude Desktop Configuration

Add the server to your Claude Desktop configuration file:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "latexpdf-mcp": {
      "command": "latexpdf-mcp",
      "env": {
        "LATEXPDF_OUTPUT_DIR": "/path/to/your/pdf/directory"
      }
    }
  }
}

Output Directory

By default, PDFs are generated in: C:\Users\Admin\Documents\GeneratedPDF

You can customize the output directory by setting the LATEXPDF_OUTPUT_DIR environment variable in your MCP configuration.

Example configurations:

Windows:

{
  "mcpServers": {
    "latexpdf-mcp": {
      "command": "latexpdf-mcp",
      "env": {
        "LATEXPDF_OUTPUT_DIR": "C:\\Users\\YourName\\Documents\\MyPDFs"
      }
    }
  }
}

macOS/Linux:

{
  "mcpServers": {
    "latexpdf-mcp": {
      "command": "latexpdf-mcp",
      "env": {
        "LATEXPDF_OUTPUT_DIR": "/home/yourname/Documents/PDFs"
      }
    }
  }
}

Usage

Once configured, you can use the server through your MCP-compatible client:

Available Tools

create_pdf

Converts LaTeX source code into a PDF document.

Parameters:

  • file_name (string, required): Name of the output PDF file (must end with .pdf)

  • latex_source (string, required): LaTeX source code to convert

Example:

\documentclass{article}
\usepackage[utf8]{inputenc}
\title{Sample Document}
\author{Your Name}
\date{\today}

\begin{document}
\maketitle

\section{Introduction}
This is a sample LaTeX document generated via MCP.

\subsection{Features}
\begin{itemize}
    \item Professional formatting
    \item Mathematical expressions: $E = mc^2$
    \item Cross-references and citations
\end{itemize}

\end{document}

PDF Access

After generating a PDF, you can access it via HTTP server:

  1. Navigate to the output directory (default: C:\Users\Admin\Documents\GeneratedPDF, or your custom LATEXPDF_OUTPUT_DIR):

cd [YOUR_OUTPUT_DIRECTORY]
  1. Start a local HTTP server:

python -m http.server
  1. Access your PDFs at http://localhost:8000/[filename].pdf

The server automatically provides download links in this format when PDFs are generated.

Development

Project Structure

latexpdf-mcp/
├── index.ts              # Main server implementation
├── package.json          # Package configuration
├── tsconfig.json         # TypeScript configuration
├── pnpm-lock.yaml        # Dependency lock file
└── dist/                 # Compiled JavaScript output

Building

pnpm run build

Development Mode

pnpm run watch

Troubleshooting

Common Issues

  1. LaTeX not found: Ensure LaTeX is properly installed and latexmk is in your PATH

  2. Permission errors: Check write permissions for the output directory

  3. Compilation errors: Review LaTeX syntax and required packages

Error Messages

The server provides detailed error messages for:

  • Missing LaTeX installation

  • Compilation failures

  • File system permissions

  • Invalid input parameters

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests if applicable

  5. Submit a pull request

License

This project is licensed under the MIT License. See the LICENSE file for details.

Author

Ihor Sokoliuk - GitHub Profile


This MCP server enables seamless LaTeX to PDF conversion within AI-assisted workflows, perfect for generating academic papers, technical documentation, and professional reports.

Available Tools

1 tool
create_pdfB

Creates a PDF document from the provided LaTeX source code.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_nameYesThe name of the output PDF file (must end with .pdf)
latex_sourceYesThe LaTeX source code to convert into a PDF document.

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates a PDF, implying a write operation, but doesn't mention any behavioral traits like error handling, performance characteristics, dependencies, or what happens if the LaTeX compilation fails. This leaves significant gaps for an agent to understand how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that directly states the tool's purpose without any redundant information. It is front-loaded and every word earns its place, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a PDF creation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the tool returns (e.g., success/failure, file path, errors), how to handle LaTeX compilation issues, or any system dependencies. This leaves critical context gaps for an agent to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents both parameters (file_name and latex_source). The description adds no additional parameter semantics beyond what the schema provides, such as LaTeX version compatibility or file naming constraints. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Creates a PDF document') and the resource ('from the provided LaTeX source code'), with no sibling tools to differentiate from. It uses precise technical language that leaves no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (converting LaTeX to PDF) but provides no explicit guidance on when to use this tool versus alternatives, prerequisites, or limitations. Since there are no sibling tools, this is adequate but lacks depth.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.4/5.0
Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool 'create_pdf' has a clear and distinct purpose, making it impossible for an agent to misselect among alternatives.

Naming Consistency5/5

The single tool name 'create_pdf' follows a clear verb_noun pattern (create + pdf), which is consistent and predictable. Since there is only one tool, there is no inconsistency to evaluate, and the naming convention is straightforward.

Tool Count2/5

A single tool is generally too few for a server's purpose, as it limits functionality and may indicate an incomplete or overly narrow scope. For a LaTeX PDF server, one tool feels thin and inadequate for covering potential operations like editing, compiling, or managing PDFs.

Completeness2/5

The tool surface is severely incomplete for a LaTeX PDF domain. While 'create_pdf' handles PDF generation, there are obvious gaps such as editing LaTeX source, compiling with options, managing templates, or viewing PDFs, which will likely cause agent failures in broader workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tobioffice/LateXPDF-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server