mcp-file-processor について
mcp-file-processor は、RAG ワークフロー向けのローカルテキスト処理 MCP サーバーです。ファイルからテキストを抽出して整える開発者向けで、API キーなしで複数の文書・コード形式を扱います。
主な機能
- 01PDF、DOCX、テキスト形式から内容を抽出
- 02頻度順にキーワードを抽出
- 03コード、自然言語、混在を判定
- 04重複を含むテキストチャンクの作成
- 05一括処理で各工程を実行
活用シーン
- 01RAG ワークフロー用の文書テキスト抽出
- 02埋め込み処理用のコンテンツ分割
- 03コードファイルの内容種別判定
- 04文書インデックス用キーワードの生成
MCP 対応
MCP サーバーとして、テキスト抽出、キーワード抽出、言語判定、チャンク化、一括ファイル処理のツールを提供し、対応形式のリソースを公開します。処理はローカルで実行され、API キーは不要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
6掲載時のツール一覧 · 3 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| content | string | はい | ファイル内容 — バイナリ形式(PDF、DOCX)の場合は Base64 エンコード、テキスト形式の場合は生テキスト |
| fileType | string | はい | MIME タイプ(例:"application/pdf")またはファイル拡張子(例:".pdf"、"pdf"、".ts") |
詳細
@opafex/mcp-file-processor
RAG パイプライン向けに設計された、汎用的なテキスト抽出、キーワード抽出、言語検出、テキスト分割を行う MCP サーバーです。
PDF、DOCX、CSV、JSON、Markdown、HTML、コードファイルに対応しています。プラットフォーム依存関係はありません。
インストール
npm install @opafex/mcp-file-processor
Node.js 20+ が必要です。
クイックスタート
Claude Code / Claude Desktop に追加する
{
"mcpServers": {
"file-processor": {
"command": "npx",
"args": ["@opafex/mcp-file-processor"]
}
}
}
API キーは不要です。すべてローカルで実行されます。
ツール
extract_text
ファイルからテキストコンテンツを抽出します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
content | string | はい | ファイルのコンテンツ。バイナリ形式(PDF、DOCX)は base64、テキスト形式は生テキストです |
fileType | string | はい | MIME タイプ(例:"application/pdf")または拡張子(例:".pdf"、"pdf") |
応答例
{
"success": true,
"text": "Extracted text content here...",
"wordCount": 142,
"pageCount": 3,
"processingTimeMs": 45
}
extract_keywords
テキストから重要度順にキーワードを抽出します。ストップワードを除外し、出現頻度順に並べます。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
text | string | はい | キーワードを抽出するテキスト |
limit | number | いいえ | 返すキーワードの最大数(デフォルト:20) |
応答例
{
"success": true,
"keywords": [
{ "word": "javascript", "frequency": 8 },
{ "word": "framework", "frequency": 4 },
{ "word": "react", "frequency": 3 }
],
"totalWords": 156
}
detect_language
コンテンツがコード、自然言語、または混在のいずれであるかを検出します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
text | string | はい | 分析するテキスト |
fileName | string | いいえ | 拡張子に基づく検出に使用するファイル名(例:"app.ts") |
応答例
{
"success": true,
"contentType": "code",
"programmingLanguage": "typescript"
}
chunk_text
RAG/埋め込みパイプライン向けに、重複部分を含むチャンクにテキストを分割します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
text | string | はい | 分割するテキスト |
chunkSize | number | いいえ | チャンクの目標サイズ(文字数)(デフォルト:1000) |
overlap | number | いいえ | チャンク間の重複文字数(デフォルト:200) |
応答例
{
"success": true,
"chunks": [
{ "index": 0, "text": "...", "startOffset": 0, "endOffset": 1000, "wordCount": 167 },
{ "index": 1, "text": "...", "startOffset": 800, "endOffset": 1800, "wordCount": 172 }
],
"totalChunks": 5,
"totalCharacters": 4200
}
process_file
一括処理:テキストの抽出、コンテンツタイプの検出、キーワードの抽出、チャンクへの分割を行います。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
content | string | はい | ファイルのコンテンツ(base64 または生テキスト) |
fileType | string | はい | MIME タイプまたはファイル拡張子 |
chunkSize | number | いいえ | チャンクサイズ(文字数)(デフォルト:1000) |
chunkOverlap | number | いいえ | 重複する文字数(デフォルト:200) |
keywordLimit | number | いいえ | キーワードの最大数(デフォルト:20) |
server_info(組み込み)
サーバーのメタデータ、登録済みのツール、リソースを返します。
リソース
| リソース | 説明 |
|---|---|
file-processor://supported-types | 対応しているすべての MIME タイプとファイル拡張子を一覧表示します |
対応形式
| 形式 | 拡張子 | 入力 |
|---|---|---|
.pdf | base64 | |
| Word | .docx、.doc | base64 |
| プレーンテキスト | .txt | 生テキスト |
| Markdown | .md | 生テキスト |
| CSV | .csv | 生テキスト |
| JSON | .json | 生テキスト |
| HTML | .html | 生テキスト |
| XML | .xml | 生テキスト |
| JavaScript | .js、.jsx、.mjs | 生テキスト |
| TypeScript | .ts、.tsx | 生テキスト |
| Python | .py | 生テキスト |
| Java | .java | 生テキスト |
| Go | .go | 生テキスト |
| Rust | .rs | 生テキスト |
| C/C++ | .c、.cpp、.h | 生テキスト |
開発
npm run build # Compile TypeScript
npm run dev # Run with tsx
npm test # Run tests
npm start # Run compiled server
ライブラリの使用方法
import { FileProcessorService } from '@opafex/mcp-file-processor/service';
const service = new FileProcessorService();
const result = await service.processFile(
'Hello world, this is a document.',
'.txt',
500, // chunk size
100 // overlap
);
コントリビューション
バグを見つけた場合や機能のリクエストがある場合は、Issue を作成してください。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。