Figma Context MCP
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
作者提供的说明(英文原文)
Parse PDFs, images, doc, docx, ppt, pptx, xls, xlsx, html into Markdown using MinerU API.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
MINERU_API_TOKEN, OUTPUT_DIR标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"mineru-open": {
"command": "uvx",
"args": [
"mineru-open-mcp"
],
"env": {
"MINERU_API_TOKEN": "your-value",
"OUTPUT_DIR": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add mineru-open --env MINERU_API_TOKEN=your-value --env OUTPUT_DIR=your-value -- uvx mineru-open-mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"mineru-open": {
"command": "uvx",
"args": [
"mineru-open-mcp"
],
"env": {
"MINERU_API_TOKEN": "your-value",
"OUTPUT_DIR": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"mineru-open": {
"type": "stdio",
"command": "uvx",
"args": [
"mineru-open-mcp"
],
"env": {
"MINERU_API_TOKEN": "your-value",
"OUTPUT_DIR": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
OUTPUT_DIR env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月10日
注册名称已通过 GitHub 账户 opendatalab 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:MINERU_API_TOKEN
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.0.20)于7个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。
同一分类中有:Figma Context MCP, Claude Real Video, Figma MCP Server
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
Let any LLM watch a video locally — and search everything it has ever watched.
The Figma MCP server brings Figma design context directly into your AI workflow.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
The official ecosystem toolkit for [MinerU](https://github.com/opendatalab/MinerU) Open API
Empowering developers and AI agents with seamless document parsing capabilities — PDF · Word · PPT · Images · Web pages → Markdown / JSON · VLM+OCR dual engine · 109 languages · MCP Server · LangChain / RAGFlow / Dify / FastGPT native integration.
中文文档
MinerU-Ecosystem provides a full suite of tools, SDKs, and integrations built on top of the MinerU Open API. Whether you're building production pipelines, integrating with LangChain for RAG, or enabling AI agents to parse documents on the fly — this repository has you covered.
MinerU is an open-source, high-accuracy document parsing engine that converts unstructured documents (PDFs, images, Office files, etc.) into machine-readable Markdown and JSON, purpose-built for LLM pre-training, RAG, and agentic workflows.
Core capabilities:
MinerU-Ecosystem/
├── cli/ # Command-line tool for document parsing ├── sdk/ # Multi-language SDKs │ ├── python/ # Python SDK │ ├── go/ # Go SDK │ └── typescript/ # TypeScript SDK ├── langchain_mineru/ # LangChain document loader integration ├── llama-index-readers-mineru/ # LlamaIndex document reader integration ├── mcp/ # Model Context Protocol server (Python) └── skills/ # AI agent skills (Claude Code, OpenClaw, etc.)
All components support both API modes:
| Comparison | 🎯 Precision Extract API | ⚡ Quick Parse API (Agent-Oriented) |
|---|---|---|
| Auth | ✅ Token required | ❌ Not required (IP rate-limited) |
| Model Versions | pipeline (default) / vlm (recommended) / MinerU-HTML | Fixed lightweight pipeline model |
| File Size Limit | ≤ 200 MB | ≤ 10 MB |
| Page Limit | ≤ 200 pages | ≤ 20 pages |
| Batch Support | ✅ Supported (≤ 200 files) | ❌ Single file only |
| Output Formats | Markdown, JSON, Zip; optional export to DOCX / HTML / LaTeX | Markdown only |
Not sure where to start? Pick the path that matches your use case:
I want to...
│ ├── 🌐 Try it instantly, with no install and no code │ └── Web App → https://mineru.net/OpenSourceTools/Extractor │ ├── 💻 Parse documents from the terminal │ └── CLI → cli/ │ flash-extract: no token, best for quick previews │ extract: full features, better for production workflows │ ├── 🐍 Integrate it into my Python / Go / TypeScript project │ └── SDK → sdk/python/ | sdk/go/ | sdk/typescript/ │ ├── 🤖 Enable my AI agent to parse documents │ ├── Call the CLI directly → cli/ │ ├── Use natural-language skills (OpenClaw, ZeroClaw, etc.) → skills/ │ └── Use MCP protocol (Cursor, Claude Desktop, Windsurf, etc.) → mcp/ │ ├── 📚 Build a RAG pipeline / knowledge base │ ├── LangChain Loader → langchain_mineru/ │ └── LlamaIndex Reader → llama-index-readers-mineru/ │ flash mode: zero-token quick start │ precision mode: OCR, tables, formulas, and higher fidelity
cli/)A fast command-line tool for parsing documents directly from your terminal.
# Linux / macOS
curl -fsSL https://cdn-mineru.openxlab.org.cn/open-api-cli/install.sh | sh
# Windows (PowerShell)
irm https://cdn-mineru.openxlab.org.cn/open-api-cli/install.ps1 | iex
Flash Extract (no login)
mineru-open-api flash-extract report.pdf
Precision Extract (login required)
# First-time setup
mineru-open-api auth
mineru-open-api extract paper.pdf
mineru-open-api extract report.pdf -o ./output/
mineru-open-api extract report.pdf -f docx,latex,html -o ./results/
Web Crawl
mineru-open-api crawl https://www.example.com
Batch Processing
# All PDFs in current directory
mineru-open-api extract *.pdf -o ./results/
mineru-open-api extract --list filelist.txt -o ./results/
pip install mineru-open-sdk
Flash Extract (no token)
from mineru import MinerU
client = MinerU() result = client.flash_extract("https://cdn-mineru.openxlab.org.cn/demo/example.pdf") print(result.markdown)
Precision Extract (token required)
from mineru import MinerU
client = MinerU("your-api-token") result = client.extract("https://cdn-mineru.openxlab.org.cn/demo/example.pdf") print(result.markdown) print(result.images) # extracted image list
go get github.com/opendatalab/MinerU-Ecosystem/sdk/go@latest
Flash Extract
package main
import ( "context" "fmt" mineru "github.com/opendatalab/MinerU-Ecosystem/sdk/go" )
func main() { client := mineru.NewFlash() result, err := client.FlashExtract( context.Background(), "https://cdn-mineru.openxlab.org.cn/demo/example.pdf", ) if err != nil { panic(err) } fmt.Println(result.Markdown) }
Precision Extract
client, err := mineru.New("your-api-token")
if err != nil { panic(err) } result, err := client.Extract( context.Background(), "https://cdn-mineru.openxlab.org.cn/demo/example.pdf", ) if err != nil { panic(err) } fmt.Println(result.Markdown)
Precision Extract with options
result, err := client.Extract(ctx, "./paper.pdf",
mineru.WithModel("vlm"), mineru.WithLanguage("en"), mineru.WithPages("1-20"), mineru.WithExtraFormats("docx"), mineru.WithPollTimeout(10*time.Minute), ) if err != nil { panic(err) } if err := result.SaveAll("./output"); err != nil { panic(err) }
Batch Processing
ch, err := client.ExtractBatch(ctx, []string{"a.pdf", "b.pdf"})
if err != nil { panic(err) } for result := range ch { fmt.Printf("%s: %s\n", result.Filename, result.State) }
Web Crawling
result, err := client.Crawl(ctx, "https://www.example.com")
if err != nil { panic(err) } fmt.Println(result.Markdown)
npm install mineru-open-sdk
Flash Extract
import { MinerU } from "mineru-open-sdk";
const client = new MinerU(); const result = await client.flashExtract( "https://cdn-mineru.openxlab.org.cn/demo/example.pdf" ); console.log(result.markdown);
Precision Extract
import { MinerU } from "mineru-open-sdk";
const client = new MinerU("your-api-token"); const result = await client.extract( "https://cdn-mineru.openxlab.org.cn/demo/example.pdf" ); console.log(result.markdown); console.log(result.images);
Precision Extract with options
import { MinerU, saveAll } from "mineru-open-sdk";
const client = new MinerU("your-api-token"); const result = await client.extract("./paper.pdf", { model: "vlm", // "vlm" | "pipeline" | "html" language: "en", pages: "1-20", extraFormats: ["docx"], timeout: 600, }); await saveAll(result, "./output");
Batch Processing
for await (const result of client.extractBatch(["a.pdf", "b.pdf"])) {
console.log(${result.filename}: ${result.state}); }
Web Crawling
const result = await client.crawl("https://www.example.com");
console.log(result.markdown);
MinerU provides an official MCP Server allowing Claude Desktop, Cursor, Windsurf, and any MCP-compatible AI client to parse documents as a native tool.
No API key needed — Flash mode works out of the box, free, up to 20 pages / 10 MB per file.
Configure: `claude_desktop_config.json` / `.cursor/mcp.json`
{
"mcpServers": { "mineru": { "command": "uvx", "args": ["mineru-open-mcp"], "env": { "MINERU_API_TOKEN": "your_key_here" } } } }
Streamable HTTP mode (web-based MCP clients)
MINERU_API_TOKEN=your_key mineru-open-mcp --transport streamable-http --port 8001
{
"mcpServers": { "mineru": { "type": "streamableHttp", "url": "http://127.0.0.1:8001/mcp" } } }
Tools exposed via MCP:
| Tool | Description |
|---|---|
parse_documents | Convert PDF, DOCX, PPTX, images, HTML to Markdown |
get_ocr_languages | List all 109 supported OCR languages |
clean_logs | Delete old server log files (when ENABLE_LOG=true) |
Environment Variables:
| Variable | Description | Default |
|---|---|---|
MINERU_API_TOKEN | MinerU cloud API token | — |
OUTPUT_DIR | Directory for saved output | ~/mineru-downloads |
ENABLE_LOG | Set true to write log files | disabled |
MINERU_LOG_DIR | Override log file directory | ~/.mineru-open-mcp/logs/ |
langchain-mineru is an official LangChain Document Loader — parse any document into LangChain Document objects with one line of code.
pip install langchain-mineru
Minimal example (no token)
1. Basic usage (`flash` mode by default, no token required)
from langchain_mineru import MinerULoader
loader = MinerULoader(source="demo.pdf") # flash mode, no token needed docs = loader.load() print(docs[0].page_content[:500]) print(docs[0].metadata)
Default is mode="flash", which is ideal for quick previews and lightweight integrations.
2. Precision mode (token required)
Best for long documents, larger files, and workflows that need higher-fidelity extraction or standard API outputs. Flash mode also supports OCR, table, and formula switches within flash API limits.
from langchain_mineru import MinerULoader
loader = MinerULoader( source="/path/to/manual.pdf", mode="precision", token="your-api-token", # or set MINERU_TOKEN split_pages=True, pages="1-5", )
docs = loader.load() for doc in docs: print(doc.metadata.get("page"), doc.page_content[:200])
3. Use it in a LangChain RAG pipeline
from langchain_mineru import MinerULoader
from langchain_text_splitters import RecursiveCharacterTextSplitter from langchain_openai import OpenAIEmbeddings from langchain_community.vectorstores import FAISS
loader = MinerULoader(source="demo.pdf", split_pages=True) docs = loader.load()
splitter = RecursiveCharacterTextSplitter(chunk_size=1200, chunk_overlap=200) chunks = splitter.split_documents(docs)
vs = FAISS.from_documents(chunks, OpenAIEmbeddings()) results = vs.similarity_search("What are the key conclusions in this document?", k=3)
for r in results: print(r.page_cont
只显示了开头部分;其余内容请在仓库中阅读