bdc-doc-mcp
BDC Doc RAG
bdc-assist의 문서 RAG MCP
bdc_doc_mcp/config.py env-driven embeddings/LLM/Chroma (replaces utils/__init__.set_emb_llm)
bdc_doc_mcp/ingest.py .pkl/.md/.mdx/.txt/.pdf → embeddings → Chroma (replaces utils/chroma/utils.py)
bdc_doc_mcp/api.py FastAPI: /health /search
bdc_doc_mcp/mcp_server.py search_docs MCP tool for AI agents — self-contained, same search as the API
bdc_doc_mcp/preproc/ source-specific preprocessing pipeline
tests/ self-checks + API / agent notebooks
data/ preproc output (*.pkl), ingest input설정
uv sync
cp .env.example .env # then fill in keys/URLs소스 저장소
전처리(--sources all)에만 필요합니다. API/MCP 서버와 기존 .pkl 파일 수집은 이 저장소 없이 작동합니다. 이 저장소 옆에 클론하거나(또는 환경 변수가 이를 가리키도록 설정):
git clone https://github.com/stagecc/interim-bdc-website ../interim-bdc-website # BDC_WEBSITE_DIR
git clone https://github.com/stagecc/bdc-gitbook ../bdc-gitbook # BDC_GITBOOK_DIR모델
완성(completion)에는 Azure의 OpenAI API(gpt-4o-mini 기본값)를 사용합니다.
임베딩에는 Sterling의 Ollama를 사용합니다(RENCI VPN을 통해 연결).
kubectl -n ner port-forward svc/ollama 11434:11434또는 groonga/bge-m3-Q4_K_M-GGUF 모델로 로컬 Ollama를 사용합니다.
Related MCP server: okfy
수집
모든 소스에서 전체 재구축(두 소스 저장소의 클론 필요 — 설정 참조; data/*.pkl을 작성한 뒤 로드):
uv run python -m bdc_doc_mcp.preproc.pipeline --sources all --ingest --reset개별 파일 또는 디렉터리:
uv run python -m bdc_doc_mcp.ingest ./data/docs.pkl --doc-type docs # BDC_Chatbot preproc .pkl
uv run python -m bdc_doc_mcp.ingest ../interim-bdc-website/src/pages --doc-type page --reset임베딩 모델은 컬렉션 내에서 교환할 수 없습니다 — bge-m3는 1024차원, text-embedding-3-small은 1536차원입니다. 모델을 전환하려면 --reset과 전체 재수집이 필요합니다.
API
uv run uvicorn bdc_doc_mcp.api:app --port 8000 # docs at /docs엔드포인트 | 본문 | 응답 |
| — |
|
|
| 순위가 매겨진 청크 + 메타데이터 + 점수 |
mode는 embedding(기본값; 의미적 유사성, 점수 = 거리, 낮을수록 좋음) 또는 keyword(퍼지 리터럴 단어 일치 — 대소문자/구두점을 무시하고 작은 오타를 허용하므로 picsure는 "PIC-SURE"를 찾음; 점수 = 발생 횟수, 높을수록 좋음 — 정확한 이름/약어에 사용)입니다.
doc_type는 검색할 유형의 CSV입니다(예: page,faq). 생략하면 docs, page, faq, video만 검색됩니다 — fellow, update, event를 명시적으로 지정하여 검색하세요.
date_from/date_to(YYYY-MM-DD, 포함)는 날짜로 필터링합니다. 이벤트 및 업데이트 문서만 날짜를 가지므로 날짜 필터는 암시적으로 해당 유형으로 좁혀집니다.
이 서비스는 설계상 검색 전용입니다. 수집은 CLI를 통해 오프라인으로 이루어지며(수집 참조), 답변은 호출자의 몫입니다 — 에이전트가 자체 LLM을 가져옵니다.
MCP
uv run python -m bdc_doc_mcp.mcp_server # stdio
uv run python -m bdc_doc_mcp.mcp_server --http # streamable HTTP, port MCP_PORT (default 8001)search_docs라는 하나의 도구를 노출합니다 — API와 동일한 검색이지만 Chroma를 직접 쿼리하므로 API 서비스가 실행될 필요가 없습니다. 수집된 .chroma_db + 임베딩이 필요합니다.
Stdio 클라이언트(Claude Desktop/Code, Cursor)는 서버를 직접 시작합니다 — 등록하세요:
{"mcpServers": {"bdc-doc-mcp": {
"command": "uv",
"args": ["--directory", "/path/to/bdc-doc-mcp", "run", "python", "-m", "bdc_doc_mcp.mcp_server"]
}}}네트워크 클라이언트: --http를 실행하고 대신 http://host:8001/mcp를 가리키게 하세요.
스모크 테스트: uv run python tests/test_mcp.py
전처리
bdc_doc_mcp/preproc/는 BDC_Chatbot 파이프라인을 포팅한 것입니다:
모듈 | 소스 | 포팅된 위치 (BDC_Chatbot) | 참고 사항 |
| interim-bdc-website MDX |
| fellows, events, latest-updates, pages |
| bdc-gitbook markdown |
| 헤더 계층별로 청크됨; 저장소 클론 필요 |
| bdcatalyst.freshdesk.com |
| 실시간 스크레이핑 |
| Google Sheet + Drive SRT |
| 타임스탬프 URL이 있는 비디오 트랜스크립트 |
| — | — | LLM 청크 컨텍스트화 + 요약기 |
| — |
| 오케스트레이터 |
--no-contextualize는 청크별 LLM 호출을 건너뜁니다(훨씬 빠르지만 검색이 약해짐). 소스 경로는 BDC_WEBSITE_DIR / BDC_GITBOOK_DIR에서 가져옵니다.
테스트
uv run python tests/test_ingest.py # batching + chunk-id logic, no network
uv run python tests/test_keyword.py # keyword ranking, pure function, no DB or API
uv run python tests/test_mcp.py # starts the server over stdio and exercises its tools; needs .chroma_db + embeddings노트북(각각 무료 포트에서 API를 시작하고 끝에 종료합니다; 둘 다 수집된 .chroma_db가 필요합니다):
tests/api_test.ipynb— 일반 API 연습:/health,/search,doc_type필터. 로컬 임베딩만 필요합니다.tests/agent_test.ipynb— 도구 호출 에이전트(deepagents): 구성된 LLM이search_docs를 LangChain 도구로 받아 호출 시점을 결정합니다. 완성 공급자에 연결할 수 있어야 합니다.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides semantic search over markdown documentation using RAG, allowing natural language queries and integration with MCP clients.1MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search, read, and traverse documentation bundles in Open Knowledge Format via MCP tools.73366MIT
- AlicenseNot gradedqualityDmaintenanceProvides RAG (Retrieval Augmented Generation) access to technical documentation through MCP, enabling LLMs to search and retrieve relevant documentation on-demand.4MIT
- AlicenseNot gradedqualityAmaintenanceCrawl documentation sites, index them with hybrid search, and expose them as MCP tools so LLM agents can search and retrieve current docs.MIT
Related MCP Connectors
Agentic search over your Dewey document collections from any MCP-compatible client.
Turn a GitHub repo or docs site into agent-ready context: pack it or search it, over MCP.
Query any docs site via MCP. Submit a URL, ask questions, get cited answers.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bdc-assist/bdc-doc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server