Unstructured

公式

Unstructured Platform上で非構造化データ処理ワークフローをセットアップし、操作できます。

Unstructured MCPで何ができますか?

  • 利用可能なソースとデスティネーションを一覧表示するlist_sourceslist_destinations を使用して、Unstructuredアカウントに設定されているコネクタを確認します。
  • ソースおよびデスティネーションコネクタを管理するcreate_source_connectorupdate_destination_connector、および関連ツールを使用して、コネクタを作成、更新、または削除します。
  • インジェストワークフローを実行および監視するrun_workflow でワークフローをトリガーし、list_jobsget_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_sourcesUnstructured API から利用可能なソースを一覧表示します。
get_source_info特定のソースコネクタに関する詳細情報を取得します。
create_source_connectorソースコネクタを作成します。
update_source_connectorパラメータにより既存のソースコネクタを更新します。
delete_source_connectorソース ID によりソースコネクタを削除します。
list_destinationsUnstructured API から利用可能なデスティネーションを一覧表示します。
get_destination_info特定のデスティネーションコネクタに関する詳細情報を取得します。
create_destination_connectorパラメータによりデスティネーションコネクタを作成します。
update_destination_connectorデスティネーション ID により既存のデスティネーションコネクタを更新します。
delete_destination_connectorデスティネーション ID によりデスティネーションコネクタを削除します。
list_workflowsUnstructured API からワークフローを一覧表示します。
get_workflow_info特定のワークフローに関する詳細情報を取得します。
create_workflowソース、デスティネーション ID などを指定して新しいワークフローを作成します。
run_workflowワークフロー ID を指定して特定のワークフローを実行します。
update_workflowパラメータにより既存のワークフローを更新します。
delete_workflowID により特定のワークフローを削除します。
list_jobsUnstructured API から特定のワークフローのジョブを一覧表示します。
get_job_infoジョブ ID により特定のジョブに関する詳細情報を取得します。
cancel_jobID により特定のジョブを削除します。
list_workflows_with_finished_jobs完了したジョブを持つすべてのワークフローを、ソースとデスティネーションの詳細情報とともに一覧表示します。

以下は、UNS-MCP サーバーが現在サポートしているコネクタのリストです。Unstructured プラットフォームがサポートするソースコネクタの全リストは こちら を、デスティネーションリストは こちら をご覧ください。今後さらに追加予定です!

ソースデスティネーション
S3S3
AzureWeaviate
Google DrivePinecone
OneDriveAstraDB
SalesforceMongoDB
SharepointNeo4j
Databricks Volumes
Databricks Volumes Delta Table

コネクタを作成/更新/削除するツールを使用するには、その特定のコネクタの認証情報を .env ファイルで定義する必要があります。以下は、サポートするコネクタの credentials のリストです。

認証情報名説明
ANTHROPIC_API_KEYサーバーと連携するために minimal_client を実行するのに必要です。
AWS_KEY, AWS_SECRETuns-mcp サーバー経由で S3 コネクタを作成するのに必要です。方法は ドキュメントこちら を参照してください。
WEAVIATE_CLOUD_API_KEYWeaviate ベクター DB コネクタを作成するのに必要です。方法は ドキュメント を参照してください。
FIRECRAWL_API_KEYexternal/firecrawl.py で Firecrawl ツールを使用するのに必要です。Firecrawl でサインアップして API キーを取得してください。
ASTRA_DB_APPLICATION_TOKEN, ASTRA_DB_API_ENDPOINTuns-mcp サーバー経由で Astradb コネクタを作成するのに必要です。方法は ドキュメント を参照してください。
AZURE_CONNECTION_STRINGuns-mcp サーバー経由で Azure コネクタを作成するためのオプション 1 に必要です。方法は ドキュメント を参照してください。
AZURE_ACCOUNT_NAME+AZURE_ACCOUNT_KEYuns-mcp サーバー経由で Azure コネクタを作成するためのオプション 2 に必要です。方法は ドキュメント を参照してください。
AZURE_ACCOUNT_NAME+AZURE_SAS_TOKENuns-mcp サーバー経由で Azure コネクタを作成するためのオプション 3 に必要です。方法は ドキュメント を参照してください。
NEO4J_PASSWORDuns-mcp サーバー経由で Neo4j コネクタを作成するのに必要です。方法は ドキュメント を参照してください。
MONGO_DB_CONNECTION_STRINGuns-mcp サーバー経由で Mongodb コネクタを作成するのに必要です。方法は ドキュメント を参照してください。
GOOGLEDRIVE_SERVICE_ACCOUNT_KEY文字列値。元のサーバーアカウントキー(ドキュメント に従う)は json ファイルにあります。ターミナルで base64 < /path/to/google_service_account_key.json を実行して文字列値を取得してください。
DATABRICKS_CLIENT_ID,DATABRICKS_CLIENT_SECRETuns-mcp サーバー経由で Databricks ボリューム/デルタテーブルコネクタを作成するのに必要です。方法は ドキュメントこちら を参照してください。
ONEDRIVE_CLIENT_ID, ONEDRIVE_CLIENT_CRED,ONEDRIVE_TENANT_IDuns-mcp サーバー経由で One Drive コネクタを作成するのに必要です。方法は ドキュメント を参照してください。
PINECONE_API_KEYuns-mcp サーバー経由で Pinecone ベクター DB コネクタを作成するのに必要です。方法は ドキュメント を参照してください。
SALESFORCE_CONSUMER_KEY,SALESFORCE_PRIVATE_KEYuns-mcp サーバー経由で salesforce ソースコネクタを作成するのに必要です。方法は ドキュメント を参照してください。
SHAREPOINT_CLIENT_ID, SHAREPOINT_CLIENT_CRED,SHAREPOINT_TENANT_IDuns-mcp サーバー経由で One Drive コネクタを作成するのに必要です。方法は ドキュメント を参照してください。
LOG_LEVELminimal_client のログレベルを設定するために使用します。例:すべてを取得するには ERROR に設定します。
CONFIRM_TOOL_USEtrue に設定すると、minimal_client は各ツール呼び出しの前に実行を確認できます。
DEBUG_API_REQUESTStrue に設定すると、uns_mcp/server.py はデバッグを改善するためにリクエストパラメータを出力できます。

Firecrawl ソース

Firecrawl は、MCP で 2 つの主要な機能を提供する Web クローリング API です。

  1. HTML コンテンツ取得: invoke_firecrawl_crawlhtml を使用してクロールジョブを開始し、check_crawlhtml_status を使用してそれらを監視します。
  2. 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>"
         }
      }
   }
}

ソースコードの使用

  1. リポジトリをクローンします。

  2. 依存関係をインストールします:

    uv sync
    
  3. 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. 1つのターミナルでサーバーを起動します:

    uv run python uns_mcp/server.py --host 127.0.0.1 --port 8080
    # or
    make sse-server
    
  2. 別のターミナルでローカルクライアントを使用してサーバーをテストします:

    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 に置き換えます。