
Claude を NuGet で導入|公式 Anthropic SDK の C# 使い方
C# / .NET のプロジェクトに Claude を組み込みたいとき、最初に探すのが NuGet パッケージです。Anthropic は公式の C# SDK を NuGet で Anthropic という名前で配布しており、dotnet add package Anthropic 一発で導入できます。本記事では Anthropic 公式 C# SDK ドキュメントと NuGet ギャラリーの情報を土台に、導入コマンド・最小コード・API キー設定・ストリーミング・IChatClient 連携、そして「バージョン 3.X 以下は実は別物だった」という重要な注意点まで、NuGet 経路に特化して整理しました。
C# / .NET から Claude を呼ぶ公式 SDK は NuGet パッケージ Anthropic で、dotnet add package Anthropic で導入できます。.NET Standard 2.0 以降で動作し、現在はベータ版(バージョン 10 以降が公式)です。
最大の落とし穴は バージョン 3.X 以下が別物だった点です。3.X 以下は tryAGI コミュニティ製 SDK で、現在は tryAGI.Anthropic に移管されています。旧クライアントを使い続けたい場合は参照先をそちらへ変更してください。
最小コードは AnthropicClient client = new(); で生成し、client.Messages.Create() にメッセージを渡すだけ。API キーは ANTHROPIC_API_KEY 環境変数から自動取得され、Microsoft.Extensions.AI の IChatClient 経由で MCP ツールとも連携できます。
目次 (10)
- Claude は NuGet から .NET で使える — 公式パッケージは「Anthropic」
- 注意:バージョン 3.X 以下は別物 — 旧版は tryAGI.Anthropic へ
- インストール手順 — dotnet add package Anthropic
- 最小コード — AnthropicClient でメッセージを送る
- API キー設定 — 環境変数と手動指定
- ストリーミング応答 — CreateStreaming と IAsyncEnumerable
- IChatClient 連携 — Microsoft.Extensions.AI と MCP
- エラー処理・リトライ・タイムアウト
- クラウド経由で使う — Bedrock / Vertex / Foundry
- 公式 Anthropic とコミュニティ Anthropic.SDK の違い
Claude は NuGet から .NET で使える — 公式パッケージは「Anthropic」
C# / .NET アプリケーションから Claude を呼び出す公式ルートは、NuGet パッケージ Anthropic です。Anthropic 公式が「バージョン 10 以降の Anthropic パッケージが C# 向けの公式 SDK である」と明記しており、Anthropic REST API へ C# から手軽にアクセスできます出典。
NuGet ギャラリー上の Anthropic パッケージは累計ダウンロード 150 万超、ライセンスは MIT、メンテナは Anthropic 公式アカウントで、ターゲットは .NET Standard 2.0 と .NET 8.0(net9.0 まで互換)です出典。.NET Framework から最新の .NET まで幅広くカバーするため、レガシー資産を抱えた業務システムにも組み込みやすいのが特徴です。
ただし現時点では ベータ版で、マイナー / パッチ更新でも破壊的変更が入る可能性があります。本番投入する場合はバージョンを固定し、アップグレード時にリリースノートを確認する運用が安全です。
注意:バージョン 3.X 以下は別物 — 旧版は tryAGI.Anthropic へ
NuGet で Anthropic を検索する前に、必ず知っておくべき罠があります。バージョン 3.X 以下の Anthropic パッケージは、公式 SDK ではなく tryAGI というコミュニティが作っていた別物でした出典。
現在 tryAGI 版は tryAGI.Anthropic という別パッケージに移管されています。整理すると以下のとおりです。
Anthropic(バージョン 10 以降): Anthropic 公式の C# SDK。新規プロジェクトはこちらAnthropic(バージョン 3.X 以下): かつての tryAGI コミュニティ版。すでに役割を終えているtryAGI.Anthropic: 旧 tryAGI 版の移管先。既存コードで使い続けたい場合のみ参照変更
古い記事やサンプルを見て Anthropic の 3.X を入れてしまうと、公式 SDK とは API が全く異なるため動きません。NuGet で導入する際は バージョン 10 以降(執筆時点の最新は 12 系) を明示するか、@latest 相当でインストールしてください。
インストール手順 — dotnet add package Anthropic
導入はワンライナーです。プロジェクトのルートで以下を実行します出典。
dotnet add package Anthropic
バージョンを固定したい場合は明示します(NuGet ギャラリー記載の形式)出典。
dotnet add package Anthropic --version 12.24.1
導入後の確認は次の順序で進めると確実です。
dotnet add package Anthropicでパッケージを追加する.csprojのPackageReferenceにバージョンが入ったことを確認するANTHROPIC_API_KEY環境変数を設定する(後述)dotnet buildでビルドが通ることを確認する- サンプルコードを実行して応答が返るかを試す
要件は .NET Standard 2.0 以降のみで、特別なネイティブ依存はありません。Visual Studio の NuGet パッケージマネージャー UI から Anthropic を検索して追加しても同じ結果になりますが、その際もバージョン 10 以降を選んでいるか必ず確認してください。
最小コード — AnthropicClient でメッセージを送る
導入できたら、最小構成は数行です出典。
using System;
using Anthropic;
using Anthropic.Models.Messages;
AnthropicClient client = new();
MessageCreateParams parameters = new()
{
MaxTokens = 1024,
Messages =
[
new()
{
Role = Role.User,
Content = "Hello, Claude",
},
],
Model = Model.ClaudeOpus4_8,
};
var message = await client.Messages.Create(parameters);
Console.WriteLine(message);
ポイントは 3 つです。AnthropicClient を引数なしで生成すると環境変数から設定を読み込みます。リクエストは MessageCreateParams を組み立てて client.Messages.Create() に渡すだけで、戻り値は Task<Message> です。モデルは Model.ClaudeOpus4_8 のように型付き定数で指定でき、最新の Claude Opus 4.8 を呼び出せます。
MaxTokens は必須項目なので忘れずに設定してください。会話を続ける場合は Messages 配列に過去のやり取りを Role.Assistant / Role.User で積み上げていきます。
API キー設定 — 環境変数と手動指定
認証は環境変数経由が基本です。AnthropicClient を引数なしで生成すると、ANTHROPIC_API_KEY / ANTHROPIC_AUTH_TOKEN / ANTHROPIC_BASE_URL を自動で読み込みます出典。
using Anthropic;
// ANTHROPIC_API_KEY などの環境変数から自動設定
AnthropicClient client = new();
CI / コンテナ環境などで明示的に渡したい場合はプロパティで設定します。
using Anthropic;
AnthropicClient client = new() { ApiKey = "my-anthropic-api-key" };
設定項目は ApiKey(環境変数 ANTHROPIC_API_KEY)、AuthToken(ANTHROPIC_AUTH_TOKEN)、BaseUrl(ANTHROPIC_BASE_URL、既定は https://api.anthropic.com)の 3 つです。キーをソースコードへ直書きすると漏洩リスクがあるため、本番では環境変数または Secret マネージャー経由を徹底してください。
ストリーミング応答 — CreateStreaming と IAsyncEnumerable
チャット UI のようにトークンを逐次表示したい場合は、ストリーミング版メソッドを使います。メソッド名には必ず Streaming のサフィックスが付き、戻り値は IAsyncEnumerable です出典。
await foreach (var message in client.Messages.CreateStreaming(parameters))
{
Console.WriteLine(message);
}
await foreach で回すと、サーバーから届いたチャンクを 1 つずつ受け取れます。完全な応答を待たずに描画を始められるため、体感速度が大きく改善します。SSE(Server-Sent Events)ベースの実装なので、Web API でそのままクライアントへ中継する構成とも相性が良好です。
IChatClient 連携 — Microsoft.Extensions.AI と MCP
公式 SDK は Microsoft.Extensions.AI.Abstractions の IChatClient インターフェースを実装しています。これにより、.NET 標準の AI 抽象化レイヤーに乗せた汎用コードから Claude を呼べます出典。
using Anthropic;
using Microsoft.Extensions.AI;
AnthropicClient client = new();
IChatClient chatClient = client.AsIChatClient("claude-opus-4-8")
.AsBuilder()
.UseFunctionInvocation()
.Build();
IChatClient として扱えると、Model Context Protocol(MCP)C# SDK(ModelContextProtocol)のツールを直接組み合わせられます。たとえば外部の MCP サーバーが公開するツール群を ChatOptions.Tools に渡し、UseFunctionInvocation() で関数呼び出しを自動化する、といった構成が標準部品だけで完成します。プロバイダーを差し替えても呼び出し側コードを変えずに済むのが、この抽象化の最大の利点です。
エラー処理・リトライ・タイムアウト
公式 SDK は HTTP ステータスごとに専用例外を投げます。基底クラスは AnthropicApiException で、401 なら AnthropicUnauthorizedException、429 なら AnthropicRateLimitException、5xx なら Anthropic5xxException といった具合に分岐します出典。4xx 系はすべて Anthropic4xxException を継承するため、まとめて捕捉することも可能です。
リトライは既定で 2 回、短い指数バックオフ付きで自動実行されます。対象は接続エラー・408・409・429・5xx です。回数を変えたい場合はクライアント設定で指定します。
using Anthropic;
AnthropicClient client = new() { MaxRetries = 3 };
タイムアウトの既定値は 10 分です。長時間のストリーミングや重い生成を扱わない通常用途では、短めに設定して早期に失敗を検知する方が運用しやすいケースもあります。
using System;
using Anthropic;
AnthropicClient client = new() { Timeout = TimeSpan.FromSeconds(42) };
クラウド経由で使う — Bedrock / Vertex / Foundry
Anthropic API を直接叩くだけでなく、クラウドプラットフォーム経由で Claude を使う場合は、用途別の NuGet パッケージが分かれています出典。
- Amazon Bedrock:
Anthropic.Bedrock(新規はAnthropicBedrockMantleClientを推奨) - Google Vertex AI:
Anthropic.Vertex - Microsoft Foundry:
Anthropic.Foundry(AnthropicFoundryClientを使用) - Claude Platform on AWS:
Anthropic.Aws(AnthropicAwsClient、ベータ)
すでに AWS / Google Cloud / Azure 上に基盤を持つ企業は、これらのパッケージを使うことで認証・課金・データ所在を既存のクラウド契約に統合できます。コア API は同じ Messages.Create の形を踏襲するため、直接 API 版から移行する際の学習コストも小さく済みます。
公式 Anthropic とコミュニティ Anthropic.SDK の違い
NuGet には公式 Anthropic のほかに、Anthropic.SDK というコミュニティ製パッケージも存在します。こちらは Anthropic とは無関係の有志が開発する非公式クライアントで、Claude API を C# から扱いやすくする独自の API 設計を持っています出典。
両者の選び分けの目安は以下です。
- 新規プロジェクト: 公式
Anthropicを選ぶ。公式メンテでIChatClient連携も標準装備 - 既存の
Anthropic.SDK資産: 動いているなら無理に乗り換えず、必要に応じて移行を計画 - 旧 tryAGI 版(
Anthropic3.X 以下)を使っていた:tryAGI.Anthropicへ参照変更
公式版は現在ベータのため API が変わる可能性がありますが、IChatClient を通じた .NET エコシステムとの統合や、Bedrock / Vertex / Foundry への展開を見据えるなら公式 Anthropic が第一候補です。導入は dotnet add package Anthropic のワンライナーから始められるので、まずは最小コードで応答を確認し、そこからストリーミングやツール連携へ広げていくのがおすすめです出典。