Needle MCP 서버
Needle
Needle MCP 서버는 RAG(Retrieval-Augmented Generation) 기능을 즉시 사용할 수 있는 형태로 제공하여 LLM(대규모 언어 모델)이 자체 문서에서 정보를 검색하고 활용할 수 있도록 해주는 도구입니다. 복잡한 설정이나 벡터 데이터베이스 구성 없이도 바로 사용 가능한 RAG 솔루션을 제공합니다.
특징
- 다양한 문서 형식(PDF, MS Office, 텍스트 등) 지원
- 자동 문서 처리 및 임베딩 생성
- 고급 시맨틱 검색 및 하이브리드 검색
- 메타데이터 기반 필터링
- 응답 품질을 높이기 위한 컨텍스트 처리 최적화
- 복잡한 구성 없이 바로 사용 가능한 RAG 솔루션
API
리소스
needle://datasets- 사용 가능한 데이터셋 목록needle://datasets/{dataset_id}- 특정 데이터셋 정보needle://datasets/{dataset_id}/documents- 데이터셋의 문서 목록needle://datasets/{dataset_id}/documents/{document_id}- 특정 문서의 상세 정보needle://embeddings/models- 사용 가능한 임베딩 모델 목록
도구
데이터셋 관리 도구
create_dataset
새 데이터셋을 생성합니다.
- 입력:
- name: 데이터셋 이름
- description: 데이터셋 설명 (선택 사항)
- embedding_model: 사용할 임베딩 모델 (선택 사항, 기본값: "default")
delete_dataset
데이터셋을 삭제합니다.
- 입력:
- dataset_id: 삭제할 데이터셋 ID
list_documents
데이터셋의 문서를 나열합니다.
- 입력:
- dataset_id: 데이터셋 ID
- filter: 필터링 조건 (선택 사항)
- limit: 반환할 최대 문서 수 (기본값: 100)
- offset: 건너뛸 문서 수 (선택 사항)
문서 관리 도구
upload_document
문서를 업로드하고 처리합니다.
- 입력:
- dataset_id: 대상 데이터셋 ID
- file: 업로드할 파일 데이터 또는 파일 경로
- metadata: 문서 메타데이터 (선택 사항)
- chunk_size: 청크 크기 (선택 사항, 기본값: 1000)
- chunk_overlap: 청크 오버랩 (선택 사항, 기본값: 200)
delete_document
문서를 삭제합니다.
- 입력:
- dataset_id: 데이터셋 ID
- document_id: 삭제할 문서 ID
update_document_metadata
문서 메타데이터를 업데이트합니다.
- 입력:
- dataset_id: 데이터셋 ID
- document_id: 문서 ID
- metadata: 업데이트할 메타데이터
검색 및 쿼리 도구
search
데이터셋에서 텍스트 검색을 수행합니다.
- 입력:
- dataset_id: 검색할 데이터셋 ID
- query: 검색 쿼리 텍스트
- top_k: 반환할 최대 결과 수 (기본값: 5)
- filter: 메타데이터 필터링 조건 (선택 사항)
- search_type: 검색 유형 (예: "semantic", "hybrid", "keyword", 기본값: "hybrid")
- include_metadata: 메타데이터 포함 여부 (기본값: true)
qa
문서 기반 질문-답변을 수행합니다.
- 입력:
- dataset_id: 검색할 데이터셋 ID
- question: 질문 텍스트
- top_k: 검색할 최대 청크 수 (기본값: 5)
- filter: 메타데이터 필터링 조건 (선택 사항)
- include_sources: 소스 포함 여부 (기본값: true)
- model: 사용할 LLM 모델 (선택 사항)
summarize
문서 또는 검색 결과를 요약합니다.
- 입력:
- dataset_id: 데이터셋 ID
- document_id: 요약할 문서 ID (선택 사항)
- query: 검색 쿼리 (document_id가 제공되지 않은 경우)
- length: 요약 길이 (예: "short", "medium", "long", 기본값: "medium")
- format: 요약 형식 (예: "bullet", "paragraph", 기본값: "paragraph")
사용 방법
설치
# NPM 패키지 설치
npm install needle-ai-mcp-server
# 또는 npx로 직접 실행
npx needle-ai-mcp-server
구성
Claude Desktop에서 Needle MCP 서버를 사용하려면 다음과 같이 구성 파일을 설정합니다:
{
"mcpServers": {
"needle": {
"command": "npx",
"args": ["needle-ai-mcp-server"],
"env": {
"NEEDLE_API_KEY": "<Your Needle API Key>",
"OPENAI_API_KEY": "<Your OpenAI API Key>" // 필요한 경우
}
}
}
}
사용 예시
다음은 Needle MCP 서버를 사용하여 문서를 업로드하고 질문에 답변하는 예시입니다:
-
문서 업로드:
클라이언트: "내 연구 논문을 'research' 데이터셋에 업로드해줘." -
Claude는 Needle MCP 서버의 도구를 사용하여 업로드 작업 수행:
업로드 결과: - 데이터셋 'research'에 문서 'research_paper.pdf' 업로드됨 - 문서 ID: needle_doc_123456 - 총 28개 청크로 처리됨 - 임베딩 생성 완료 -
질문 답변:
클라이언트: "연구 논문에서 사용된 방법론에 대해 요약해줘." -
Claude는 Needle MCP 서버의
qa도구를 사용하여 응답 생성:응답: 연구 논문에서 사용된 방법론은 다단계 접근법을 사용합니다: 1. 데이터 수집: 3개 도시에서 500명의 참가자를 대상으로 구조화된 설문조사 실시 2. 정량적 분석: SPSS를 사용한 통계 분석 및 회귀 모델링 3. 정성적 분석: 심층 인터뷰 50건에 대한 테마 분석 4. 삼각검증: 정량적 결과와 정성적 통찰을 교차 검증하여 발견의 강건성 확인 이 혼합 방법론은 연구 질문에 대한 포괄적인 이해를 제공하고, 단일 방법론이 가질 수 있는 한계를 극복하는 데 도움을 주었습니다. 출처: 연구 논문, 페이지 12-15, 방법론 섹션
연결된 구성 요소
- LlamaIndex - 벡터 인덱스 및 데이터 로딩 MCP 서버
- Pinecone - 벡터 검색 및 임베딩을 위한 MCP 서버
- Weaviate - 벡터 검색 및 구조화된 데이터를 위한 MCP 서버
- Chroma - 벡터 데이터베이스 기능을 제공하는 오픈소스 MCP 서버