도구
LLM이 사용할 수 있는 도구를 관리합니다.
도구를 사용하면 LLM이 코드베이스에서 작업을 수행할 수 있습니다. Dropstone에는 기본 제공 도구 세트가 포함되어 있지만, 사용자 정의 도구나 MCP 서버로 확장할 수 있습니다.
기본적으로 모든 도구는 활성화되어 있으며 실행 권한이 필요하지 않습니다. 권한을 통해 도구 동작을 제어할 수 있습니다.
구성
permission 필드를 사용하여 도구 동작을 제어합니다. 각 도구에 대해 허용, 거부 또는 승인 필요를 설정할 수 있습니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "deny",
"bash": "ask",
"webfetch": "allow"
}
}
와일드카드를 사용하여 여러 도구를 한 번에 제어할 수도 있습니다. 예를 들어, MCP 서버의 모든 도구에 대해 승인을 요구하려면:
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"mymcp_*": "ask"
}
}
권한 구성에 대한 자세한 내용은 여기에서 확인하세요.
기본 제공
다음은 Dropstone에서 사용할 수 있는 모든 기본 제공 도구입니다.
bash
프로젝트 환경에서 셸 명령을 실행합니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"bash": "allow"
}
}
이 도구를 사용하면 LLM이 npm install, git status 또는 기타 셸 명령과 같은 터미널 명령을 실행할 수 있습니다.
edit
정확한 문자열 대체를 사용하여 기존 파일을 수정합니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "allow"
}
}
이 도구는 정확한 텍스트 일치 항목을 대체하여 파일을 정밀하게 편집합니다. LLM이 코드를 수정하는 주요 방법입니다.
write
새 파일을 만들거나 기존 파일을 덮어씁니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "allow"
}
}
LLM이 새 파일을 만들 수 있도록 허용하려면 이 도구를 사용하세요. 기존 파일이 이미 있는 경우 덮어씁니다.
Note
write 도구는 edit 권한으로 제어되며, 이 권한은 모든 파일 수정(edit, write, apply_patch)을 포함합니다.
read
코드베이스에서 파일 내용을 읽습니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"read": "allow"
}
}
이 도구는 파일을 읽고 내용을 반환합니다. 대용량 파일의 경우 특정 줄 범위를 읽는 것을 지원합니다.
grep
정규식을 사용하여 파일 내용을 검색합니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"grep": "allow"
}
}
코드베이스 전체에서 빠른 콘텐츠 검색을 수행합니다. 전체 정규식 구문과 파일 패턴 필터링을 지원합니다.
glob
패턴 일치로 파일을 찾습니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"glob": "allow"
}
}
**/*.js 또는 src/**/*.ts와 같은 glob 패턴을 사용하여 파일을 검색합니다. 수정 시간순으로 정렬된 일치하는 파일 경로를 반환합니다.
lsp (실험적)
구성된 LSP 서버와 상호 작용하여 정의, 참조, 호버 정보, 호출 계층 구조와 같은 코드 인텔리전스 기능을 얻습니다.
실험적
LSP 도구는 실험적이며 기본적으로 비활성화되어 있습니다. 동작은 릴리스 간에 변경될 수 있습니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"lsp": "allow"
}
}
지원되는 작업에는 goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls, outgoingCalls가 포함됩니다.
프로젝트에 사용할 수 있는 LSP 서버를 구성하려면 LSP 서버를 참조하세요.
apply_patch
파일에 패치를 적용합니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "allow"
}
}
이 도구는 코드베이스에 패치 파일을 적용합니다. 다양한 소스의 diff와 패치를 적용하는 데 유용합니다.
tool.execute.before 또는 tool.execute.after 훅을 처리할 때 input.tool === "apply_patch"("patch"가 아님)를 확인하세요.
apply_patch는 output.args.filePath 대신 output.args.patchText를 사용합니다. 경로는 patchText 내의 마커 줄에 포함되며 프로젝트 루트를 기준으로 합니다(예: *** Add File: src/new-file.ts, *** Update File: src/existing.ts, *** Move to: src/renamed.ts, *** Delete File: src/obsolete.ts).
Note
apply_patch 도구는 edit 권한으로 제어되며, 이 권한은 모든 파일 수정(edit, write, apply_patch)을 포함합니다.
skill
스킬(SKILL.md 파일)을 로드하고 그 내용을 대화에 반환합니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"skill": "allow"
}
}
todowrite
코딩 세션 중 할 일 목록을 관리합니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"todowrite": "allow"
}
}
복잡한 작업 중 진행 상황을 추적하기 위해 작업 목록을 만들고 업데이트합니다. LLM은 이를 사용하여 다단계 작업을 구성합니다.
Note
이 도구는 기본적으로 하위 에이전트에서 비활성화되어 있지만 수동으로 활성화할 수 있습니다. 자세히 알아보기.
webfetch
웹 콘텐츠를 가져옵니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"webfetch": "allow"
}
}
LLM이 웹 페이지를 가져와 읽을 수 있게 합니다. 문서를 조회하거나 온라인 리소스를 조사하는 데 유용합니다.
websearch
정보를 위해 웹을 검색합니다. Dropstone에 로그인하면 기본적으로 사용할 수 있습니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"websearch": "allow"
}
}
온라인에서 관련 정보를 찾기 위해 웹 검색을 수행합니다. 주제 조사, 최신 이벤트 찾기, 또는 학습 데이터 범위를 넘어선 정보 수집에 유용합니다. Dropstone에 로그인하면 API 키나 추가 설정이 필요 없습니다.
Tip
정보를 찾아야 할 때(검색)는 websearch를 사용하고, 특정 URL에서 콘텐츠를 가져와야 할 때(검색)는 webfetch를 사용하세요.
question
실행 중 사용자에게 질문합니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"question": "allow"
}
}
이 도구를 사용하면 LLM이 작업 중 사용자에게 질문할 수 있습니다. 다음과 같은 경우에 유용합니다:
- 사용자 선호도 또는 요구 사항 수집
- 모호한 지침 명확화
- 구현 선택에 대한 결정 얻기
- 진행 방향에 대한 선택지 제공
각 질문에는 헤더, 질문 텍스트, 옵션 목록이 포함됩니다. 사용자는 제공된 옵션을 선택하거나 사용자 정의 답변을 입력할 수 있습니다. 여러 질문이 있는 경우 사용자는 모든 답변을 제출하기 전에 질문 사이를 탐색할 수 있습니다.
preview
헤드리스 브라우저에서 로컬 HTML 페이지를 렌더링하고 결과를 확인합니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"preview": "allow"
}
}
이 도구는 390, 768, 1440px에서 페이지를 렌더링하고 각각 스크린샷을 찍은 다음 이미지와 머신이 증명할 수 있는 내용의 보고서를 반환합니다:
| 검사 | 감지 내용 |
|---|---|
RENDER | 루트 요소가 비어 있음 — 페이지가 아무것도 마운트하지 않음 |
RENDER_BLANK | 스크린샷이 5KB 미만이므로 사실상 빈 화면 |
OVERFLOW | 요소가 뷰포트를 가로로 벗어나며 픽셀 델타 포함 |
CLIP | 요소가 overflow: hidden을 통해 자체 콘텐츠를 숨김 |
디자인이 올바른지 여부는 판단하지 않습니다. 그 역할은 스크린샷이 담당합니다 — 에이전트가 이를 읽습니다.
기본 세트가 아닌 다른 크기로 렌더링하려면 viewports를 쉼표로 구분된 너비 목록으로 전달하세요.
로컬 파일만 가능합니다. 원격 URL은 거부됩니다. 임의의 URL을 가져오면 페이지 콘텐츠가 내부 서비스로 도구를 리디렉션할 수 있습니다.
Playwright가 필요합니다. 설치되어 있지 않으면 도구는 [RENDER_SKIPPED]를 반환하고 아무것도 검증하지 않습니다 — 조용한 통과를 보고하지 않습니다. 다음과 같이 설치하세요:
npm i -D playwright && npx playwright install chromium
사용자 정의 도구
사용자 정의 도구를 사용하면 LLM이 호출할 수 있는 고유한 함수를 정의할 수 있습니다. 이는 구성 파일에 정의되며 임의의 코드를 실행할 수 있습니다.
사용자 정의 도구 생성에 대한 자세한 내용은 여기에서 확인하세요.
MCP 서버
MCP(Model Context Protocol) 서버를 사용하면 외부 도구와 서비스를 통합할 수 있습니다. 여기에는 데이터베이스 액세스, API 통합, 타사 서비스가 포함됩니다.
MCP 서버 구성에 대한 자세한 내용은 여기에서 확인하세요.
무시 패턴
기본적으로 grep과 glob은 .gitignore를 존중합니다. 여기에 나열된 파일과 디렉터리는 검색 및 목록에서 제외됩니다.
일반적으로 무시되는 파일을 포함하려면 프로젝트 루트에 .ignore 파일을 만드세요. 이 파일은 특정 경로를 명시적으로 허용할 수 있습니다.
!node_modules/
!dist/
!build/
예를 들어, 이 .ignore 파일은 node_modules/, dist/, build/ 디렉터리가 .gitignore에 나열되어 있어도 검색을 허용합니다.