문서 검색 MCP 서버(DOCRET)
이 프로젝트는 AI 어시스턴트가 LangChain, LlamaIndex, OpenAI를 포함한 다양한 Python 라이브러리의 최신 문서에 접근할 수 있도록 하는 모델 컨텍스트 프로토콜(MCP) 서버를 구현합니다. 이 서버를 활용하여 AI 어시스턴트는 공식 문서 소스에서 관련 정보를 동적으로 가져와 제공할 수 있습니다. 목표는 AI 애플리케이션이 항상 최신 공식 문서에 접근할 수 있도록 하는 것입니다.
MCP 서버란 무엇인가요?
모델 컨텍스트 프로토콜(MCP)은 개발자가 데이터 소스와 AI 기반 도구 간에 안전한 양방향 연결을 구축할 수 있도록 지원하는 개방형 표준입니다. 아키텍처는 간단합니다. 개발자는 MCP 서버를 통해 데이터를 노출하거나, 이러한 서버에 연결되는 AI 애플리케이션(MCP 클라이언트)을 구축할 수 있습니다.
특징
- 동적 문서 검색 : 지정된 Python 라이브러리에 대한 최신 문서 콘텐츠를 가져옵니다.
- 비동기 웹 검색 : SERPER API를 활용하여 대상 문서 사이트 내에서 효율적인 웹 검색을 수행합니다.
- HTML 파싱 : BeautifulSoup를 사용하여 HTML 콘텐츠에서 읽을 수 있는 텍스트를 추출합니다.
- 확장 가능한 디자인 : 구성을 업데이트하여 추가 라이브러리에 대한 지원을 쉽게 추가할 수 있습니다.
필수 조건
- Python 3.8 이상
- Python 패키지 관리를 위한 UV(혹은 일반 사용자라면 pip)
- Serper API 키(Google 검색 또는 "SERP"용)
- Claude Desktop 또는 Claude Code(테스트용)
설치
1. 저장소 복제
지엑스피1
2. 가상 환경 생성 및 활성화
- macOS/Linux의 경우 :Copy
- 윈도우에서 :Copy
3. 종속성 설치
가상 환경이 활성화되면 필요한 종속성을 설치합니다.
또는 uv를 사용하는 경우:
환경 변수 설정
애플리케이션을 실행하기 전에 필요한 환경 변수를 구성하세요. 이 프로젝트는 문서 검색을 위해 SERPER API를 사용하며 API 키가 필요합니다.
- 프로젝트의 루트 디렉토리에
.env
파일을 만듭니다. - 다음 환경 변수를 추가합니다.Copy
your_serper_api_key_here
실제 API 키로 바꾸세요.
MCP 서버 실행
종속성이 설치되고 환경 변수가 설정되면 MCP 서버를 시작할 수 있습니다.
이렇게 하면 서버가 시작되어 요청을 처리할 준비가 됩니다.
용법
MCP 서버는 지원되는 라이브러리에서 문서 콘텐츠를 가져오는 API를 제공합니다. SERPER API에 관련 문서 링크를 쿼리하고 페이지 콘텐츠를 스크래핑하는 방식으로 작동합니다.
문서 검색
도서관에서 특정 주제에 대한 문서를 검색하려면 get_docs
함수를 사용하세요. 이 함수는 두 개의 매개변수를 사용합니다.
query
: 검색할 주제(예: "Chroma DB")library
: 라이브러리의 이름(예: "langchain")
사용 예:
이는 관련 OpenAI 문서 페이지에서 추출된 텍스트를 반환합니다.
AI 어시스턴트와 통합
이 MCP 서버를 Claude와 같은 AI 어시스턴트나 사용자 지정 AI 모델과 통합할 수 있습니다. 어시스턴트가 서버와 상호 작용하도록 구성하려면 다음 구성을 사용하세요.
main.py
에 대한 올바른 경로가 지정되었는지 확인하세요.
MCP 서버 확장
현재 서버는 다음 라이브러리를 지원합니다.
- 랭체인
- 라마인덱스
- 오픈AI
추가 라이브러리에 대한 지원을 추가하려면 main.py
의 docs_urls
사전을 라이브러리 이름과 해당 문서 URL로 업데이트하세요.
📌 로드맵
이것은 분명 나에게 정말 흥미로운 일이고 나는 이것에 대해 더 많은 것을 구축하고 구현할 수 있는 최신 뉴스와 아이디어에 대해 계속 업데이트되기를 기대하고 있습니다.
내 생각은 이렇습니다.
더 많은 라이브러리(예: Hugging Face, PyTorch)에 대한 지원 추가
- 추가 라이브러리로
docs_urls
사전을 확장합니다. - get_docs 함수를 수정하여 다양한 형식의 문서 페이지를 처리합니다.
- 정규식 기반이나 AI 기반 구문 분석을 사용하여 의미 있는 콘텐츠를 더 효과적으로 추출합니다.
- 동적으로 새로운 라이브러리를 추가할 수 있는 API 엔드포인트를 제공합니다.
- 추가 라이브러리로
중복된 API 호출을 줄이기 위해 캐싱을 구현합니다.
- Redis나
functools.lru_cache
와 같은 메모리 내 캐싱 메커니즘을 사용하세요. - 시간 기반 캐시 무효화를 구현합니다.
- 라이브러리별, 검색어별로 캐시 결과를 저장합니다.
- Redis나
AI 기반 요약으로 웹 스크래핑 최적화
- 스크래핑된 문서를 요약하려면
GPT-4
,BART
또는T5
사용하세요. Claude 3 Haiku
,Gemini 1.5 Pro
,GPT-4-mini
,Open-mistral-nemo
,Hugging Face Models
등 다양한 모델을 사용할 수 있습니다. 이 모델들은 모두 논란의 여지가 있습니다.- 사용자가 원시 문서 텍스트와 요약된 버전 중에서 선택할 수 있도록 합니다.
- 스크래핑된 문서를 요약하려면
외부 통합을 위한 REST API 소개
- FastAPI를 사용하여 API 엔드포인트를 노출하세요. (그냥)
- API 상호작용을 위한 간단한 프런트엔드 대시보드를 만들어 보세요. (왜 안 되겠어요?)
더 나은 안정성을 위해 단위 테스트를 추가하세요.
- API 및 스크래핑 신뢰성 테스트에는 pytest와 unittest를 사용하세요. (이게 핵폭탄으로 변하는 건 절대 원치 않는 일이죠.)
- 모든 푸시에 대해 자동으로 테스트를 실행하기 위해 CI/CD 워크플로를 구현합니다. (물론 핵심은)
개발 중에 유용할 수 있는 더 많은 MCP 도구
- 데이터베이스 통합
- Google 문서/시트/드라이브 통합
- 파일 시스템 작업
- Git 통합
- 아이디어를 제품으로 전환하기 위한 커뮤니케이션 플랫폼 통합
- Docker 및 Kubernetes 관리
참고문헌
MCP 서버와 구현에 대한 자세한 내용은 다음 가이드를 참조하세요.
특허
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 라이선스 파일을 참조하세요.
This server cannot be installed
LangChain, LlamaIndex, OpenAI와 같은 Python 라이브러리에 대한 최신 문서에 공식 소스에서 동적으로 페칭하여 액세스할 수 있도록 하는 MCP 서버입니다.
- What is an MCP Server?
- Features
- Prerequisites
- Installation
- Set Up Environment Variables
- Running the MCP Server
- Usage
- Integrating with AI Assistants
- Extending the MCP Server
- Add support for more libraries (e.g., Hugging Face, PyTorch)
- Implement caching to reduce redundant API calls
- Optimize web scraping with AI-powered summarization
- Introduce a REST API for external integrations
- Add unit tests for better reliabilityReferences
- More MCP tools that can be useful during development
- References
- License