policy-mcp
by junhyeok0703
README.md
# policy-mcp
정책 문서를 벡터 검색으로 Claude.ai에 연결하는 MCP 서버입니다.
## 폴더 구조
```
policy-mcp/
├── pyproject.toml
├── docs/ ← 정책 문서 여기에 (.txt .md .pdf)
├── chroma_db/ ← 자동 생성 (벡터 DB)
└── src/policy_mcp/
├── config.py ← 공유 설정
├── indexer.py ← 문서 인덱싱
└── server.py ← MCP 서버
```
---
## 시작하기
### 1. uv 설치 (없는 경우)
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
### 2. 의존성 설치
```bash
cd policy-mcp
uv sync
```
### 3. 문서 준비
`docs/` 폴더에 정책 문서를 넣으세요. (.txt, .md, .pdf 지원)
### 4. 문서 인덱싱 (최초 1회 / 문서 변경 시)
```bash
uv run index
```
첫 실행 시 한국어 임베딩 모델 (~400MB) 이 자동으로 다운로드됩니다.
### 5. MCP 서버 실행
```bash
uv run serve
```
### 6. ngrok으로 외부 공개
```bash
ngrok http 8000
# → https://xxxx.ngrok-free.app
```
### 7. Claude.ai에서 연결
Settings → Integrations → Add MCP server
```
https://xxxx.ngrok-free.app/mcp
```
---
## 환경 변수
| 변수 | 기본값 | 설명 |
|------|--------|------|
| `POLICY_DOCS_DIR` | `./docs` | 정책 문서 폴더 경로 |
| `CHROMA_DIR` | `./chroma_db` | 벡터 DB 저장 경로 |
| `MCP_HOST` | `0.0.0.0` | 서버 바인드 주소 |
| `MCP_PORT` | `8000` | 서버 포트 |
```bash
POLICY_DOCS_DIR=/Users/me/정책문서 uv run index
POLICY_DOCS_DIR=/Users/me/정책문서 uv run serve
```
---
## Claude.ai 사용 예시
연결 후 대화창에서:
- "정책 문서 목록 보여줘"
- "개인정보 수집 동의 절차 알려줘"
- "보안 사고 발생하면 어떻게 해야 해?"
- "보안정책.md 전체 내용 읽어줘"
---
## 제공 도구 (MCP Tools)
| 도구 | 설명 |
|------|------|
| `policy_list` | 인덱싱된 문서 목록 조회 |
| `policy_search` | 자연어 의미 기반 검색 |
| `policy_get` | 특정 문서 전문 조회 |