shuck-file
shuck-file
どんなファイルも Markdown に — 必要なものだけを読み取ります。
shuck-file は、AI エージェントや LLM 向けにドキュメントをクリーンな Markdown へ変換します。小さなファイルはそのまま出力し、大きなファイルはセクションの要約・トークン数・次のアクションの手がかりを含むドキュメントマップを返すため、エージェントは必要な部分だけを取得できます。
なぜ shuck-file なのか?
AI エージェントには、コンテキストを認識するブリッジが必要です:
小さなファイル →
shuck report.docx→ 標準出力に完全な Markdown大きなファイル →
shuck report.docx→ セクションと抽出オプションを含むドキュメントマップ対象を絞った抽出 →
shuck report.docx --sections s1,s3→ 必要な部分だけを取得検索 →
shuck report.docx --grep "revenue"→ すべてを読まずに目的の箇所を発見
Related MCP server: mcp-document-converter
対応フォーマット
フォーマット | 拡張子 | ライブラリ | 保持される内容 |
Word |
| python-docx | 見出し、太字/斜体、リスト、表 |
| pdfplumber | テキスト内容、ページ区切り | |
Excel |
| openpyxl | すべてのシートを Markdown テーブルとして |
PowerPoint |
| python-pptx | タイトル、テキスト、表、発表者ノート |
CSV |
| stdlib | すべての行/列をテーブルとして |
インストール
pip を使用(推奨)
pip install shuck-fileこれにより、shuck CLI コマンドと MCP サーバーがインストールされます。
ソースから
git clone https://github.com/Shan-Zhu/shuck-file.git
cd shuck-file
pip install -e .クイックスタート
# Convert a document
shuck report.docx
# Force full output (bypass map mode)
shuck large-report.pdf --all
# Search within a document
shuck report.pdf --grep "revenue"使い方
自動ルーティング(デフォルト)
小さなファイルはそのまま出力され、大きなファイルはドキュメントマップを返します。
# Small file → direct Markdown output
shuck document.pdf
# Large file → document map with sections table + next steps
shuck large-report.pdf抽出オプション
# Force full output (bypass map mode)
shuck report.pdf --all
# Extract specific sections
shuck report.pdf --sections s1,s3
# Tables only
shuck report.pdf --tables-only
# Search within document
shuck report.pdf --grep "revenue"
# Token budget (smart compression)
shuck report.pdf --budget 4000
# Combinations work
shuck report.pdf --sections s2,s3 --budget 2000Excel/CSV 固有の操作
# Column headers and types
shuck data.xlsx --schema-only
# Headers + first N rows
shuck data.xlsx --sample 5パワーユーザー向けサブコマンド
# Force map mode (even on small files)
shuck probe document.docx
# Force full extraction (alias for --all)
shuck pull document.docx出力の制御
# Write to file
shuck document.pdf -o output.md
# Write to directory (auto-named)
shuck document.pdf -d ./converted/
# Skip YAML frontmatter
shuck document.pdf --no-frontmatter
# List supported formats
shuck --formatsマップモードの出力
ファイルが大きい場合、shuck はドキュメントマップを返します:
# Document Map: quarterly-report.pdf
**6 pages | ~12,400 tokens | 6 sections**
## Sections
| # | Title | Type | Tokens | Density |
|---|-------|------|--------|---------|
| s1 | Executive Summary | narrative | 450 | high |
| s2 | Q3 Financial Results | mixed | 2,800 | high |
| s3 | Revenue Breakdown | tabular | 3,200 | high |
| ...
## Next Steps
- `shuck quarterly-report.pdf --all` -- full document (~12,400 tokens)
- `shuck quarterly-report.pdf --sections s1,s2` -- high-density (~3,250 tokens)
- `shuck quarterly-report.pdf --grep "..."` -- search for keywordsMCP サーバー
shuck-file には MCP(Model Context Protocol)サーバーが含まれており、MCP 互換のあらゆる AI ツールで利用できます。
Claude Code
claude mcp add shuck-file -- shuck-fileまたは、プロジェクトの .mcp.json に追加します:
{
"mcpServers": {
"shuck-file": {
"command": "shuck-file",
"args": []
}
}
}Cursor
~/.cursor/mcp.json に追加します:
{
"mcpServers": {
"shuck-file": {
"command": "shuck-file",
"args": []
}
}
}Windsurf
MCP 設定に追加します:
{
"mcpServers": {
"shuck-file": {
"command": "shuck-file",
"args": []
}
}
}あらゆる MCP クライアント
shuck-file は mcp.servers エントリポイントを介して MCP サーバーとして登録されます。公開されるツール:
shuck— すべてのオプション(mode、sections、grep、budget など)を指定してドキュメントを Markdown に変換list_formats— 対応しているドキュメントフォーマットの一覧を表示
Claude Code プラグイン
/shuck スキル用の Claude Code プラグインとしてインストールします:
claude plugin add /path/to/shuck-fileアーキテクチャ
src/shuck_file/
├── cli.py # CLI entrypoint
├── server.py # MCP Server (FastMCP)
├── core/
│ ├── router.py # Auto-routing logic
│ ├── segmenter.py # Document segmentation
│ ├── mapper.py # Map mode renderer
│ ├── budget.py # Smart compression
│ ├── grep.py # In-document search
│ ├── frontmatter.py # YAML frontmatter
│ └── models.py # Data models
├── extractors/
│ ├── base.py # Base extractor ABC
│ ├── docx_ext.py # Word extractor
│ ├── pdf_ext.py # PDF extractor
│ ├── xlsx_ext.py # Excel extractor
│ ├── pptx_ext.py # PowerPoint extractor
│ └── csv_ext.py # CSV extractor
plugin/ # Claude Code plugin wrapper
tests/
├── test_extractors.py
├── test_router.py
├── test_segmenter.py
├── test_budget.py
└── test_grep.pyライセンス
MIT
This server cannot be installed
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 Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to search, deep-read, and build knowledge bases from Markdown, PDF, DOCX, and PPTX documents via MCP tools for retrieval, document navigation, and ingestion.70616MIT
- AlicenseNot gradedqualityCmaintenanceConverts documents between multiple formats (Markdown, HTML, DOCX, PDF, Text) enabling AI agents to easily transform documents.12MIT
- AlicenseNot gradedqualityCmaintenanceProvides AI agents with comprehensive document parsing capabilities including PDF text extraction, OCR, HTML-to-markdown conversion, table extraction, and summarization, optimized for agent workflows.101MIT
- FlicenseAqualityCmaintenanceConverts files (PDF, DOCX, PPTX, XLSX, images via OCR) and URLs to Markdown, enabling AI clients to read them via a single MCP tool.1
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Web scraping for AI agents. Converts URLs to clean, LLM-ready Markdown with anti-bot bypass.
Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.
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/Shan-Zhu/shuck-file'
If you have feedback or need assistance with the MCP directory API, please join our Discord server