# Claude Agent SDKの便利で実践的な使い方
🔧 社内 API・DB・ドメインロジックを `
@tool` で定義して、Claude に呼び出させましょう。
カスタムツールは、`
@tool` デコレータでインプロセス MCP サーバーとして独自関数を定義し、Claude が会話中に呼び出せるようにする機能です。
📌 タイトル:Claude にカスタムツールを提供する
🔗 URL:
🧩 概要
`
@tool`(Python)/ `tool()`(TypeScript)で名前・説明・スキーマ・ハンドラーを定義し、`create_sdk_mcp_server` でラップして `mcp_servers` に渡します。副作用のないツールには `readOnlyHint: true` を付けて並列実行を最適化できます。
🛠 使い方
`
@tool`(Python)/ `tool()`(TypeScript)で名前・説明・スキーマ・ハンドラーを定義し、`create_sdk_mcp_server` でラップして `mcp_servers={"weather": server}` に渡します。ツール名は `mcp__weather__get_temperature` の形式で Claude に公開されます。
🏗 実践的な使い方
・社内 API(顧客情報・在庫・注文状況等)を `
@tool` で定義し、自然言語での問い合わせに対応するエージェントを構築します。
・`readOnlyHint: true` を読み取り専用ツールに付与し、複数ツールの同時実行でレイテンシを削減します。
・ハンドラー内で例外を握りつぶし `is_error=True` を返すと、エージェントループは継続し Claude がリトライ・代替手段を試みます。
・チャート生成ツールが `image` ブロック(base64)でグラフ画像を返し、Claude に結果を分析させます。
💡 ユースケース
🏢 社内 API への自然言語アクセスエージェント
📊 グラフ生成+画像分析パイプライン
🔄 エラー耐性のある自律リトライ
⚠️ 注意点
ハンドラー内でキャッチされない例外は `query()` 全体を落とすため、必ずエラーハンドリングを行ってください。`tools: ["Read","Grep"]` で組み込みツールの利用を制限することも可能です。
#
ClaudeAgentSDK# #
AI#