# Apidog MCP Server (HTTP)
HTTP 기반 Model Context Protocol (MCP) 서버로, API 문서를 AI 도구에서 활용할 수 있게 해줍니다.
## 기능
- **API 엔드포인트 검색**: 키워드로 API 검색
- **엔드포인트 상세 조회**: 파라미터, 요청/응답 스키마 확인
- **스키마 조회**: 모델/스키마 정의 조회
- **프로젝트 정보**: API 통계 및 메타데이터
## Requirements
- Node.js 18+
- pnpm
## 설치
```bash
pnpm install
```
## 설정
`.env` 파일:
```env
PORT=3333
# 방법 1: Apidog 프로젝트 사용
APIDOG_ACCESS_TOKEN=your-token
APIDOG_PROJECT_ID=your-project-id
# 방법 2: OpenAPI/Swagger URL 직접 사용
APIDOG_OAS_URL=https://petstore3.swagger.io/api/v3/openapi.json
# 선택: MCP 서버 인증 (설정하지 않으면 인증 없이 접근)
MCP_API_KEY=your-mcp-api-key
```
## 실행
```bash
# 개발
pnpm dev
# 프로덕션
pnpm build
pnpm start
```
## MCP 도구
| 도구 | 설명 |
|------|------|
| `apidog_search` | 키워드로 API 엔드포인트 검색 |
| `apidog_get_endpoint` | 특정 엔드포인트 상세 정보 조회 |
| `apidog_list_endpoints` | 모든 엔드포인트 목록 |
| `apidog_get_schema` | 스키마/모델 정의 조회 |
| `apidog_project_info` | 프로젝트 정보 및 통계 |
| `apidog_refresh` | 캐시 갱신 |
## Claude Desktop 설정
`claude_desktop_config.json`:
```json
{
"mcpServers": {
"apidog": {
"url": "http://localhost:3333/mcp",
"transport": "http"
}
}
}
```
인증 필요 시:
```json
{
"mcpServers": {
"apidog": {
"url": "http://localhost:3333/mcp",
"transport": "http",
"headers": {
"x-api-key": "your-mcp-api-key"
}
}
}
}
```
## API 테스트
```bash
# 헬스 체크
curl http://localhost:3333/mcp
# Initialize
curl -X POST http://localhost:3333/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'
# 도구 목록
curl -X POST http://localhost:3333/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
# API 검색
curl -X POST http://localhost:3333/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"apidog_search","arguments":{"keyword":"user"}}}'
```
## Docker
```bash
docker build -t apidog-mcp-server .
docker run -p 3333:3333 --env-file .env apidog-mcp-server
```