A Model Context Protocol (MCP) server for creating professional slides and posters using LaTeX Beamer. This server enables AI assistants like Claude to generate beautiful presentations and research posters programmatically.
- Create Presentations: Generate Beamer slide decks with customizable themes
- Create Posters: Build research posters using beamerposter
- Multiple Themes: Support for all standard Beamer themes and color schemes
- Flexible Content: Add slides, sections, columns, images, and custom frames
- LaTeX Compilation: Compile documents to PDF directly
- Easy Integration: Works seamlessly with Claude and other MCP-compatible clients
- Node.js (v18 or higher)
- LaTeX distribution with
pdflatex(e.g., TeX Live, MiKTeX) - For posters:
beamerposterpackage
Ubuntu/Debian:
sudo apt-get install texlive-latex-extra texlive-fonts-recommendedmacOS:
brew install --cask mactexWindows: Download and install MiKTeX or TeX Live
- Clone the repository:
git clone https://github.com/yourusername/Beamer-MCP.git
cd Beamer-MCP- Install dependencies:
npm install- Build the server:
npm run buildAdd to your Claude Desktop config file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"beamer": {
"command": "node",
"args": ["/absolute/path/to/Beamer-MCP/dist/index.js"],
"env": {
"BEAMER_OUTPUT_DIR": "/path/to/output/directory"
}
}
}
}BEAMER_OUTPUT_DIR: Directory where .tex and .pdf files will be saved (defaults to current working directory)
Create a new Beamer presentation.
Parameters:
id(required): Unique identifier for the presentationtitle(required): Presentation titleauthor: Author namedate: Date (defaults to\today)institute: Institution nametheme: Beamer theme (default: "Madrid")colorTheme: Color theme
Example:
{
"id": "my-talk",
"title": "Introduction to AI",
"author": "John Doe",
"theme": "Copenhagen",
"colorTheme": "dolphin"
}Create a new Beamer poster.
Parameters:
id(required): Unique identifier for the postertitle(required): Poster titleauthor: Author nameinstitute: Institution namesize: Paper size (default: "a0paper")orientation: "portrait" or "landscape" (default: "portrait")
Add a simple slide with title and content.
Parameters:
id(required): Document identifiertitle(required): Slide titlecontent(required): Slide content in LaTeX
Example:
{
"id": "my-talk",
"title": "Key Points",
"content": "\\begin{itemize}\n \\item First point\n \\item Second point\n \\item Third point\n\\end{itemize}"
}Add a section divider to organize your presentation.
Parameters:
id(required): Document identifiertitle(required): Section title
Add a slide with multiple columns.
Parameters:
id(required): Document identifiertitle(required): Slide titlecolumns(required): Array of column objects withwidthandcontent
Example:
{
"id": "my-talk",
"title": "Comparison",
"columns": [
{
"width": "0.5\\textwidth",
"content": "Left column content"
},
{
"width": "0.5\\textwidth",
"content": "Right column content"
}
]
}Add a slide with an image.
Parameters:
id(required): Document identifiertitle(required): Slide titleimagePath(required): Path to the image filewidth: Image width (default: "0.8\textwidth")caption: Image caption
Add a custom frame with full LaTeX control.
Parameters:
id(required): Document identifiercontent(required): Full frame content in LaTeX
Save the document to a .tex file.
Parameters:
id(required): Document identifierfilename(required): Output filename (without .tex extension)
Compile the LaTeX document to PDF.
Parameters:
id(required): Document identifierfilename(required): Filename to compile
List all available Beamer themes and color themes.
User: Create a presentation about Python programming with 3 slides
Claude will use the tools to:
1. create_presentation with appropriate metadata
2. add_section for "Introduction"
3. add_slide for each topic
4. save_document to create the .tex file
5. compile_latex to generate the PDF
User: Create an A0 portrait research poster about climate change
Claude will use the tools to:
1. create_poster with the specified size and orientation
2. add_frame with custom column layout for poster sections
3. save_document and compile_latex
Madrid, Berlin, Copenhagen, Darmstadt, Frankfurt, Hannover, Ilmenau, Luebeck, Malmoe, Marburg, Montpellier, PaloAlto, Pittsburgh, Rochester, Singapore, Szeged, Warsaw, and more.
default, albatross, beaver, beetle, crane, dolphin, dove, fly, lily, orchid, rose, seagull, seahorse, whale, wolverine
Use the list_themes tool to see all available options.
npm run buildnpm run watchnpm startSee the examples/ directory for complete examples:
simple-presentation.md: Basic presentation exampleposter-example.md: Research poster example
- Ensure
pdflatexis installed and in your PATH - Check that all referenced images exist
- Review LaTeX errors in the compilation output
- Check Claude Desktop config file syntax
- Verify the absolute path to
dist/index.js - Restart Claude Desktop after configuration changes
Some LaTeX features require additional packages. Install the full TeX Live distribution:
sudo apt-get install texlive-full # Ubuntu/DebianContributions are welcome! Please feel free to submit issues and pull requests.
MIT License - see LICENSE file for details