# Reported issues for math-svg-mcp

Pod holds 6 of 6 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [math-svg-mcp](/mcp/math-svg-mcp).

## Most discussed

### Add list_fonts tool

Add a `list_fonts` tool that returns available math fonts with descriptions.

Currently, fonts are only exposed through the `font` parameter's enum in the tool schema. A dedicated tool would improve discoverability.

## Proposed response format

```json
{
  "default": "modern",
  "fonts": [
    { "name": "modern", "description": "Latin Modern (bundled)" },
    { "name": "stix2", "description": "STIX Two Math" },
    { "name": "newcm", "description": "New Computer Modern" },
    { "name": "fira",

[Read the thread](https://github.com/wspringer/math-svg-mcp/issues/18) · 2026-02-06 · open · 0 comments

### Add font selection option

## Summary

Add a `font` parameter to both `latex_to_svg` and `latex_to_svg_file` tools, allowing users to choose from available MathJax fonts. Fonts are automatically downloaded on first use and cached locally.

## Available Fonts

MathJax supports 11 fonts. The `tex` font is bundled; others are downloaded automatically on first use:

| Font | Description |
|------|-------------|
| `tex` | Classic TeX/Computer Modern (default, bundled) |
| `stix2` | STIX Two Math |
| `newcm` | New Computer Mode

[Read the thread](https://github.com/wspringer/math-svg-mcp/issues/16) · 2026-02-06 · closed · 0 comments

### NPM Publishing Readiness

## Summary

Prepare the project for NPM publishing by adding missing files and configuration.

## Current State

The project has solid NPM publishing fundamentals already in place:
- `package.json` with name, version (1.0.4), main, bin, files, keywords, license, engines
- TypeScript build producing `dist/` with declarations
- `files: ["dist"]` correctly limits what gets published
- Shebang (`#!/usr/bin/env node`) in dist/index.js for CLI usage

## Missing Items

### High Priority

1. **LICENSE f

[Read the thread](https://github.com/wspringer/math-svg-mcp/issues/12) · 2026-02-04 · open · 0 comments

### Add baseline/depth information to SVG output

## Problem

When placing math formulas inline with text (in InDesign or other applications), proper vertical alignment requires knowing where the baseline is. Currently we only return width and height.

## Solution

MathJax already provides this information via the `vertical-align` CSS property on the SVG element (e.g., `vertical-align: -2.159ex`). This tells us how far the formula extends below the text baseline.

Add a `depth` field to the tool output:

```json
{
  "svg": "...",
  "width": "97

[Read the thread](https://github.com/wspringer/math-svg-mcp/issues/10) · 2026-02-01 · closed · 0 comments

### SVG uses relative 'ex' units which render tiny in standalone contexts

## Problem

The SVG output uses relative typographic units (`ex`) for width and height:

```svg
<svg width="53.636ex" height="6.538ex" viewBox="0 -1562.5 23706.9 2889.8" ...>
```

The `ex` unit is "the height of the lowercase letter x" and depends on CSS font context. In a browser, this works because CSS cascades the font size. But in standalone contexts like Adobe InDesign, there's no font context, so the SVG renders extremely small.

## Root Cause

MathJax is designed for web use where relativ

[Read the thread](https://github.com/wspringer/math-svg-mcp/issues/7) · 2026-02-01 · closed · 0 comments

### SVG output includes mjx-container HTML wrapper, making files invalid

## Problem

The `latexToSvg` function returns SVG wrapped in an `mjx-container` HTML element:

```html
<mjx-container class="MathJax" jax="SVG" display="true">
  <svg ...>...</svg>
</mjx-container>
```

This makes the output invalid as a standalone SVG file. Applications like Adobe InDesign reject it with "Import failed" because they expect a file starting with `<svg>`, not an HTML wrapper.

## Root Cause

In `src/mathjax.ts:58`, `adaptor.outerHTML(node)` serializes the entire container node ret

[Read the thread](https://github.com/wspringer/math-svg-mcp/issues/4) · 2026-02-01 · closed · 0 comments

## Most recent

The remaining reports are on [the project's issue tracker](https://github.com/wspringer/math-svg-mcp/issues).
