MCP 문서 관리

메뉴

LlamaIndex MCP 서버

LlamaIndex

LlamaIndex MCP 서버는 LlamaIndex 프레임워크를 기반으로 구축된 MCP 서버로, LLM(대규모 언어 모델)이 데이터 색인, 쿼리 및 검색 기능에 접근할 수 있도록 해주는 도구입니다. 이 서버는 RAG(Retrieval-Augmented Generation) 애플리케이션 개발을 위한 강력한 기능을 제공합니다.

특징

  • 다양한 데이터 소스(PDF, 텍스트, CSV, JSON 등)에서 데이터 로딩
  • 효율적인 인덱싱 및 청크 처리
  • 다양한 벡터 저장소 지원(Pinecone, Weaviate, Chroma 등)
  • 복잡한 쿼리 처리 및 응답 합성
  • 문서 검색 및 질문-답변(Q&A) 시스템 구축 지원

API

리소스

  • llamaindex://indexes - 사용 가능한 인덱스 목록
  • llamaindex://indexes/{index_name} - 특정 인덱스의 정보
  • llamaindex://documents - 로드된 문서 목록
  • llamaindex://documents/{document_id} - 특정 문서의 상세 정보

도구

인덱스 관리 도구

create_index

새 인덱스를 생성합니다. - 입력: - name: 인덱스 이름 - index_type: 인덱스 유형 (예: "vector_store", "list", "tree", "keyword_table") - vector_store_type: 벡터 저장소 유형 (선택 사항, 예: "chroma", "pinecone", "weaviate") - vector_store_params: 벡터 저장소 매개변수 (선택 사항)

delete_index

인덱스를 삭제합니다. - 입력: - name: 삭제할 인덱스 이름

index_documents

문서를 인덱싱합니다. - 입력: - index_name: 대상 인덱스 이름 - documents: 인덱싱할 문서 배열 또는 문서 경로 - metadata: 연관된 메타데이터 (선택 사항) - chunk_size: 청크 크기 (선택 사항, 기본값: 1024) - chunk_overlap: 청크 오버랩 (선택 사항, 기본값: 20)

쿼리 도구

query_index

인덱스를 쿼리합니다. - 입력: - index_name: 쿼리할 인덱스 이름 - query: 쿼리 텍스트 - mode: 쿼리 모드 (예: "default", "summarize", "tree") - similarity_top_k: 검색할 유사 문서 수 (선택 사항, 기본값: 2) - response_mode: 응답 모드 (예: "refine", "compact", "tree_summarize")

chat_query

대화형 쿼리를 처리합니다. - 입력: - index_name: 쿼리할 인덱스 이름 - message: 사용자 메시지 - chat_history: 대화 이력 (선택 사항) - similarity_top_k: 검색할 유사 문서 수 (선택 사항, 기본값: 2)

문서 관리 도구

load_documents

문서를 로드합니다. - 입력: - source: 문서 소스 (파일 경로, URL 등) - reader_type: 문서 리더 유형 (예: "pdf", "csv", "json", "text") - metadata: 연관된 메타데이터 (선택 사항)

delete_document

문서를 삭제합니다. - 입력: - document_id: 삭제할 문서 ID

사용 방법

설치

# NPM 패키지 설치
npm install llamaindex-mcp-server

# 또는 pip로 설치
pip install llamaindex-mcp-server

# 또는 Python 모듈로 직접 실행
python -m llamaindex_mcp_server

구성

Claude Desktop에서 LlamaIndex MCP 서버를 사용하려면 다음과 같이 구성 파일을 설정합니다:

{
  "mcpServers": {
    "llamaindex": {
      "command": "python",
      "args": ["-m", "llamaindex_mcp_server"],
      "env": {
        "OPENAI_API_KEY": "<Your OpenAI API Key>",
        "INDEX_STORE_DIR": "/path/to/index/storage"
      }
    }
  }
}

사용 예시

다음은 LlamaIndex MCP 서버를 사용하여 문서를 인덱싱하고 질문에 답변하는 예시입니다:

  1. 문서 인덱싱:

    클라이언트: "내 PDF 파일들을 'research' 인덱스에 인덱싱해줘."

  2. Claude는 LlamaIndex MCP 서버의 도구를 사용하여 인덱싱 작업 수행:

    작업 결과:
    - 인덱스 'research' 생성됨
    - 5개 PDF 파일 로드됨
    - 총 126개 텍스트 청크로 분할됨
    - 인덱싱 완료

  3. 질문 답변:

    클라이언트: "연구 문서에서 기후 변화의 경제적 영향에 대해 요약해줘."

  4. Claude는 LlamaIndex MCP 서버의 query_index 도구를 사용하여 응답 생성:

    응답:
    기후 변화의 경제적 영향은 광범위하고 심각합니다. 연구 문서에 따르면:
    
    1. 전 세계 GDP가 2050년까지 최대 18% 감소할 수 있음
    2. 농업 생산성 저하로 인한 식량 가격 상승
    3. 연간 자연재해 관련 손실이 2조 달러 이상으로 증가
    4. 기후 관련 인프라 투자 필요성이 급증
    ...

연결된 구성 요소

  • Pinecone - 벡터 검색 및 임베딩을 위한 MCP 서버
  • Weaviate - 벡터 검색 및 구조화된 데이터를 위한 MCP 서버
  • Chroma - 벡터 데이터베이스 기능을 제공하는 오픈소스 MCP 서버
  • Needle - 즉시 사용 가능한 RAG 솔루션 MCP 서버