Skip to main content
Glama
samhyun

Apidog MCP Server

by samhyun
README.md
# 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
```