Ask My Data
FreeNot checkedAutomatically routes natural language questions to RAG or Text2SQL paths to answer queries about virtual construction site data, supporting semantic search and
About
Automatically routes natural language questions to RAG or Text2SQL paths to answer queries about virtual construction site data, supporting semantic search and structured aggregation.
README
하나의 자연어 질문을 의미 검색(RAG) 과 데이터 집계(Text2SQL) 경로로 자동 라우팅해 답하는 MCP 서버. LangGraph 기반 Multi-Agent 파이프라인을 완전 합성 검색 평가 데이터로 검증하는 포트폴리오 프로젝트입니다.
실행 증거
아래 이미지는 2026-07-15에 클린 가상환경에서 MCP stdio 연결 후 tools/list와
search_documents를 실제 호출한 결과입니다.

| 검증 | 결과 |
|---|---|
pip install -e ".[dev]" |
통과 (Python 3.14.5) |
python -m pytest -q |
6 passed |
| MCP initialize · tools/list | 통과 — 3 tools |
search_documents 호출 |
통과 — API 키 없이 BM25 검색 |
ask와 query_stats는 라우팅·SQL 생성·답변 합성에 Claude를 사용하므로
ANTHROPIC_API_KEY가 필요합니다. 위 smoke test는 키나 외부 API 없이 검증 가능한 검색 경로입니다.
동일한 검증은 python scripts/smoke_test.py로 재현할 수 있습니다.
무엇을 보여주나
- MCP 서버 — 범용 LLM 클라이언트(Claude Desktop 등)에서 도구로 호출
- Multi-Agent 라우팅 — 질문 유형(
semantic/structured/both)을 판단해 경로 분기 - RAG — BM25 키워드 + (옵션)다국어 임베딩 Hybrid Search
- Text2SQL — 자연어 → 검증된 SELECT → 검색 실험 결과 집계
- Synthesize — 문서 근거와 정형 결과를 결합한 답변 생성
아키텍처
┌──────────┐
질문 ────▶ │ Router │ semantic / structured / both 분류
└────┬─────┘
┌───────┼────────┐
▼ ▼
┌─────────┐ ┌───────────┐
│ RAG │ │ Text2SQL │
│ (문서) │ │ (SQLite) │
└────┬────┘ └─────┬─────┘
└────────┬───────┘ (both: RAG → Text2SQL 순으로 이어붙임)
▼
┌────────────┐
│ Synthesize │ 근거 종합 → 자연어 답변
└────────────┘
검색 실험용 합성 데이터
data/는 특정 회사·고객·서비스와 무관하게 이 프로젝트를 위해 새로 만든 데이터입니다.
| 구성 | 내용 | 실험 질문 예시 |
|---|---|---|
| 문서 코퍼스 | 검색 지표·방법론 + 실시간 협업 편집 OT/CRDT 기술 문서 | “MRR과 nDCG의 차이는?”, “OT와 CRDT는 언제 선택해?” |
datasets |
언어·질의 수·문서 수가 다른 가상 데이터셋 3개 | “다국어 데이터셋은 무엇인가?” |
experiments |
BM25·Dense·Hybrid-RRF 가상 실험 9개 | “MRR이 가장 높은 실험은?” |
experiment_results |
데이터셋과 실험을 결합한 조회용 View | “한국어 데이터셋의 품질·지연 시간 비교” |
모든 이름, 설명, 지표와 지연 시간은 검색/RAG 실험을 위해 임의로 구성한 합성 값입니다. 실시간 협업 편집 문서는 사용자가 제공한 일반 기술 리서치 문서로, 합성 실험 수치와 분리되어 있습니다.
빠른 시작
# 1) 설치
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]" # 기본 + 테스트
pip install -e ".[embeddings]" # 옵션: 다국어 임베딩 Hybrid Search
# 2) 환경변수
cp .env.example .env # ANTHROPIC_API_KEY 채우기
export $(cat .env | xargs) # 또는 direnv/python-dotenv
# 3) 합성 검색 실험 DB 생성
python data/build_sample_db.py
# 4) MCP 없이 바로 테스트 (CLI)
python -m src.cli "MRR이 뭐야?"
python -m src.cli "Mosaic 데이터셋에서 MRR이 가장 높은 실험은?"
python -m src.cli "nDCG@10이 가장 높은 실험은 무엇이고, nDCG는 어떻게 계산해?"
# 단위 테스트
python -m pytest -q
MCP 클라이언트에 연결 (Claude Desktop 예시)
claude_desktop_config.json:
{
"mcpServers": {
"ask-my-data": {
"command": "python",
"args": ["/absolute/path/to/ask-my-data-mcp/server.py"],
"env": { "ANTHROPIC_API_KEY": "sk-ant-..." }
}
}
}
노출 도구: ask (자동 라우팅) · search_documents (RAG) · query_stats (Text2SQL)
예시 질문과 라우팅
| 질문 | 라우팅 | 경로 |
|---|---|---|
| "MRR이 뭐야?" | semantic | RAG |
| "Mosaic 데이터셋에서 MRR이 가장 높은 실험은?" | structured | Text2SQL |
| "nDCG@10이 가장 높은 실험은 무엇이고, nDCG는 어떻게 계산해?" | both | RAG + Text2SQL |
기술 스택
Python · MCP · LangGraph · Anthropic Claude · rank-bm25 · sentence-transformers(옵션) · SQLite
관련 글
라이선스
MIT
Installing Ask My Data
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/feelgom/ask-my-data-mcpFAQ
Is Ask My Data MCP free?
Yes, Ask My Data MCP is free — one-click install via Unyly at no cost.
Does Ask My Data need an API key?
No, Ask My Data runs without API keys or environment variables.
Is Ask My Data hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Ask My Data in Claude Desktop, Claude Code or Cursor?
Open Ask My Data on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare Ask My Data with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
