Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Nougat

FreeNot checked

Provides high-fidelity OCR for scientific PDFs using Meta's Nougat, with output format control and settings for agent workflows.

GitHubEmbed

About

Provides high-fidelity OCR for scientific PDFs using Meta's Nougat, with output format control and settings for agent workflows.

README

PyPI version Python versions License: GPL v3 MCP Protocol

nougat-mcp is a Model Context Protocol (MCP) server for high-fidelity OCR of scientific PDFs using Meta's Nougat.

It is designed for agent workflows where you need equations, tables, and structure preserved better than traditional OCR.

Why This Server

  • Scientific OCR quality tailored for papers, formulas, and dense layouts.
  • MCP-native interface for Codex, Claude, Cursor, Antigravity, and other clients.
  • Output-format control:
    • mmd: raw Nougat/Mathpix-style output.
    • md: renderer-friendly conversion (math delimiter and KaTeX compatibility fixes).
  • Settings file support so agents can read a shared default format policy.

Installation

Install from PyPI:

uv pip install nougat-mcp

This package installs nougat-ocr and pins known-sensitive dependencies for stability.

Tools

parse_research_paper

Arguments:

  • file_path (string): Absolute path to a local PDF.
  • output_format (string, optional):
    • default (default): uses server settings.
    • mmd: raw Nougat output.
    • md: converted markdown-friendly output.

Returns:

  • OCR result as a single text string in the requested format.

get_output_settings

Returns resolved server output settings, including where settings were loaded from.

Output Conversion (mmd -> md)

When output_format="md", the server applies compatibility conversions:

  • \[ ... \] -> $$ ... $$
  • \( ... \) -> $ ... $
  • \tag{...} -> visible equation label \qquad\text{(...)}
  • KaTeX delimiter normalization, for example:
    • \bigl{\|} ... \bigr{\|} -> \bigl\| ... \bigr\|

This avoids common renderer parse errors in markdown environments that are not fully MathJax-compatible.

Server Settings

Settings are read in this order:

  1. NOUGAT_MCP_SETTINGS (if set)
  2. ./settings.json (current working directory)

Example settings.json:

{
  "nougat_mcp": {
    "default_output_format": "md",
    "md_rewrite_tags": true,
    "md_fix_sized_delimiters": true
  }
}

Agent Configuration

Codex CLI

Add to ~/.codex/config.toml:

[mcp_servers.nougat]
command = "uvx"
args = ["nougat-mcp"]
enabled = true

[mcp_servers.nougat.env]
NOUGAT_MCP_SETTINGS = "/absolute/path/to/settings.json"

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "nougat": {
      "command": "uvx",
      "args": ["nougat-mcp"],
      "env": {
        "NOUGAT_MCP_SETTINGS": "/absolute/path/to/settings.json"
      }
    }
  }
}

Antigravity / Gemini Desktop

Add to ~/.gemini/settings.json:

{
  "mcpServers": {
    "nougat": {
      "type": "stdio",
      "command": "uvx",
      "args": ["nougat-mcp"],
      "env": {
        "NOUGAT_MCP_SETTINGS": "/absolute/path/to/settings.json"
      }
    }
  }
}

Cursor

In Cursor MCP settings, add:

{
  "mcpServers": {
    "nougat": {
      "command": "uvx",
      "args": ["nougat-mcp"],
      "env": {
        "NOUGAT_MCP_SETTINGS": "/absolute/path/to/settings.json"
      }
    }
  }
}

Note: Cursor MCP config location can vary by version/platform; use the MCP settings UI or your current JSON settings file.

Showcase (Real Page Example)

A real extraction from page 5 of src/2405.08770v1.pdf is included:

Quick comparison:

# mmd
\[DV=V_{x}. \tag{3.2}\]

# md
$$
DV=V_{x}. \qquad\text{(3.2)}
$$

Performance Notes

  • First run may download model weights (~1.4 GB).
  • CPU inference is significantly slower than GPU inference.
  • Use page subsets whenever possible to reduce runtime.

Compatibility Pins

To keep Nougat stable across environments, the package pins sensitive dependency ranges:

  • transformers>=4.35,<4.38
  • albumentations>=1.3,<1.4
  • pypdfium2<5.0
  • huggingface-hub<1.0
  • fsspec<=2025.10.0

Credits

License

GNU General Public License v3.0 (LICENSE).

from github.com/svretina/nougat-mcp

Install Nougat in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install nougat-mcp

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add nougat-mcp -- uvx nougat-mcp

FAQ

Is Nougat MCP free?

Yes, Nougat MCP is free — one-click install via Unyly at no cost.

Does Nougat need an API key?

No, Nougat runs without API keys or environment variables.

Is Nougat hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Nougat in Claude Desktop, Claude Code or Cursor?

Open Nougat on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Nougat with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs