登録して招待リンクを共有すると、動画再生報酬と紹介報酬を獲得できます。

検索結果 MCPServer
MCPServer コミュニティ
1つのキーワードが1つのコミュニティです。
コミュニティ作成
アカウント
見つかりません
MCPServer を含む検索結果
# OpenAI Agent SDKの便利で実践的な使い方 🌍 自前の MCP サーバーをエージェントに接続しましょう。HTTP・SSE・stdio の3つのトランスポートと、接続管理・承認制御の実践パターンを紹介します。 ローカル MCP サーバーは自社インフラ上で動作するため、低レイテンシ・高セキュリティ・カスタムツールの自由度が得られます。 📌 タイトル:MCP -- Streamable HTTP / SSE / stdio 🔗 URL: 🧩 概要 ローカル MCP サーバーは、自分でホストする MCP サーバーをエージェントのツールとして接続する仕組みです。`MCPServerStreamableHttp`(HTTP ベース、認証・リトライ・タイムアウト対応)、`MCPServerSse`(Server-Sent Events)、`MCPServerStdio`(ローカル CLI プロセス)の3つのトランスポートから選択できます。`MCPServerManager` で複数サーバーの一括接続管理、`require_approval` でツール別の承認制御、`tool_meta_resolver` でテナント情報の注入が可能です。 🛠 使い方 `agents` から `Agent`, `Runner` を、`agents.mcp` から `MCPServerStreamableHttp`, `MCPServerStdio` をインポートします。HTTP 接続の場合は `Agent` の `mcp_servers` に `MCPServerStreamableHttp` を渡し、接続情報は `params` 辞書にまとめて `params={"url": "http://internal-mcp.corp:8080/mcp", "headers": {"Authorization": "Bearer "}, "timeout": 30}` と指定します。stdio 接続の場合は `MCPServerStdio` を使い、`params={"command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"]}` でローカル CLI プロセスを起動します。 🏗 実践的な使い方 **MCPServerStreamableHttp で社内 MCP に認証付き接続** 低レイテンシが求められる社内サービスへの接続パターンです。認証ヘッダ、リトライ、タイムアウトを設定します。 `MCPServerStreamableHttp` の `params` に `"url": "http://internal-mcp.corp:8080/mcp"`、`"headers"` で `Authorization` ヘッダに `os.getenv('MCP_TOKEN')` から取得したトークンを設定し、`"timeout": 30` を指定します。リトライ回数は `params` の外側のキーワード引数 `max_retry_attempts=3` で設定します。これを `Agent` の `mcp_servers` に渡すことで、認証付きの社内 MCP 接続が完成します。 **MCPServerStdio でローカル CLI ツールを接続** ファイルシステムサーバーや自作 CLI ツールを stdio トランスポートで接続します。 `MCPServerStdio` で `params={"command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"]}` を指定してファイルシステムサーバーを接続します。自作ツールの場合は `params={"command": "python", "args": ["-m", "my_custom_mcp_server"], "env": {"DB_URL": os.getenv("DB_URL")}}` で環境変数を渡します。両方を `Agent` の `mcp_servers` リストに渡せば、複数の stdio ツールを同時利用できます。 **MCPServerManager で複数サーバーの一括管理** 複数の MCP サーバーを効率的に管理し、障害時の再接続も制御します。 `agents.mcp` から `MCPServerManager` をインポートし、`servers` に複数の MCP サーバーインスタンスを渡します。`await manager.connect_all()` で一括接続し、` でアクティブなサーバーを確認できます。`await manager.reconnect(failed_only=True)` で障害が発生したサーバーのみ再接続します。 **require_approval のツール別マップ + tool_meta_resolver** ツールごとに承認ポリシーを変え、さらにツール実行時にテナント情報を注入するパターンです。 ツールごとの承認ポリシーを辞書で定義します。`"search_docs"` と `"read_file"` は `"never"`、`"write_file"`・`"delete_file"`・`"execute_query"` は `"always"` とマッピングします。`tool_meta_resolver` に渡す関数は `MCPToolMetaContext` を受け取り、` からテナント情報を読んで `{"tenant_id": str(tenant_id), "source": "agents-sdk"}` のようなメタデータ辞書を返します(ツール引数そのものを書き換えるのではなく、呼び出しごとの `_meta` として送られます)。`MCPServerStreamableHttp` の `require_approval` にこの辞書を、`tool_meta_resolver` にこの関数を渡すことで、ツール別承認制御とテナント情報の自動付与を実現します。 💡 ユースケース 🏢 MCPServerStreamableHttp で社内 MCP サーバーに認証・タイムアウト付きで低レイテンシ接続 📁 MCPServerStdio でローカルのファイルシステムサーバーや自作 CLI ツールをエージェントに接続 🔄 MCPServerManager で複数サーバーを一括管理し、failed_only=True で障害サーバーのみ再接続 🔐 ツール別 require_approval マップ + tool_meta_resolver でテナント ID を自動注入しマルチテナント対応 ⚠️ 注意点 - MCPServerStdio はローカルプロセスを起動するため、コンテナ環境では対象コマンドがインストールされている必要があります。 - MCPServerManager の reconnect は接続エラーのリカバリであり、ツール実行中のエラーハンドリングは別途必要です。 - tool_meta_resolver で注入する情報にシークレットを含めないでください。ログに出力される可能性があります。 ✨ 3つのトランスポートと MCPServerManager を使いこなせば、社内サービスからローカルツールまで自在に接続できます。まずは stdio で手元のツールを繋いで、HTTP で本番接続に移行していきましょう! #OpenAIAgentSDK# #AIAgent#
もっと見る
# OpenAI Agent SDKの便利だけど知られていない機能 🌍 MCPサーバーへのツール一覧取得が毎回ネットワークコールになっていませんか? `list_tools()` のキャッシュを有効にすれば、安定したツール定義の再取得を省略し、レイテンシを大幅に削減できます。 📌 タイトル:list_tools() のキャッシュ 🔗 URL: 🧩 概要 MCPサーバーのツール定義が頻繁に変わらない場合、毎回 `list_tools()` をネットワーク越しに呼ぶのは無駄です。`cache_tools_list=True` を設定するだけで、ツール一覧をメモリにキャッシュし、2回目以降の取得を高速化します。ツール定義を更新した場合は `server.invalidate_tools_cache()` で明示的にキャッシュをクリアできます。 🛠 使い方 ```python from agents.mcp import MCPServerStreamableHttp # ツール一覧のキャッシュを有効化 server = MCPServerStreamableHttp( params={"url": ""}, cache_tools_list=True, ) async with server: # 初回はネットワーク呼び出し、2回目以降はキャッシュから取得 tools = await server.list_tools() # ツール定義が変わった場合にキャッシュをクリア server.invalidate_tools_cache() tools = await server.list_tools() # 再取得される ``` 🏗 本番システムへの組み込み方 ・ツール定義が安定しているMCPサーバーには必ず `cache_tools_list=True` を設定する ・デプロイ時やツール更新時に `invalidate_tools_cache()` を呼んでキャッシュをリフレッシュする ・複数エージェントが同一サーバーを共有する場合、キャッシュにより全体のレイテンシが改善される ・ヘルスチェックのタイミングでキャッシュを定期的にリフレッシュする運用も有効 💡 ユースケース ⚡ 高頻度でエージェントを呼び出すチャットアプリのレスポンス改善 🔄 マルチターン会話でのツール一覧取得のオーバーヘッド削減 🏢 安定したツールセットを持つ社内MCPサーバーの最適化 📉 MCPサーバーへのリクエスト数削減によるコスト最適化 ⚠️ 注意点 キャッシュを有効にすると、MCPサーバー側でツールが追加・削除されても反映されません。ツール定義が動的に変わる環境では、適切なタイミングで `invalidate_tools_cache()` を呼ぶか、キャッシュを無効のままにしてください。 ✨ シンプルなフラグ一つで、MCPツール取得のオーバーヘッドを解消しましょう。 #OpenAIAgentSDK# #AIAgent#
もっと見る
# Claude Agent SDKの便利だけど知られていない機能 🌍 サブエージェントにスキルやMCPサーバーを個別に設定したい?AgentDefinitionで細かくカスタマイズできます! Claude Agent SDKのAgentDefinitionでは、skills、memory、mcpServersをはじめとする豊富なフィールドで、エージェント単位の詳細な設定が可能です。 📌 タイトル:エージェント単位の skills / memory / mcpServers 指定 🔗 URL: 🧩 概要 `AgentDefinition` には、`description` と `prompt` の必須フィールドに加え、多数のオプションフィールドがあります。`skills` でスキルをプリロード、`memory` でメモリソース(`user`/`project`/`local`)を指定、`mcpServers` でMCPサーバーを名前またはインライン設定で接続できます。さらに `tools`、`disallowedTools`、`model`(`sonnet`/`opus`/`haiku`/`inherit` またはフルモデルID)、`effort`、`permissionMode`、`maxTurns`、`background`、`initialPrompt` など、エージェントの挙動を包括的に制御できます。 🛠 使い方 ```python # Python - フル構成のエージェント定義 from claude_agent_sdk import AgentDefinition agent = AgentDefinition( description="データベース移行の専門家", prompt="あなたはDB移行のエキスパートです。安全な移行戦略を提案してください。", tools=["Read", "Grep", "Glob", "Bash"], disallowed_tools=["Bash(rm *)"], # 特定操作を禁止 model="opus", # 高品質なモデルを使用 skills=["db-migration"], # スキルをプリロード memory="project", # プロジェクトメモリを使用 mcpServers=["postgres-server"], # MCPサーバーに接続 effort="high", # 推論レベルを高く max_turns=20, # 最大ターン数を制限 permission_mode="acceptEdits", # 編集を自動承認 background=False, # フォアグラウンドで実行 ) ``` ```typescript // TypeScript const agent: AgentDefinition = { description: "Database migration specialist", prompt: "You are a DB migration expert. Propose safe migration strategies.", tools: ["Read", "Grep", "Glob", "Bash"], disallowedTools: ["Bash(rm *)"], model: "opus", skills: ["db-migration"], memory: "project", mcpServers: ["postgres-server"], effort: "high", maxTurns: 20, permissionMode: "acceptEdits", background: false, }; ``` 🏗 本番システムへの組み込み方 ・`skills` でドメイン固有の知識をプリロードし、エージェントの専門性を高めます(未リストのスキルもSkillツール経由で呼び出し可能) ・`memory` で適切なスコープを設定し、エージェント間でのコンテキスト共有を制御します ・`mcpServers` でデータベースや外部サービスへの接続を名前またはインライン設定で管理します ・`maxTurns` でコスト制御と暴走防止を行い、`effort` でタスクの重要度に応じた推論品質を設定します ・`background: true` でノンブロッキング実行にし、並行タスクの効率を上げます 💡 ユースケース 🗄 MCPサーバー接続付きのデータベース移行エージェント 📚 ドメイン固有スキルをプリロードした専門家エージェント ⚡ バックグラウンド実行で並行分析を行う高速ワークフロー ⚠️ 注意点 ・`tools` を省略するとすべてのツールを親から継承します。制限したい場合は明示的に指定してください ・サブエージェントの `permissionMode` は、親が `bypassPermissions`/`acceptEdits`/`auto` の場合、親のモードが強制的に継承されオーバーライドできません ・`skills` にリストしたスキルは起動時にプリロードされますが、リストにないスキルもSkillツール経由で呼び出せます ・Python SDKではフィールド名はcamelCaseでワイヤフォーマットに合わせます ✨ AgentDefinitionの豊富な設定フィールドを活用すれば、汎用エージェントではなく、タスクに最適化された専門家エージェントを構築できます! #ClaudeAgentSDK# #AIAgent#
もっと見る
# Cursorの機能と実践的な使い方 🧩 CursorのAIエージェントを、自前のスクリプトやCIチェックの中から呼び出せたら——。`@cursor/sdk` はその願いを叶える、TypeScript製のエージェント操作インターフェースです。 🏷️ タイトル: @cursor/sdk(TypeScript) 🔗 URL: 📘 概要 `@cursor/sdk` は、IDE・CLI・Webアプリと同じCursorエージェントを、スクリプト可能なTypeScriptインターフェースとして公開するパッケージです。CI自動化、製品への組み込み、独自ワークフローのオーケストレーションなどに使えます。Node前提で、ローカル実行用コードは遅延ロードされるためクラウド専用利用では起動コストがかかりません。 ⚙️ 機能の説明 主要な概念はAgent(会話文脈とワークスペース設定を保持するステートフルな入れ物)、Run(1回のプロンプト送信と、その出力ストリーム・状態・結果)、SDKMessage(実行中に流れる正規化済みイベント)です。 ・`Agent.create()`:オプションを検証してすぐにハンドルを返し、`agent.send()` でプロンプトを送れます。 ・local / cloud キー:実行場所を切り替えます。`local` はあなたのNodeプロセス内でエージェントループを回し、`cloud` はCursorホストの隔離VMでリポジトリを取得して動かします(自前VMプールも可)。 ・「local」はエージェントループの場所を指すだけで、モデル推論は両モードともCursorのバックエンド経由です。 ・`local.customTools` で独自関数をツールとして渡せます(ローカル専用)。`Agent.prompt()` はワンショット用のショートカットです。 🛠️ 実践的な使い方 インストールはスコープ付きの正確な名前 `npm install @cursor/sdk` が必要です。 ローカルの作業ツリーに対してCIチェックを走らせるには、`Agent.create()` に `apiKey`・` を渡し、`agent.send()` でプロンプトを送って `run.wait()` の `status` が `finished` かを判定します。終わったら `agent[Symbol.asyncDispose]()` で後始末します。 クラウド実行に切り替えるなら `cloud` キーを使い、`autoCreatePR: true` で完了時にPRを開けます。認証は `CURSOR_API_KEY` 環境変数か `apiKey` 指定で、ユーザーキーまたはサービスアカウントキーが使えます。 💡 ユースケース プルリクのCIで `Agent.prompt()` を回してセキュリティ監査を自動化したり、`cloud` キーで多数のエージェントを並列起動して大規模リファクタを別ブランチへPRさせたり、`local.customTools` で社内のデプロイ確認APIをエージェントに与えて自前ワークフローへ組み込む、といった使い方ができます。 ⚠️ 注意点 ローカルモードはサンドボックスやhookを設定しない限り、シェル実行やファイル編集を承認なしで行います。CIでは `local.sandboxOptions: { enabled: true }` を検討してください。Python SDKは存在せず、Node以外の言語からはSDK Bridgeを使うか、Cloud AgentsのREST APIを直接叩きます。`Agent.resume()` ではインラインの `mcpServers` が失われるため再指定が必要で、モデルIDは変わり得るので `Cursor.models.list()` で確認するのが安全です。 #Cursor# #SDK#
もっと見る
# OpenAI Agent SDKの便利で実践的な使い方 🌍 MCP サーバーのツールを「全部見せる」のではなく、フィルタ・プロンプト・キャッシュで賢く制御しましょう。権限スコープの絞り込みから動的フィルタリングまで、安全で高速な MCP 活用パターンです。 ツールフィルタで権限を最小化し、プロンプトで動的指示を取得し、キャッシュでレイテンシを削減する -- MCP の運用を本格化する3つの機能です。 📌 タイトル:MCP -- Tool filtering / Prompts / Caching 🔗 URL: 🧩 概要 MCP サーバーが公開するツールをそのまますべてエージェントに渡すと、不要なツール呼び出しや権限超過のリスクがあります。`create_static_tool_filter` で許可するツールを静的に制限し、動的フィルタ関数で実行時の条件(ロール・テナント等)に応じてツールを出し分けできます。`get_prompt` で MCP サーバーから動的な指示を取得し、`cache_tools_list=True` でツール一覧のキャッシュによりレイテンシを改善、`invalidate_tools_cache()` で変更時にキャッシュをクリアします。 🛠 使い方 `agents.mcp` から `MCPServerStreamableHttp` と `create_static_tool_filter` をインポートします。`MCPServerStreamableHttp` の `tool_filter` に `create_static_tool_filter(allowed_tool_names=["read_file", "write_file"])` を渡すことで、エージェントが使えるツールを `read_file` と `write_file` のみに制限できます。 🏗 実践的な使い方 **create_static_tool_filter で権限スコープを絞り込む** エージェントの役割に応じて、使えるツールを最小限に制限するパターンです。 読み取り専用エージェント用には `create_static_tool_filter(allowed_tool_names=["read_file", "search_docs", "list_files"])` でフィルタを作成し、`MCPServerStreamableHttp` の `tool_filter` に渡します。フルアクセス用には `allowed_tool_names=["read_file", "write_file", "delete_file", "search_docs"]` と設定します。同じ MCP サーバーでもエージェントの役割に応じて異なるツールセットを公開できます。 **動的フィルタで danger_ ツールを非表示にする** ロールに応じて危険なツールを動的に非表示にするパターンです。 `agents.mcp` から `ToolFilterContext` をインポートし、`role_based_filter` 関数を定義します。` が `"CodeReviewer"` で `"danger_")` の場合に `False` を返してツールを非表示にし、それ以外は `True` を返します。この関数を `MCPServerStreamableHttp` の `tool_filter` に渡すことで、ロールに応じた動的なツールフィルタリングが実現できます。 **get_prompt で MCP サーバーから動的指示を取得** MCP サーバーが提供するプロンプトを取得して、エージェントの指示を動的に構成します。 `MCPServerStreamableHttp` を作成し、`async with mcp:` のコンテキスト内で `prompt_result = await mcp.get_prompt("operation_guidelines")` を呼び出して MCP サーバーからプロンプトを取得します(第2引数に `{"focus": "..."}` のような引数辞書も渡せます)。取得した `prompt_result.messages[0].content.text` を `Agent` の `instructions` に埋め込むことで、エージェントの指示を動的に構成できます。 **cache_tools_list でレイテンシを改善** ツール一覧の取得をキャッシュし、MCP サーバーへの不要なリクエストを減らします。 `MCPServerStreamableHttp` の `cache_tools_list=True` を設定すると、ツール一覧の取得結果がキャッシュされ、MCP サーバーへの不要なリクエストが削減されます。ツールが追加・変更された場合は `await mcp.invalidate_tools_cache()` でキャッシュをクリアします。 💡 ユースケース 🔒 create_static_tool_filter で read_file/write_file のみ許可し、最小権限の原則を実現 🎭 動的フィルタで CodeReviewer には danger_ ツールを非表示にし、ロール別のアクセス制御 📜 get_prompt で MCP サーバーから最新の運用ガイドラインを取得し、エージェントの指示を動的に更新 ⚡ cache_tools_list=True でツール一覧キャッシュを有効化し、繰り返しのツール取得レイテンシを削減 ⚠️ 注意点 - 静的フィルタの `allowed_tool_names` はツール名のタイプミスに注意してください。存在しないツール名を指定してもエラーにならず、単にフィルタされないだけです。 - 動的フィルタは毎回のツール一覧取得時に実行されるため、重い処理を入れるとレイテンシに影響します。 - `cache_tools_list=True` 使用時にツールが追加・変更された場合、`invalidate_tools_cache()` を呼ばないと古い一覧が使われ続けます。 ✨ フィルタ・プロンプト・キャッシュの3つを組み合わせれば、MCP ツールの安全性・柔軟性・パフォーマンスを同時に向上できます。まずは静的フィルタで権限を絞り、必要に応じて動的フィルタやキャッシュを導入していきましょう! #OpenAIAgentSDK# #AIAgent#
もっと見る
# OpenAI Agent SDKの便利だけど知られていない機能 🌍 MCPサーバーが大量のツールを公開しているとき、エージェントに全部見せていませんか? ツールフィルタリングを使えば、静的・動的にツールの公開範囲を制御し、エージェントの精度とセキュリティを向上できます。 📌 タイトル:ツールフィルタリング (静的 / 動的) 🔗 URL: 🧩 概要 MCPサーバーが多数のツールを提供する場合、すべてをエージェントに公開するとモデルが混乱したり、意図しないツールを呼んでしまうリスクがあります。`tool_filter` パラメータを使えば、静的フィルタ(`create_static_tool_filter`)で許可リスト/ブロックリストを指定するか、動的フィルタ(同期または非同期の関数)で実行時コンテキストに応じてツールの可否を判定できます。`allowed_tool_names` と `blocked_tool_names` を両方指定した場合は、許可リストを適用した後にブロックリストを差し引きます。 🛠 使い方 ```python from agents.mcp import MCPServerStreamableHttp, create_static_tool_filter # 静的フィルタ:許可するツール名を明示 server = MCPServerStreamableHttp( params={"url": ""}, tool_filter=create_static_tool_filter( allowed_tool_names=["search", "summarize"] ), ) # 動的フィルタ:実行時にコンテキストで判定 async def my_filter(context, tool) -> bool: # context.agent, context.server_name が利用可能 if == "admin": return True # 管理者は全ツール利用可 return in ["search", "read"] server_dynamic = MCPServerStreamableHttp( params={"url": ""}, tool_filter=my_filter, ) ``` 🏗 本番システムへの組み込み方 ・ユーザーの権限レベルに応じて利用可能なツールを動的に切り替える ・静的フィルタで不要なツールを除外し、モデルのツール選択精度を高める ・` にテナント情報を渡し、マルチテナント環境でツールを分離する ・動的フィルタのログを残して、アクセス制御の監査証跡とする 💡 ユースケース 🔒 ロールベースのツールアクセス制御 🎯 タスク特化型エージェントへのツール絞り込み 🏢 マルチテナント環境でのツール分離 🛡 セキュリティポリシーに基づくツール制限 ⚠️ 注意点 動的フィルタはツール一覧取得のたびに呼ばれるため、重い処理(DB参照など)を入れるとレイテンシに影響します。フィルタのロジックはシンプルに保ち、必要ならキャッシュを活用してください。また、フィルタで除外したツールがエージェントの動作に必須でないか、事前に確認しましょう。 ✨ ツールフィルタリングで、エージェントに「必要なツールだけ」を渡す洗練された設計を実現しましょう。 #OpenAIAgentSDK# #AIAgent#
もっと見る
# OpenAI Agent SDKの便利で実践的な使い方 🌍 MCP サーバーを自分で立てなくても、OpenAI がホストする MCP ツールですぐに始められます。DeepWiki でリポジトリ調査、Google Calendar 連携まで、最小コードで実現しましょう。 Hosted MCP server tools は OpenAI 側で管理されるため、インフラ構築不要で MCP の力をエージェントに組み込めます。 📌 タイトル:MCP -- Hosted MCP server tools 🔗 URL: 🧩 概要 Hosted MCP server tools は、OpenAI がホストする MCP サーバーをエージェントのツールとして直接利用する仕組みです。`HostedMCPTool` クラスで接続先を指定するだけで、DeepWiki(リポジトリドキュメント検索)や Google Calendar などの外部サービスをツールとしてエージェントに提供できます。`require_approval` でツール実行前の承認フローを制御し、`on_approval_request` で自動承認と人間エスカレーションを組み合わせられます。 🛠 使い方 `agents` から `Agent`, `Runner`, `HostedMCPTool` をインポートします。`Agent` の `tools` に `HostedMCPTool` を渡し、`tool_config` で `type` を `"mcp"`、`server_label` を `"deepwiki"`、`server_url` を `""`、`require_approval` を `"never"` と指定します。` "openai/openai-agents-python の主要機能を教えて")` で実行し、` で結果を取得します。 🏗 実践的な使い方 **DeepWiki でリポジトリ調査を最小コードで実現** OSS のドキュメントを自分で読み込む必要なく、DeepWiki MCP 経由でリポジトリの構造や機能を調査できます。 `Agent` に `name="OSSAnalyzer"` と調査用の `instructions` を設定し、`tools` に `HostedMCPTool` を渡します。`tool_config` で `server_label="deepwiki"`、`server_url=""`、`require_approval="never"` を指定するだけで、OSS リポジトリの構造・機能を調査できるエージェントが完成します。 **require_approval + on_approval_request で安全な自動承認** 読み取り系は自動承認、書き込み系は人間にエスカレーションするパターンです。 `agents` から `HostedMCPTool` と `MCPToolApprovalRequest`、`MCPToolApprovalFunctionResult` をインポートします。`smart_approval(request: MCPToolApprovalRequest) -> MCPToolApprovalFunctionResult` を定義し、` が `{"read_file", "search", "list_events", "get_event"}` に含まれれば `{"approve": True}` を返して自動承認、それ以外は `ask_human_via_slack` で人間に確認し、却下時は `{"approve": False, "reason": "..."}` を返します。`HostedMCPTool` の `tool_config` で `require_approval="always"` を設定し、`on_approval_request=smart_approval` を渡すことで、読み取り系は自動承認・書き込み系は人間エスカレーションのフローが実現できます。 **connector_id で認証付きサービス接続** Google Calendar のような認証が必要なサービスには、connector_id と auth トークンを渡します。 `Agent` の `tools` に `HostedMCPTool` を渡し、`tool_config` で `server_label="google_calendar"` を指定します。コネクタを使う場合は `server_url` の代わりに `connector_id="connector_googlecalendar"` を指定し、認証は `authorization=os.environ["GOOGLE_CALENDAR_AUTHORIZATION"]` のようにアクセストークンを渡します。これにより、OAuth 認証付きの Google Calendar 連携エージェントを構築できます。 💡 ユースケース 🔍 DeepWiki + HostedMCPTool で OSS リポジトリの構造・機能を最小コードで調査 🛡 require_approval="always" + on_approval_request で読み取りは自動承認、書き込みは人間エスカレーション 📅 connector_id + OAuth トークンで Google Calendar 連携し、空き時間提案エージェントを構築 🤖 複数の Hosted MCP ツールを1つのエージェントに組み合わせてマルチサービス対応 ⚠️ 注意点 - Hosted MCP server は OpenAI 側でホストされるため、レイテンシはネットワーク状況に依存します。タイムアウト設定を適切に行いましょう。 - `require_approval="never"` は読み取り専用サービスにのみ使用し、書き込み可能なサービスでは必ず承認フローを設けてください。 - OAuth トークンの有効期限管理は自前で行う必要があります。リフレッシュトークンの仕組みを組み込みましょう。 ✨ Hosted MCP ツールなら、MCP サーバーのインフラを気にせず外部サービス連携を始められます。まずは DeepWiki でリポジトリ調査から試して、承認フローや認証連携を段階的に追加していきましょう! #OpenAIAgentSDK# #AIAgent#
もっと見る
# Claude Agent SDKの便利だけど知られていない機能 🌍 @tool デコレータと create_sdk_mcp_server で、独自の関数をエージェントのツールとしてインプロセスで実行できます。 データベースアクセス、外部API呼び出し、ドメイン固有のロジックをエージェントに提供する方法を解説します。 📌 タイトル:インプロセス・カスタムツール (create_sdk_mcp_server / @tool) 🔗 URL: 🧩 概要 カスタムツールは、SDK のインプロセス MCP サーバーを使って独自の関数を Claude から呼び出せるようにする機能です。Python では `@tool` デコレータ、TypeScript では `tool()` ヘルパーでツールを定義し、`create_sdk_mcp_server` でラップして `query()` に渡します。ツールはアプリケーションプロセス内で実行され、別プロセスは不要です。ツール名は `mcp__{server_name}__{tool_name}` の形式になります。`readOnlyHint` アノテーションで並列実行を有効にし、`isError` で復旧可能なエラーをエージェントに伝え、画像(base64)やリソースの返却も可能です。 🛠 使い方 `@tool` デコレータでツールを定義し、`create_sdk_mcp_server` でサーバーにまとめます。 ```python from typing import Any import httpx from claude_agent_sdk import tool, create_sdk_mcp_server, query, ClaudeAgentOptions, ResultMessage @tool( "get_temperature", "Get the current temperature at a location", {"latitude": float, "longitude": float}, ) async def get_temperature(args: dict[str, Any]) -> dict[str, Any]: async with httpx.AsyncClient() as client: response = await client.get( "", params={ "latitude": args["latitude"], "longitude": args["longitude"], "current": "temperature_2m", }, ) data = response.json() return { "content": [ {"type": "text", "text": f"Temperature: {data['current']['temperature_2m']}"} ] } # インプロセスMCPサーバーにラップ weather_server = create_sdk_mcp_server( name="weather", version="1.0.0", tools=[get_temperature], ) # query() に渡して使用 async for message in query( prompt="What's the temperature in Tokyo?", options=ClaudeAgentOptions( mcp_servers={"weather": weather_server}, allowed_tools=["mcp__weather__get_temperature"], ), ): if isinstance(message, ResultMessage) and message.subtype == "success": print(message.result) ``` 🏗 本番システムへの組み込み方 ・エラーハンドリングでは例外をスローせず `{"is_error": True}` を返すことで、エージェントループを継続させつつ Claude にリカバリーさせることができます ・`readOnlyHint=True` アノテーションを設定すると、副作用のないツールを他のリードオンリーツールと並列実行できます ・画像を返す場合は `{"type": "image", "data": base64_str, "mimeType": "image/png"}` 形式のコンテンツブロックを使用します ・`structuredContent` フィールドでツール結果を機械可読な JSON として返却できます(ただし Python の `@tool` では未サポート、スタンドアロン MCP サーバーが必要) 💡 ユースケース 🗄 データベースアクセス:エージェントに直接 DB クエリを実行させる 🌐 外部API連携:社内 API やサードパーティサービスをツールとして公開する 📊 データ可視化:グラフを生成し画像(base64)として返却する 🔧 ドメインロジック:計算、変換、バリデーションなど特定の業務ロジックをツール化する ⚠️ 注意点 ・Python の dict スキーマではすべてのキーが必須になります。オプションパラメータは schema に含めず、description で説明して `args.get()` で読み取ってください ・`structuredContent` は Python の `@tool` デコレータでは転送されません(スタンドアロン MCP サーバーを使用) ・ツール検索(tool search)はデフォルトで有効で、SDK MCP ツールのスキーマは必要になるまで遅延ロードされます。無効にすると `tools` 配列のすべてのツールが毎ターンのコンテキストを消費します ・アノテーションはメタデータであり強制力はありません。`readOnlyHint=True` でも handler が書き込みを行う場合があります ✨ インプロセスのカスタムツールにより、エージェントの能力を自由に拡張でき、外部プロセスの管理も不要です。 #ClaudeAgentSDK# #AIAgent#
もっと見る
# 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#
もっと見る
💡 Nutanix, Inc. $NTNX Q4 FY2026決算 2026-08-26 💰 今四半期業績 - 🟢 EPS:$0.60 (予想$0.49) - 🟢 売上高:$757.1M (予想$738.27M) 📊 重要指標 - 🟢 ARR(年間経常収益):$2.55B (YoY+16%) - 🟢 Non-GAAP営業利益率:26.2% (YoY+790bps) - 🟢 Non-GAAP営業利益:$198.0M (YoY+66%) - 🟢 フリーキャッシュフロー:$277.6M (Est. $198M) (YoY+34%) - 🟢 サブスクリプション売上高:$719.1M (YoY+17%) - 🟢 残存パフォーマンス義務(RPO):$3.44B (YoY+28%) - ⚫️ 平均契約期間:3.3年 (前年同期3.2年) 📊 次四半期ガイダンス - 🟢 売上高:$760M (予想$755.97M) 📊 通年ガイダンス - 🟢 売上高:$3.21B (予想$3.2B) 📍決算内容の注目ポイント - FY2026通年でARRが前年比16%成長の$2.55Bに到達し、3,000社以上の新規顧客を獲得 - Non-GAAP営業利益率が26.2%と前年同期比790bps改善し、収益性が大幅に向上 - FY2027通年のFCFガイダンスを$850M-$950Mと提示し、キャッシュ創出力の持続的強化を示唆 - AMD、Lenovo、NetApp、NVIDIAとの新規・拡大パートナーシップ契約を締結し、AIインフラ基盤を強化 - MCP Server for NCP、Nutanix Enterprise AI (NAI) 2.8、Dell PowerStore対応など、AIおよびハイブリッドクラウド関連の製品イノベーションを加速 🤵‍♂️CEO (Rajiv Ramaswami) コメント 「第4四半期はFY2026の力強い締めくくりとなり、トップラインとボトムラインの両面で堅調な業績を達成し、3,000社以上の新規顧客を獲得しました。FY2026ではパートナーシップにおいて良好な進展があり、AMD、Lenovo、NetApp、NVIDIAとの新規または強化された契約を締結しました。また、特にAIと外部ストレージサポートの拡充に関して、クラウドプラットフォーム全体でイノベーションを推進しました。」 🤵‍♂️CFO (Rukmini Sivaraman) コメント 「FY2026の業績は、前年比16%のARR成長と強力なフリーキャッシュフロー創出により、トップラインとボトムラインのバランスの取れたパフォーマンスを実証しました。持続可能な成長と収益性の改善に引き続き注力してまいります。」 🔍 主要ファンダメンタルズ指標 - 時価総額: 17.68B - PER: 64.11 - Forward PER: 29.66 - PEG: 0.03 🎯市場評価 - 株価 (発表前): 📉$65.41 (-1.55%) - 株価 (発表後): 📈$68 (3.96%) - 決算前アナリスト目標株価: $66.22 ($84 ~ $47) C+ - 決算総合サプライズ率 (AI推定): 😊12.83% - 決算後目標株価 (AI推定): $70.88 🤖 決算まとめるくん(AI)コメント 「Nutanixの2026年度Q4決算は、EPSおよび売上高の双方でアナリスト予想を上回り、全ガイダンス指標でも予想を超過する好決算となりました。 Non-GAAP EPS $0.60はコンセンサス$0.49を約22%上回り、売上高$757.1Mも予想$738.27Mを2.6%上回りました。特筆すべきは、Non-GAAP営業利益率が26.2%と前年同期比790bps改善した点であり、SBC(株式報酬)やリストラ費用を除いた実質的な収益性の大幅な向上を示しています。 ARRは$2.55Bに達し前年比16%成長を維持、サブスクリプションモデルへの移行が着実に進展しています。RPO(残存パフォーマンス義務)が$3.44Bと前年比28%増加しており、将来の売上可視性も高まっています。FCFは$277.6Mと予想$198Mを大幅に上回り、キャッシュ創出力の強さが際立ちます。 FY2027ガイダンスでは、売上高$3.18B-$3.23B(コンセンサス$3.2B付近)、FCF $850M-$950Mと堅実な見通しを提示。Q1ガイダンスの売上高$755M-$765Mもコンセンサスを上回っています。 AMD、NVIDIA等との戦略的パートナーシップ強化やAI関連製品(NAI 2.8、MCP Server)の展開は、エンタープライズAIインフラ市場での競争力を高める要素です。一方、Altman Zスコア2.06やPiotroskiスコア6は財務健全性が改善途上であることを示唆しており、転換社債$1.35Bの負債も留意すべき点です。 決算発表後の時間外取引での株価上昇は、市場がこの好決算を素直に評価したものと考えられます。 評価は📈ポヨ」 🏢 Nutanix, Inc. 概要 - セクター: テクノロジー - 特徴: ハイブリッドクラウドおよびAIインフラストラクチャソフトウェアを提供するエンタープライズ向けプラットフォーム企業 🤘情報提供 Stock Slayer :
もっと見る