# v0 기본값/제한 테이블 — File Time Search MCP
본 문서는 [PRD-API.md](PRD-API.md)의 입력 스키마를 기반으로, **서버가 적용하는 v0 기본값/상한(guardrails)** 을 고정합니다.
원칙:
- 입력 스키마의 `default`/`maximum`과 충돌하지 않게 한다.
- 대규모 트리에서도 “무한 스캔/무한 대기”가 발생하지 않게 한다.
---
## 1) 요청 파라미터 기본값(v0)
아래는 클라이언트가 값을 생략했을 때 서버가 적용하는 기본값입니다.
| 필드 | v0 기본값 | 근거/비고 |
|---|---:|---|
| `root` | `DEFAULT_ROOT` 또는 `ALLOW_ROOTS[0]` | [PRD-v0-Policy.md](PRD-v0-Policy.md) |
| `path` | `""` (root 자체) | `""`/`.`는 root 자체 |
| `timeField` | (필수) | [PRD-API.md](PRD-API.md) required |
| `from` | `null` | 범위 하한 없음 |
| `to` | `null` | 범위 상한 없음 |
| `glob` | (전체 매칭) | `glob` 생략 시 모든 항목 |
| `recursive` | `true` | [PRD-API.md](PRD-API.md) |
| `maxDepth` | `null` (제한 없음) | 단, 서버는 2장 상한을 적용할 수 있음 |
| `includeFiles` | `true` | [PRD-API.md](PRD-API.md) |
| `includeDirectories` | `false` | [PRD-API.md](PRD-API.md) |
| `sort` | `time_desc` | [PRD-API.md](PRD-API.md) |
| `limit` | `100` | [PRD-API.md](PRD-API.md) |
| `cursor` | `null` | 첫 페이지 |
| `includeUnknownTime` | `false` | [PRD-API.md](PRD-API.md) |
---
## 2) 서버 강제 상한(guardrails, v0)
이 표는 클라이언트가 과도한 값을 주거나, 스캔이 과도해지는 상황을 방지하기 위한 “서버 내부 상한”입니다.
| 항목 | v0 값 | 동작 |
|---|---:|---|
| `limit` 최대 | `1000` | 스키마 최대와 동일. 초과 입력은 tool 에러 |
| `maxDepth` 최대 | `256` | 입력이 이보다 크면 tool 에러(방어적) |
| `glob` 최대 길이 | `2048` | 초과 시 tool 에러 |
| `path` 최대 길이 | `4096` | 초과 시 tool 에러 |
| `cursor` 최대 길이 | `4096` | 초과 시 tool 에러 |
| `maxFilesScanned` | `200000` | 도달 시 부분 결과 + `nextCursor`(가능하면) |
| `maxDirectoriesScanned` | `50000` | 도달 시 부분 결과 + `nextCursor`(가능하면) |
| `timeoutMs` (soft) | `10000` | 초과 시 부분 결과 + `nextCursor`(가능하면) |
| `followSymlinks` | `false` | v0 기본 정책(루트 탈출 방지) |
참고:
- 스캔 제한 도달 시 정책은 [PRD-v0-Policy.md](PRD-v0-Policy.md)의 7장에 따른다.
---
## 3) 결과/통계 기본 규칙
- 성공 결과는 항상 `structuredContent`를 포함한다.
- 호환을 위해 `content`에도 JSON 직렬화 텍스트를 포함한다.
- `stats`는 항상 아래 필드를 포함한다.
- `scannedFiles`, `scannedDirectories`, `returned`
---
## 4) 변경 이력
- v0: 최초 고정