nougat-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@nougat-mcpOCR the PDF at /papers/example.pdf in markdown format"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Nougat-MCP
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.
Related MCP server: MCP-MinerU
Installation
Install from PyPI:
uv pip install nougat-mcpThis 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:
NOUGAT_MCP_SETTINGS(if set)./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:
Input PDF page: showcase/2405.08770v1_page5.pdf
Raw
mmdoutput: showcase/2405.08770v1_page5.mmdConverted
mdoutput: showcase/2405.08770v1_page5.md
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.38albumentations>=1.3,<1.4pypdfium2<5.0huggingface-hub<1.0fsspec<=2025.10.0
Credits
Nougat OCR: https://github.com/facebookresearch/nougat
License
GNU General Public License v3.0 (LICENSE).
Available Tools
2 toolsget_output_settingsB
Return resolved output settings so agents can adapt behavior. Reads NOUGAT_MCP_SETTINGS or ./settings.json.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals that it reads from environment variable or a file, which is helpful. However, it does not mention failure modes (e.g., missing file), whether it is read-only, or any other side effects. With no annotations, a bit more detail would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise with two short sentences, no filler, and front-loaded with the core purpose. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no params, no output schema), the description covers the basic functionality. However, it does not specify the format or structure of the returned settings, which might be needed for agents to use the output effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100% by default. The description adds meaning by specifying data sources (NOUGAT_MCP_SETTINGS or ./settings.json), which is useful beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Return') and the resource ('resolved output settings'), with a clear purpose for agents to adapt behavior. While the sibling tool is unrelated, the purpose is specific enough to differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool or when to avoid it. The description lacks context about prerequisites or alternatives, such as if settings might be unavailable or how often to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parse_research_paperA
Highly accurate OCR for academic papers and scientific PDFs using Meta's Nougat model. Converts visual structures like tables, formulas, and multi-column layouts into clean Markdown.
Args: file_path (str): The absolute path to the PDF file on the local system. output_format (str): "default" uses settings.json preferences. "mmd" returns raw Nougat output. "md" converts math delimiters for broader Markdown renderer compatibility.
Returns: str: The extracted text in the requested markup format.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| output_format | No | default |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses use of Meta's Nougat model and conversion of visual structures, but lacks details on error handling, performance, or file size limits. The Returns section provides some clarity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a clear purpose sentence followed by argument and return descriptions. It is appropriately sized but could be slightly more concise by removing redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown but noted), the description adequately covers input parameters and return format. It does not discuss errors or edge cases, but is generally complete for a straightforward parsing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain parameters. It clearly describes 'file_path' as absolute path and elaborates on 'output_format' enum values: 'default', 'mmd', and 'md' with their behaviors. This adds meaningful context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: high-accuracy OCR for academic papers and scientific PDFs, converting visual structures to Markdown. It distinguishes itself from the sibling tool 'get_output_settings' by being a parsing tool rather than a settings retrieval tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when to use each output format option and mentions the 'default' utilizes settings.json. However, it does not specify prerequisites (e.g., file existence) or when to avoid using this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v0.1.0- First observed
get_output_settings - First observed
parse_research_paper
TDQS
The two tools have entirely distinct purposes: one retrieves configuration settings, the other parses PDFs.
Both tools use the consistent verb_noun pattern with underscores, e.g., get_output_settings and parse_research_paper.
With only two tools, the server is minimal but appropriate for its focused scope on PDF parsing with a settings helper.
The server provides the core functionality (parse and settings) for its domain, though it lacks auxiliary features like model listing.
Maintenance
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
High-fidelity PDF to structured Markdown conversion and document field extraction.
Agent-native document parsing: PDF, scans and FR/EU invoices to structured JSON or Markdown.
Extract tables, text and formulas from PDFs, including scanned pages and broken text layers.
Parse PDF/Word/PPT/HTML to Markdown; tables as JSON, image extraction, RAG chunking, page ranges.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables reading and extracting content from PDF documents including text (as Markdown), images, tables, and metadata from both local files and URLs, with OCR support for scanned documents.2-
- AlicenseAqualityDmaintenanceEnables document and image parsing to extract text, tables, and formulas from PDFs, screenshots, and scanned documents. Features OCR capabilities, table recognition, LaTeX formula conversion, and MLX acceleration optimized for Apple Silicon.216Apache 2.0
- FlicenseAqualityCmaintenanceEnables AI agents to efficiently process large local and online PDFs through selective extraction of text, images, and metadata. It provides tools for content search and document outline navigation to optimize context window usage.714-
- AlicenseAqualityDmaintenanceEnables LLMs to read and extract content from PDF files with high-fidelity LaTeX recognition and layout awareness using a Python-based extraction engine. It includes a robust Node.js fallback and supports page range filtering for efficient processing of large documents.160MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/svretina/nougat-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server