Paperless MCP - Document Management System について
Paperless MCP は、デジタル文書を扱う組織向けのオープンソース文書管理システムです。保存や検索に加え、OCR、分類、メタデータ抽出、アクセス制御、ワークフローに対応します。
主な機能
- 01文書の保存とフォルダー整理
- 02メタデータ、タグ、高度な検索
- 03OCR とメタデータ抽出
- 04文書の自動分類
- 05アクセス制御と監査ログ
- 06REST API とカスタマイズ可能なワークフロー
活用シーン
- 01スキャン文書のデジタル化と整理
- 02テキストやメタデータによる文書検索
- 03受信文書の自動分類
MCP 対応
README では文書管理システムと REST API が説明されていますが、MCP クライアント向けの MCP ツールやリソースについては記載されていません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Paperless MCP - ドキュメント管理システム
デジタルワークプレイス向けの最新かつ効率的なドキュメント管理システム
機能 • インストール • 使い方 • API • 設定 • コントリビューション • ライセンス
概要
Paperless MCP は、企業環境でデジタルドキュメントを効率的に扱えるように設計されたオープンソースのドキュメント管理システムです。ドキュメントの保存、整理、検索、処理を包括的にサポートし、紙の書類を不要にするとともに、ドキュメントのワークフローを簡素化します。
このシステムは、OCR(光学文字認識)、メタデータの抽出、自動ドキュメント分類など、堅牢なドキュメント処理機能を備えており、厳格なセキュリティとアクセス制御も維持します。
機能
ドキュメントの保存と整理
- クラウドまたはオンプレミスでの安全なドキュメント保存
- 階層型フォルダー構造
- カスタムメタデータとタグ付け
- 高度な検索機能
ドキュメント処理
- スキャンしたドキュメントの OCR
- ドキュメントの自動分類
- メタデータの抽出
- PDF の処理と編集
セキュリティとコンプライアンス
- ロールベースのアクセス制御
- すべてのドキュメント操作の監査ログ
- 機密データの暗号化
- 業界標準への準拠(GDPR、HIPAA など)
統合と拡張性
- サードパーティとの連携用 RESTful API
- 自動化のための Webhook サポート
- カスタマイズ可能なワークフローエンジン
- 機能を拡張するプラグインアーキテクチャ
ユーザーエクスペリエンス
- 直感的に使えるウェブベースのユーザーインターフェース
- モバイル対応のデザイン
- ドキュメントのプレビューと注釈
- ドキュメントを効率的に扱うための一括操作
インストール
前提条件
- Node.js(v16 以降)
- npm または yarn
- PostgreSQL(v13 以降)
- Docker(任意、コンテナ化したデプロイ用)
ローカルへのインストール
- リポジトリをクローンします:
git clone https://github.com/yourusername/paperless-mcp.git
cd paperless-mcp
- 依存関係をインストールします:
npm install
- 環境変数を設定します:
cp .env.example .env
# Edit .env with your configuration
- データベースのマイグレーションを実行します:
npm run migrate
- 開発サーバーを起動します:
npm run dev
Docker を使ったインストール
- リポジトリをクローンします:
git clone https://github.com/yourusername/paperless-mcp.git
cd paperless-mcp
- Docker コンテナをビルドして起動します:
docker-compose up -d
アプリケーションには http://localhost:3000 からアクセスできます。
使い方
基本操作
ドキュメントのアップロード
import { DocumentService } from 'paperless-mcp';
const documentService = new DocumentService();
const result = await documentService.uploadDocument({
file: fileBuffer,
metadata: {
title: 'Invoice #12345',
category: 'Finance',
tags: ['invoice', '2023', 'vendor-abc']
}
});
ドキュメントの取得
const document = await documentService.getDocument(documentId);
ドキュメントの検索
const searchResults = await documentService.searchDocuments({
query: 'invoice',
filters: {
category: 'Finance',
dateRange: {
from: '2023-01-01',
to: '2023-12-31'
}
},
page: 1,
limit: 20
});
CLI の使い方
Paperless MCP は、管理タスク用のコマンドラインインターフェースも提供します:
# Display help
npx paperless-mcp --help
# Initialize the system
npx paperless-mcp init
# Import documents from a directory
npx paperless-mcp import --source /path/to/documents
# Run system diagnostics
npx paperless-mcp diagnose
API ドキュメント
Paperless MCP は、他のシステムと連携するための RESTful API を公開しています。API は /api/v1 から利用でき、API キーまたは JWT トークンによる認証が必要です。
認証
POST /api/v1/auth/login
リクエストボディ:
{
"username": "admin",
"password": "your-password"
}
レスポンス:
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expiresAt": "2023-12-31T23:59:59Z"
}
ドキュメント API
ドキュメントの作成
POST /api/v1/documents
リクエストボディ:
{
"title": "Invoice #12345",
"content": "Base64 encoded file content...",
"metadata": {
"category": "Finance",
"tags": ["invoice", "2023"]
}
}
ドキュメントの取得
GET /api/v1/documents/:id
ドキュメントの検索
GET /api/v1/documents/search?q=invoice&category=Finance&from=2023-01-01&to=2023-12-31&page=1&limit=20
API の完全なリファレンスについては、API ドキュメントを参照してください。
設定
Paperless MCP は、環境変数、設定ファイル、または smithery.yaml ファイルを使って設定できます。
環境変数
PORT:サーバーがリッスンするポート(デフォルト:3000)DATABASE_URL:PostgreSQL 接続文字列STORAGE_TYPE:ストレージバックエンド('local'、's3'、'azure' など)STORAGE_PATH:ローカルストレージのパス(STORAGE_TYPE=local の場合)LOG_LEVEL:ログレベル('debug'、'info'、'warn'、'error')JWT_SECRET:JWT トークン生成用のシークレットOCR_ENGINE:使用する OCR エンジン('tesseract'、'azure' など)
設定ファイル
より高度な設定を行うには、プロジェクトのルートに config.js または config.json ファイルを作成します。例:
{
"server": {
"port": 3000,
"host": "0.0.0.0",
"cors": {
"enabled": true,
"origins": ["https://example.com"]
}
},
"database": {
"url": "postgresql://user:password@localhost:5432/paperless",
"pool": {
"min": 2,
"max": 10
}
},
"storage": {
"type": "s3",
"config": {
"bucket": "paperless-documents",
"region": "us-west-2"
}
}
}
コントリビューション
Paperless MCP へのコントリビューションを歓迎します!イシュー、機能リクエスト、プルリクエストをぜひお寄せください。
開発環境のセットアップ
- リポジトリをフォークします
- フォークしたリポジトリをクローンします:
git clone https://github.com/yourusername/paperless-mcp.git - 機能ブランチを作成します:
git checkout -b feature/my-feature - 変更を加えます
- テストを実行します:
npm test - 変更をコミットします:
git commit -m 'Add my feature' - ブランチにプッシュします:
git push origin feature/my-feature - プルリクエストを送信します
コーディング規約
- TypeScript Coding Guidelines に従います
- すべてのコードに適切な型を指定してください
- 新機能にはユニットテストが必要です
- 変更に合わせてドキュメントを更新してください
ドキュメント
- API ドキュメントは TypeDoc を使用して生成されます
- 機能を追加または変更した場合は、README.md を更新してください
- 新しい機能の例を追加してください
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細は LICENSE ファイルをご覧ください。
謝辞
- このプロジェクトの発展に貢献してくださったすべてのコントリビューターに感謝します
- このプロジェクトを可能にするツールやライブラリを提供してくださったオープンソースコミュニティに、特別な感謝を申し上げます
Paperless MCP チームが ❤️ を込めて制作
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。