Unstructured MCP Server
公式Unstructured Platform上で非構造化データ処理ワークフローをセットアップし、操作できます。
ドキュメント
Unstructured API MCP サーバー
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に置き換えます。