Unstructured
公式Unstructured Platform上で非構造化データ処理ワークフローをセットアップし、操作できます。
Unstructured MCPで何ができますか?
- 利用可能なソースとデスティネーションを一覧表示する —
list_sourcesとlist_destinationsを使用して、Unstructuredアカウントに設定されているコネクタを確認します。 - ソースおよびデスティネーションコネクタを管理する —
create_source_connector、update_destination_connector、および関連ツールを使用して、コネクタを作成、更新、または削除します。 - インジェストワークフローを実行および監視する —
run_workflowでワークフローをトリガーし、list_jobsとget_job_infoを使用してそのジョブを追跡します。 - 完了したジョブがあるワークフローを検索する —
list_workflows_with_finished_jobsを呼び出して、処理が完了したワークフローを特定します。 - ウェブサイトをパイプラインにクロールする —
invoke_firecrawl_crawlhtmlでFirecrawlクロールを開始し、check_crawlhtml_statusでステータスを確認します。
ドキュメント
Unstructured API MCP サーバー
[!NOTE] このサーバーは Unstructured API と連携して、ソース、デスティネーション、ワークフローを管理します。現在は積極的にメンテナンスされておらず、参考としてここに置かれています。
ファイルを解析して構造化された出力(Markdown、JSON、HTML、またはプレーンテキスト)に変換したい場合は、代わりに Unstructured Transform MCP サーバー を使用してください。
Unstructured Transform は、ホストされた MCP サーバーとして、プロダクショングレードのドキュメント処理をエージェントに提供します。現在のセッション内でファイルを解析、エンリッチ、チャンク化、埋め込みすることで、60種類以上のファイルタイプを、アプリケーション、ベクターデータベース、およびあらゆる後続プロセスで利用可能な構造化データに変換する機能をエージェントに付与します。
こちらからサインアップ して、すぐに使い始めることができます。
Unstructured API と連携するための MCP サーバー実装です。このサーバーは、ソースとワークフローを一覧表示するためのツールを提供します。
利用可能なツール
| ツール | 説明 |
|---|---|
list_sources | Unstructured API から利用可能なソースを一覧表示します。 |
get_source_info | 特定のソースコネクタに関する詳細情報を取得します。 |
create_source_connector | ソースコネクタを作成します。 |
update_source_connector | パラメータにより既存のソースコネクタを更新します。 |
delete_source_connector | ソース ID によりソースコネクタを削除します。 |
list_destinations | Unstructured API から利用可能なデスティネーションを一覧表示します。 |
get_destination_info | 特定のデスティネーションコネクタに関する詳細情報を取得します。 |
create_destination_connector | パラメータによりデスティネーションコネクタを作成します。 |
update_destination_connector | デスティネーション ID により既存のデスティネーションコネクタを更新します。 |
delete_destination_connector | デスティネーション ID によりデスティネーションコネクタを削除します。 |
list_workflows | Unstructured API からワークフローを一覧表示します。 |
get_workflow_info | 特定のワークフローに関する詳細情報を取得します。 |
create_workflow | ソース、デスティネーション ID などを指定して新しいワークフローを作成します。 |
run_workflow | ワークフロー ID を指定して特定のワークフローを実行します。 |
update_workflow | パラメータにより既存のワークフローを更新します。 |
delete_workflow | ID により特定のワークフローを削除します。 |
list_jobs | Unstructured API から特定のワークフローのジョブを一覧表示します。 |
get_job_info | ジョブ ID により特定のジョブに関する詳細情報を取得します。 |
cancel_job | ID により特定のジョブを削除します。 |
list_workflows_with_finished_jobs | 完了したジョブを持つすべてのワークフローを、ソースとデスティネーションの詳細情報とともに一覧表示します。 |
以下は、UNS-MCP サーバーが現在サポートしているコネクタのリストです。Unstructured プラットフォームがサポートするソースコネクタの全リストは こちら を、デスティネーションリストは こちら をご覧ください。今後さらに追加予定です!
| ソース | デスティネーション |
|---|---|
| S3 | S3 |
| Azure | Weaviate |
| Google Drive | Pinecone |
| OneDrive | AstraDB |
| Salesforce | MongoDB |
| Sharepoint | Neo4j |
| Databricks Volumes | |
| Databricks Volumes Delta Table |
コネクタを作成/更新/削除するツールを使用するには、その特定のコネクタの認証情報を .env ファイルで定義する必要があります。以下は、サポートするコネクタの credentials のリストです。
| 認証情報名 | 説明 |
|---|---|
ANTHROPIC_API_KEY | サーバーと連携するために minimal_client を実行するのに必要です。 |
AWS_KEY, AWS_SECRET | uns-mcp サーバー経由で S3 コネクタを作成するのに必要です。方法は ドキュメント と こちら を参照してください。 |
WEAVIATE_CLOUD_API_KEY | Weaviate ベクター DB コネクタを作成するのに必要です。方法は ドキュメント を参照してください。 |
FIRECRAWL_API_KEY | external/firecrawl.py で Firecrawl ツールを使用するのに必要です。Firecrawl でサインアップして API キーを取得してください。 |
ASTRA_DB_APPLICATION_TOKEN, ASTRA_DB_API_ENDPOINT | uns-mcp サーバー経由で Astradb コネクタを作成するのに必要です。方法は ドキュメント を参照してください。 |
AZURE_CONNECTION_STRING | uns-mcp サーバー経由で Azure コネクタを作成するためのオプション 1 に必要です。方法は ドキュメント を参照してください。 |
AZURE_ACCOUNT_NAME+AZURE_ACCOUNT_KEY | uns-mcp サーバー経由で Azure コネクタを作成するためのオプション 2 に必要です。方法は ドキュメント を参照してください。 |
AZURE_ACCOUNT_NAME+AZURE_SAS_TOKEN | uns-mcp サーバー経由で Azure コネクタを作成するためのオプション 3 に必要です。方法は ドキュメント を参照してください。 |
NEO4J_PASSWORD | uns-mcp サーバー経由で Neo4j コネクタを作成するのに必要です。方法は ドキュメント を参照してください。 |
MONGO_DB_CONNECTION_STRING | uns-mcp サーバー経由で Mongodb コネクタを作成するのに必要です。方法は ドキュメント を参照してください。 |
GOOGLEDRIVE_SERVICE_ACCOUNT_KEY | 文字列値。元のサーバーアカウントキー(ドキュメント に従う)は json ファイルにあります。ターミナルで base64 < /path/to/google_service_account_key.json を実行して文字列値を取得してください。 |
DATABRICKS_CLIENT_ID,DATABRICKS_CLIENT_SECRET | uns-mcp サーバー経由で Databricks ボリューム/デルタテーブルコネクタを作成するのに必要です。方法は ドキュメント と こちら を参照してください。 |
ONEDRIVE_CLIENT_ID, ONEDRIVE_CLIENT_CRED,ONEDRIVE_TENANT_ID | uns-mcp サーバー経由で One Drive コネクタを作成するのに必要です。方法は ドキュメント を参照してください。 |
PINECONE_API_KEY | uns-mcp サーバー経由で Pinecone ベクター DB コネクタを作成するのに必要です。方法は ドキュメント を参照してください。 |
SALESFORCE_CONSUMER_KEY,SALESFORCE_PRIVATE_KEY | uns-mcp サーバー経由で salesforce ソースコネクタを作成するのに必要です。方法は ドキュメント を参照してください。 |
SHAREPOINT_CLIENT_ID, SHAREPOINT_CLIENT_CRED,SHAREPOINT_TENANT_ID | uns-mcp サーバー経由で One Drive コネクタを作成するのに必要です。方法は ドキュメント を参照してください。 |
LOG_LEVEL | minimal_client のログレベルを設定するために使用します。例:すべてを取得するには ERROR に設定します。 |
CONFIRM_TOOL_USE | true に設定すると、minimal_client は各ツール呼び出しの前に実行を確認できます。 |
DEBUG_API_REQUESTS | true に設定すると、uns_mcp/server.py はデバッグを改善するためにリクエストパラメータを出力できます。 |
Firecrawl ソース
Firecrawl は、MCP で 2 つの主要な機能を提供する Web クローリング API です。
- HTML コンテンツ取得:
invoke_firecrawl_crawlhtmlを使用してクロールジョブを開始し、check_crawlhtml_statusを使用してそれらを監視します。 - LLM 最適化テキスト生成:
invoke_firecrawl_llmtxtを使用してテキストを生成し、check_llmtxt_statusを使用して結果を取得します。
Firecrawl の仕組み:
Webクローリングプロセス:
- 指定されたURLから開始し、リンクを特定するために分析します
- サイトマップが利用可能な場合はそれを使用し、そうでない場合はWebサイト上で見つかったリンクをたどります
- 各リンクを再帰的にたどり、すべてのサブページを検出します
- アクセスしたすべてのページからコンテンツを収集し、JavaScriptレンダリングとレート制限に対処します
- 必要に応じて、ジョブは
cancel_crawlhtml_jobでキャンセルできます - すべての情報を生のHTMLに抽出する必要がある場合にこれを使用してください。Unstructuredのワークフローはそれを非常にきれいに整理します :smile:
LLMテキスト生成:
- クローリング後、クロールされたページからクリーンで意味のあるテキストコンテンツを抽出します
- 大規模言語モデル用に特別にフォーマットされた最適化されたテキスト形式を生成します
- 結果は指定されたS3の場所に自動的にアップロードされます
- 注意: LLMテキスト生成ジョブは、開始後のキャンセルはできません。
cancel_llmtxt_job関数は一貫性のために提供されていますが、現在Firecrawl APIではサポートされていません。
注意: これらの関数を使用するには、FIRECRAWL_API_KEY 環境変数を設定する必要があります。
インストールと設定
このガイドでは、Python 3.12と uv ツールを使用してUNS_MCPサーバーをセットアップおよび設定するためのステップバイステップの手順を説明します。
前提条件
- Python 3.12以上
- 環境管理用の
uv - UnstructuredからのAPIキー。こちらからサインアップしてAPIキーを取得できます。
uv の使用(推奨)
uvx を使用する場合、実行を処理するため追加のインストールは不要です。ただし、パッケージを直接インストールする場合は:
uv pip install uns_mcp
Claude Desktopの設定
Claude Desktopとの統合には、claude_desktop_config.json に次の内容を追加します:
注意: ファイルは ~/Library/Application Support/Claude/ ディレクトリにあります。
uvx コマンドの使用:
{
"mcpServers": {
"UNS_MCP": {
"command": "uvx",
"args": ["uns_mcp"],
"env": {
"UNSTRUCTURED_API_KEY": "<your-key>"
}
}
}
}
または、Pythonパッケージの使用:
{
"mcpServers": {
"UNS_MCP": {
"command": "python",
"args": ["-m", "uns_mcp"],
"env": {
"UNSTRUCTURED_API_KEY": "<your-key>"
}
}
}
}
ソースコードの使用
-
リポジトリをクローンします。
-
依存関係をインストールします:
uv sync -
Unstructured APIキーを環境変数として設定します。ルートディレクトリに次の内容で.envファイルを作成します:
UNSTRUCTURED_API_KEY="YOUR_KEY"設定可能な環境変数については
.env.templateを参照してください。
これで、次のいずれかの方法でサーバーを実行できます:
編集可能なパッケージインストールの使用
編集可能なパッケージとしてインストールします:uvx pip install -e .
Claude Desktop設定を更新します:
{
"mcpServers": {
"UNS_MCP": {
"command": "uvx",
"args": ["uns_mcp"]
}
}
}
注意: パッケージをインストールした環境のuvx実行可能ファイルを指すようにしてください
SSEサーバープロトコルの使用
注意: Claude Desktopではサポートされていません。
SSEプロトコルの場合、クライアントとサーバーを分離することでより簡単にデバッグできます:
-
1つのターミナルでサーバーを起動します:
uv run python uns_mcp/server.py --host 127.0.0.1 --port 8080 # or make sse-server -
別のターミナルでローカルクライアントを使用してサーバーをテストします:
uv run python minimal_client/client.py "http://127.0.0.1:8080/sse" # or make sse-client
注意: サービスを停止するには、最初にクライアントで Ctrl+C を使用し、次にサーバーで使用します。
Stdioサーバープロトコルの使用
stdioを使用するようにClaude Desktopを設定します:
{
"mcpServers": {
"UNS_MCP": {
"command": "ABSOLUTE/PATH/TO/.local/bin/uv",
"args": [
"--directory",
"ABSOLUTE/PATH/TO/YOUR-UNS-MCP-REPO/uns_mcp",
"run",
"server.py"
]
}
}
}
または、ローカルクライアントを実行します:
uv run python minimal_client/client.py uns_mcp/server.py
追加のローカルクライアント設定
環境変数を使用して最小限のクライアントを設定します:
LOG_LEVEL="ERROR": LLMからのデバッグ出力を抑制し、ユーザーに明確なメッセージを表示するように設定します。CONFIRM_TOOL_USE='false': 実行前のツール使用確認を無効にします。開発中は注意して使用してください。LLMが高コストなワークフローを実行したり、データを削除したりする可能性があります。
デバッグツール
Anthropicは、MCPサーバーをデバッグ/テストするための MCP Inspector ツールを提供しています。次のコマンドを実行してデバッグUIを起動します。そこから、左ペインで環境変数(ローカル環境を指す)を追加できます。個人用APIキーを環境変数としてそこに含めてください。tools に移動すると、MCPサーバーに追加した機能をテストできます。
mcp dev uns_mcp/server.py
リクエスト呼び出しパラメータを UnstructuredClient にログ記録する必要がある場合は、環境変数 DEBUG_API_REQUESTS=false を設定します。
ログは unstructured-client-{date}.log 形式のファイルに保存され、UnstructuredClient 関数へのリクエスト呼び出しパラメータをデバッグするために調べることができます。
最小限のクライアントにターミナルアクセスを追加する
@wonderwhy-er/desktop-commander を使用して、最小限のクライアントにターミナルアクセスを追加します。これはMCPファイルシステムサーバー上に構築されています。クライアント(およびLLM)がプライベートファイルにアクセスできるようになるため、注意してください。
次のコマンドを実行してパッケージをインストールします:
npx @wonderwhy-er/desktop-commander setup
次に、追加パラメータを指定してクライアントを起動します:
uv run python minimal_client/client.py "http://127.0.0.1:8080/sse" "@wonderwhy-er/desktop-commander@^0.2.11"
# or
make sse-client-terminal
ツールのサブセットの使用
クライアントがツールのサブセットのみの使用をサポートしている場合、注意すべき点のリストは次のとおりです:
update_workflowツールは、カスタムノードの作成と設定方法に関する詳細な説明が含まれているため、create_workflowツールと一緒にコンテキストにロードする必要があります。
既知の問題
update_workflow- 更新対象のワークフローの設定を、ユーザーが提供するか、get_workflow_infoツールを呼び出してコンテキストに含める必要があります。このツールはpatchアプライヤーとして機能せず、ワークフロー設定を完全に置き換えるためです。
CHANGELOG.md
新しく開発された機能/修正/拡張はCHANGELOG.mdに追加されます。安定版にバンプする前は、0.x.x-devプレリリース形式が推奨されます。
トラブルシューティング
Error: spawn <command> ENOENTで問題が発生した場合、<command>がインストールされていないか、PATHに表示されていないことを意味します:- インストールしてPATHに追加してください。
- または、設定の
commandフィールドでコマンドへの絶対パスを指定してください。たとえば、pythonを/opt/miniconda3/bin/pythonに置き換えます。