ツール
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
コーディングセッション中にTODOリストを管理します。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"todowrite": "allow"
}
}
複雑な操作中の進捗を追跡するためのタスクリストを作成および更新します。LLMはこれを使用して複数ステップのタスクを整理します。
Note
このツールはデフォルトではサブエージェントに対して無効ですが、手動で有効にできます。詳細はこちら。
webfetch
Webコンテンツを取得します。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"webfetch": "allow"
}
}
LLMがWebページを取得して読むことを許可します。ドキュメントの参照やオンラインリソースの調査に便利です。
websearch
情報をWebで検索します。Dropstoneにサインインしている場合、デフォルトで利用できます。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"websearch": "allow"
}
}
関連する情報をオンラインで見つけるためにWeb検索を実行します。トピックの調査、最新のイベントの発見、トレーニングデータのカットオフを超えた情報の収集に便利です。Dropstoneにサインインしている場合、APIキーや追加の設定は不要です。
Tip
情報を見つける必要がある場合(発見)は websearch を、特定のURLからコンテンツを取得する必要がある場合(取得)は webfetch を使用してください。
question
実行中にユーザーに質問します。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"question": "allow"
}
}
このツールを使用すると、LLMはタスク中にユーザーに質問できます。次のような場合に便利です:
- ユーザーの好みや要件を収集する
- あいまいな指示を明確にする
- 実装の選択肢について決定を得る
- 進む方向について選択肢を提供する
各質問には、ヘッダー、質問テキスト、およびオプションのリストが含まれます。ユーザーは提供されたオプションから選択するか、カスタム回答を入力できます。複数の質問がある場合、ユーザーはすべての回答を送信する前に質問間を移動できます。
カスタムツール
カスタムツールを使用すると、LLMが呼び出せる独自の関数を定義できます。これらは設定ファイルで定義され、任意のコードを実行できます。
カスタムツールの作成について詳しくは、こちらをご覧ください。
MCPサーバー
MCP(Model Context Protocol)サーバーを使用すると、外部ツールやサービスを統合できます。これには、データベースアクセス、API統合、サードパーティサービスが含まれます。
MCPサーバーの設定について詳しくは、こちらをご覧ください。
無視パターン
デフォルトでは、grep と glob は .gitignore を尊重します。そこにリストされているファイルとディレクトリは、検索と一覧表示から除外されます。
通常は無視されるファイルを含めるには、プロジェクトルートに .ignore ファイルを作成します。このファイルは特定のパスを明示的に許可できます。
!node_modules/
!dist/
!build/
たとえば、この .ignore ファイルは、node_modules/、dist/、build/ ディレクトリが .gitignore にリストされている場合でも、それらのディレクトリ内の検索を許可します。