Unstructured

공식

Unstructured Platform에서 비정형 데이터 처리 워크플로우를 설정하고 상호작용하세요.

Unstructured MCP(으)로 무엇을 할 수 있나요?

  • 사용 가능한 소스 및 대상 목록 보기list_sourceslist_destinations를 사용하여 Unstructured 계정에 구성된 커넥터를 확인하세요.
  • 소스 및 대상 커넥터 관리create_source_connector, update_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와 상호 작용하여 소스, 대상 및 워크플로우를 관리합니다. 현재 적극적으로 유지 관리되지 않으며 참조용으로 여기에 보관됩니다.

파일을 구문 분석하고 구조화된 출력(마크다운, 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_USEminimal_client이(가) 각 도구 호출 전에 실행을 확인할 수 있도록 true로 설정합니다.
DEBUG_API_REQUESTSuns_mcp/server.py이(가) 더 나은 디버깅을 위해 요청 매개변수를 출력할 수 있도록 true로 설정합니다.

Firecrawl 소스

Firecrawl은 MCP에서 두 가지 주요 기능을 제공하는 웹 크롤링 API입니다:

  1. HTML 콘텐츠 검색: invoke_firecrawl_crawlhtml을(를) 사용하여 크롤 작업을 시작하고 check_crawlhtml_status을(를) 사용하여 모니터링합니다.
  2. LLM 최적화 텍스트 생성: invoke_firecrawl_llmtxt을(를) 사용하여 텍스트를 생성하고 check_llmtxt_status을(를) 사용하여 결과를 검색합니다.

Firecrawl 작동 방식:

웹 크롤링 프로세스:

  • 지정된 URL에서 시작하여 링크를 식별하기 위해 분석합니다
  • 사이트맵이 있으면 사용하고, 없으면 웹사이트에서 찾은 링크를 따라갑니다
  • 모든 하위 페이지를 발견하기 위해 각 링크를 재귀적으로 탐색합니다
  • 방문한 모든 페이지에서 콘텐츠를 수집하며, 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. 한 터미널에서 서버를 시작합니다:

    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 - 이 도구는 patch 적용기처럼 작동하지 않고 워크플로우 구성을 완전히 대체하므로, 업데이트 중인 워크플로우의 구성을 사용자가 제공하거나 get_workflow_info 도구를 호출하여 컨텍스트에 포함해야 합니다.

CHANGELOG.md

새로 개발된 기능/수정 사항/개선 사항은 CHANGELOG.md에 추가됩니다. 안정 버전으로 올리기 전에 0.x.x-dev 사전 릴리스 형식이 선호됩니다.

문제 해결

  • Error: spawn <command> ENOENT에 문제가 발생하면 <command>이 설치되지 않았거나 PATH에 표시되지 않는 것을 의미합니다:
    • 설치하고 PATH에 추가했는지 확인하세요.
    • 또는 구성의 command 필드에 명령의 절대 경로를 제공하세요. 예를 들어 python/opt/miniconda3/bin/python로 바꾸세요.