Unstructured MCP Server

公式

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

ドキュメント

Unstructured API MCP サーバー

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