克劳德·科德
一个专业级的、基于MCP的Claude Code替代方案,采用C#构建,具备清晰的架构和企业级设计模式。
🎯 特点
核心能力
- MCP 集成支持可扩展工具的完整模型上下文协议
- 多种运输方式标准输入输出(Stdio)、HTTP 和 WebSocket 支持
- 特定语言服务器针对每种编程语言的专用MCP服务器
- 流式响应来自Claude的实时响应流
- 订阅认证使用您的Claude Pro/Max订阅,而不是API积分
- 专业建筑通过适当的抽象实现关注点的清晰分离
建筑亮点
- 清洁架构抽象、实现和命令行界面(CLI)层
- 依赖注入带有配置的完整DI(依赖注入)容器
- 现代C#。.NET 9,可空引用类型,文件作用域命名空间
- 企业模式适当的错误处理、日志记录和配置
- 性能优化全程使用异步/等待(Async/await),内存高效
🚀 快速入门
先决条件
- .NET 9 SDK
- Claude Pro/Max 订阅 或 Anthropic API 密钥
- MCP服务器(可选但建议使用)
安装
git clone https://github.com/CyberdineDevelopment/claude-code-sharp.git
cd claude-code-sharp
dotnet build认证
选择以下其中一种身份验证方法:
选项1:订阅登录(建议专业版/最大版用户使用)
# Login with your Claude Pro/Max subscription
dotnet run --project src/CyberdineDevelopment.ClaudeCode.CLI -- auth login
# Check authentication status
dotnet run --project src/CyberdineDevelopment.ClaudeCode.CLI -- auth status
# Logout when done
dotnet run --project src/CyberdineDevelopment.ClaudeCode.CLI -- auth logout选项2:API密钥(基于信用的使用)
环境变量:
export ANTHROPIC_API_KEY="your-anthropic-api-key-here"
# OR
export CLAUDECODE__ANTHROPIC__APIKEY="your-anthropic-api-key-here"配置文件: 复制 appsettings.example.json to appsettings.json 并更新:
{
"ClaudeCode": {
"Anthropic": {
"ApiKey": "your-anthropic-api-key-here"
}
}
}用户机密(开发用途):
dotnet user-secrets set "ClaudeCode:Anthropic:ApiKey" "your-api-key" --project src/CyberdineDevelopment.ClaudeCode.CLI使用方法
单条消息
dotnet run --project src/CyberdineDevelopment.ClaudeCode.CLI -- chat -m "Explain async/await in C#"互动聊天
dotnet run --project src/CyberdineDevelopment.ClaudeCode.CLI -- chat指定模型
dotnet run --project src/CyberdineDevelopment.ClaudeCode.CLI -- chat -m "Hello" --model claude-3-opus-20240229身份验证管理
# Login with subscription
dotnet run --project src/CyberdineDevelopment.ClaudeCode.CLI -- auth login
# Check auth status
dotnet run --project src/CyberdineDevelopment.ClaudeCode.CLI -- auth status
# Logout
dotnet run --project src/CyberdineDevelopment.ClaudeCode.CLI -- auth logout服务器管理
# List configured MCP servers
dotnet run --project src/CyberdineDevelopment.ClaudeCode.CLI -- server list
# Check server status
dotnet run --project src/CyberdineDevelopment.ClaudeCode.CLI -- server status查看配置
dotnet run --project src/CyberdineDevelopment.ClaudeCode.CLI -- config show🏗 建筑
项目结构
src/
├── CyberdineDevelopment.ClaudeCode.Abstractions/ # Core interfaces and contracts
├── CyberdineDevelopment.ClaudeCode.MCP/ # MCP protocol implementation
├── CyberdineDevelopment.ClaudeCode.Anthropic/ # Anthropic API client
└── CyberdineDevelopment.ClaudeCode.CLI/ # Command-line interface关键组件
抽象层
IMcpClient- MCP协议客户端合约IAnthropicClient- Anthropic API客户端协议IAuthenticationService- OAuth订阅认证- 传输抽象和数据传输对象(DTOs)
MCP 实施
- JSON-RPC 2.0 传输层
- 用于进程通信的标准I/O传输
- 全面支持MCP协议(工具、资源等)
Anthropic 客户端
- Anthropic API 的原生 HTTP 客户端
- 支持API密钥和订阅认证两种方式
- 基于认证方法的自动客户端选择
- 流式响应支持
- 适当的错误处理和重试逻辑
命令行界面 (CLI)
- System.CommandLine 集成
- 订阅登录的OAuth认证流程
- 配置管理
- 交互模式和批处理模式
🔧 配置
服务器配置
配置MCP服务器 appsettings.json:
{
"ClaudeCode": {
"Servers": {
"csharp-tools": {
"Name": "C# Development Tools",
"Description": "Tools for C# development",
"Command": "mcp-server-csharp",
"Arguments": ["--workspace", "."],
"AutoStart": true
}
}
}
}模型设置
{
"ClaudeCode": {
"DefaultModel": "claude-3-5-sonnet-20241022",
"MaxTokens": 4096,
"Temperature": 0.7
}
}🛠 开发
建筑
dotnet build运行测试(当实施时)
dotnet test出版
dotnet publish src/CyberdineDevelopment.ClaudeCode.CLI -c Release -r win-x64 --self-contained📝 MCP协议
此实现支持MCP版本2024-11-05,具备以下特性:
- 工具调用服务器提供的工具
- 资源读取服务器管理的资源
- 初始化适当的握手协议和能力协商
- 错误处理结构化的错误响应
- 流媒体播放实时双向通信
示例:MCP服务器集成
{
"filesystem": {
"Name": "File System Tools",
"Command": "npx",
"Arguments": ["@modelcontextprotocol/server-filesystem", "/path/to/workspace"],
"AutoStart": true
}
}🔒 安全
- API密钥通过配置安全存储
- MCP服务器的进程隔离
- 全程输入验证
- 没有硬编码的凭据
🚀 路线图
- \[ \] 完整的MCP服务器生命周期管理
- \[ \] 添加HTTP/WebSocket传输支持
- \[ \] 实现对话历史记录
- \[ \] 为自定义工具添加插件系统
- \[ \] 创建特定语言的MCP服务器模板
- \[ \] 添加全面的测试套件
- \[ \] 性能优化
- \[ \] Docker 容器化
🤝 贡献(或:参与贡献)
- 为仓库创建分支(或:克隆仓库)
- 创建一个特性分支
- 做出你的更改
- 为新功能添加测试
- 提交一个拉取请求
📄 许可证
此项目采用MIT许可证授权——详情请参阅LICENSE文件。
🙏 致谢
- Anthropic(注:此处“Anthropic”是一个公司或组织的名称,直接翻译为中文即为“人类中心的”或保持原样作为专有名词,具体翻译需根据上下文或品牌宣传语来确定,若作为公司名,可译为“安萨特利普”或根据官方中文译名确定) 用于Claude API
- 模型上下文协议 规范;规格说明
- System.CommandLine 用于CLI框架
______________________________________________________________________
注:这是一个独立的实现,并不属于Anthropic官方的Claude代码项目。
