Token导航 LogoToken导航TokenDH.com
Claude Agent SDK Dotnet logo
开发工具未说明官方级别未说明来源级核验

Claude Agent SDK Dotnet

MCP Server

一个用于与Claude Code CLI交互的现代.NET库,提供简单的单次查询API和完整的双向客户端控制协议支持。

工具数

0

提示词数

0

GitHub Stars

29

资源数

0
C#Claude跨平台Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

0xeb

提供方

0xeb

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

用于的Claude代理SDK。网

现代。NET库,用于与Claude Code CLI交互,提供简单的一次性操作 QueryAsync() API和完全双向客户端,支持控制协议。

![Platform](<>) ![.NET](<>) ![License](<>)

免责声明: 这是一个独立的、非官方的港口,与Anthropic、PBC无关或不受其认可。

特性

  • 简单 Claude.QueryAsync() 用于一次性请求的API
  • ClaudeSDKClient 用于多回合双向对话
  • 控制协议支持(中断、模式、动态模型切换)
  • 挂钩系统(PreToolUse、PostToolUse、UserPromptSubmit)
  • 具有允许/拒绝控制的工具权限回调
  • 过程中MCP服务器支持(工具、提示、资源)
  • 跨平台:Windows、Linux、macOS
  • 消息类型的源代码生成JSON模型
  • 测试良好:109个测试(90个单元+19个集成;默认情况下禁用集成测试)

先决条件

  • .NET 8.0或。净值9.0
  • 克劳德代码CLI>=2.0.0:
  npm install -g @anthropic-ai/claude-code

CLI路径解析

SDK按以下顺序发现Claude Code CLI:

  1. ClaudeAgentOptions.CliPath (显式路径)
  2. CLAUDE_CLI_PATH 环境变量
  3. PATH 搜索 claude (或 claude.cmd 在Windows上)

快速开始

单次查询

using Claude.AgentSdk;

await foreach (var msg in Claude.QueryAsync("What is 2+2?"))
{
    if (msg is AssistantMessage am)
        foreach (var block in am.Content)
            if (block is TextBlock tb)
                Console.Write(tb.Text);
}

多回合对话

using Claude.AgentSdk;

await using var client = new ClaudeSDKClient();
await client.ConnectAsync();

await client.QueryAsync("Write a Python hello world");

await foreach (var msg in client.ReceiveResponseAsync())
{
    if (msg is AssistantMessage am)
        foreach (var block in am.Content)
            if (block is TextBlock tb)
                Console.Write(tb.Text);
}

带选项

var options = Claude.Options()
    .SystemPrompt("You are a helpful coding assistant.")
    .MaxTurns(5)
    .Model("claude-sonnet-4-20250514")
    .AcceptEdits()
    .Build();

await foreach (var msg in Claude.QueryAsync("Explain async/await", options))
{
    // handle messages
}

工具权限回调

var options = Claude.Options()
    .CanUseTool(async (toolName, input, context, ct) =>
    {
        if (toolName == "Bash" && input.GetProperty("command").GetString()?.Contains("rm") == true)
            return new PermissionResultDeny("Destructive commands not allowed");
        return new PermissionResultAllow();
    })
    .Build();

钩子

var options = Claude.Options()
    .AllowTools("Bash")
    .Hooks(h => h
        .PreToolUse("Bash", (input, toolUseId, ctx, ct) =>
        {
            Console.WriteLine($"[Hook] Bash: {input}");
            return Task.FromResult(new HookOutput { Continue = true });
        }))
    .Build();

MCP工具(进行中)

using Claude.AgentSdk;
using Claude.AgentSdk.Mcp;

var options = Claude.Options()
    .McpServers(m => m.AddSdk("calculator", s => s
        .Tool("add", (double a, double b) => a + b, "Add two numbers")))
    .AllowAllTools()
    .Build();

自定义代理

var options = Claude.Options()
    .Agents(a => a
        .Add("reviewer", "Reviews code", "You are a code reviewer.", "Read", "Grep")
        .Add("writer", "Writes code", "You are a clean coder.", tools: ["Read", "Write"]))
    .Build();

沙盒配置

var options = Claude.Options()
    .Sandbox(s => s
        .Enable()
        .AutoAllowBash()
        .ExcludeCommands("rm", "sudo")
        .Network(n => n.AllowLocalBinding()))
    .Build();

配置

ClaudeAgentOptions 镜像Python SDK的选项:

属性类型描述
SystemPromptstring?自定义系统提示
MaxTurnsint?最大对话次数
MaxBudgetUsddecimal?美元支出限额
Modelstring?要使用的模型
FallbackModelstring?回退模型
PermissionModePermissionMode?默认值、接受编辑、绕过权限
McpServersobject?MCP服务器配置
CanUseToolCanUseToolCallback?工具权限回调
HooksIReadOnlyDictionary?事件挂钩
AllowedToolsIReadOnlyList白名单工具
DisallowedToolsIReadOnlyList黑名单工具
Cwdstring?工作目录
CliPathstring?显式CLI路径

消息类型

  • AssistantMessage -克劳德的回应 Content
  • UserMessage -用户输入
  • SystemMessage -系统通知
  • ResultMessage -查询完成,包含成本/工期信息

内容块

  • TextBlock -文本内容
  • ThinkingBlock -扩展思维(附签名)
  • ToolUseBlock -工具调用
  • ToolResultBlock -刀具输出

例子

examples/ 目录:

示例说明
BasicQuery简单的一次性查询
StreamingMode交互式双向客户端
SystemPrompt自定义系统提示
McpCalculator过程中MCP工具
McpPromptsMCP提示模板
Hooks前/后工具使用钩
ToolPermissionCallback权限控制
Agents代理配置
MaxBudget支出限额

状态和奇偶校验

  • 当前版本: 0.1.0
  • 状态: 预览(API和行为可能会更改)
  • 对等: 设计用于匹配Python-Claude Agent SDK API、行为和人体工程学
  • 测验: 109个测试(90个单元+19个集成;默认情况下禁用集成测试)

已知限制

  • control_cancel_request 当前被忽略(取消正在进行的控制请求尚未实现;与Python SDK TODO匹配)。

运行集成测试

集成测试需要一个可用的Claude Code CLI,默认情况下是禁用的。

  • 通过以下方式启用它们: CLAUDE_AGENT_SDK_RUN_INTEGRATION_TESTS=1 dotnet test

规范规则: 蟒蛇 claude-agent-sdk 是规范参考。这个。NET端口跟踪其行为和API。

安装

NuGet包(即将推出)

dotnet add package Claude.AgentSdk

来源

git clone https://github.com/anthropics/claude-agent-sdk-dotnet.git
cd claude-agent-sdk-dotnet
dotnet build

相关项目

项目语言描述
claude代理sdk pythonPython官方Python SDK(规范参考)
克劳德特工sdk-cpp具有全功能奇偶校验的C++C++端口

许可证

根据MIT许可证获得许可。看 LICENSE 了解详情。

这是一个。NET端口 claude代理sdk python 中国人民银行Anthropic。

支持

  • 问题:使用GitHub问题跟踪器
  • 示例:参见 examples/
  • 测试:见 tests/

目录标签

目录标签

C#Claude跨平台软件开发工具包本地部署人工智能交互多轮对话工具集成

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP