refactor: rename OpenHarbor.MCP to Svrnty.MCP across all libraries

- Renamed all directories: OpenHarbor.MCP.* → Svrnty.MCP.*
- Updated all namespaces in 179 C# files
- Renamed 20 .csproj files and 3 .sln files
- Updated 193 documentation references
- Updated 33 references in main CODEX codebase
- Updated Codex.sln with new paths
- Build verified: 0 errors

Preparing for extraction to standalone repositories.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Svrnty 2025-10-22 21:04:17 -04:00
parent d936ad7856
commit 97880406dc
28 changed files with 132 additions and 132 deletions

View File

@ -1,6 +1,6 @@
# AGENT-PRIMER: OpenHarbor.MCP.Client Automated Setup
# AGENT-PRIMER: Svrnty.MCP.Client Automated Setup
**Purpose**: This document guides AI agents to automatically analyze a target system and configure OpenHarbor.MCP.Client integration with minimal human intervention.
**Purpose**: This document guides AI agents to automatically analyze a target system and configure Svrnty.MCP.Client integration with minimal human intervention.
**Target Audience**: AI assistants (Claude, ChatGPT, etc.) helping developers integrate MCP client capabilities into .NET applications.
@ -8,7 +8,7 @@
## Overview
OpenHarbor.MCP.Client is a **standalone, reusable .NET library** that adds Model Context Protocol (MCP) client capabilities to any .NET application, allowing it to discover and call tools exposed by remote MCP servers. This primer enables AI-automated configuration by walking through system analysis, configuration generation, and validation.
Svrnty.MCP.Client is a **standalone, reusable .NET library** that adds Model Context Protocol (MCP) client capabilities to any .NET application, allowing it to discover and call tools exposed by remote MCP servers. This primer enables AI-automated configuration by walking through system analysis, configuration generation, and validation.
**What you'll automate:**
1. System analysis (detect .NET version, project type, dependencies)
@ -98,20 +98,20 @@ grep -r "IHostedService\|BackgroundService" --include="*.cs"
```xml
<ItemGroup>
<!-- Core MCP Client library -->
<ProjectReference Include="/path/to/OpenHarbor.MCP.Client.Core/OpenHarbor.MCP.Client.Core.csproj" />
<ProjectReference Include="/path/to/Svrnty.MCP.Client.Core/Svrnty.MCP.Client.Core.csproj" />
<!-- Infrastructure (transports, connection management) -->
<ProjectReference Include="/path/to/OpenHarbor.MCP.Client.Infrastructure/OpenHarbor.MCP.Client.Infrastructure.csproj" />
<ProjectReference Include="/path/to/Svrnty.MCP.Client.Infrastructure/Svrnty.MCP.Client.Infrastructure.csproj" />
<!-- ASP.NET Core integration (if applicable) -->
<ProjectReference Include="/path/to/OpenHarbor.MCP.Client.AspNetCore/OpenHarbor.MCP.Client.AspNetCore.csproj" />
<ProjectReference Include="/path/to/Svrnty.MCP.Client.AspNetCore/Svrnty.MCP.Client.AspNetCore.csproj" />
</ItemGroup>
```
**Note**: When OpenHarbor.MCP.Client is published to NuGet, replace with:
**Note**: When Svrnty.MCP.Client is published to NuGet, replace with:
```xml
<ItemGroup>
<PackageReference Include="OpenHarbor.MCP.Client.AspNetCore" Version="1.0.0" />
<PackageReference Include="Svrnty.MCP.Client.AspNetCore" Version="1.0.0" />
</ItemGroup>
```
@ -185,7 +185,7 @@ grep -r "IHostedService\|BackgroundService" --include="*.cs"
**For ASP.NET Core projects**:
```csharp
using OpenHarbor.MCP.Client.AspNetCore;
using Svrnty.MCP.Client.AspNetCore;
var builder = WebApplication.CreateBuilder(args);
@ -209,7 +209,7 @@ app.Run();
```csharp
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Configuration;
using OpenHarbor.MCP.Client.Infrastructure;
using Svrnty.MCP.Client.Infrastructure;
var config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
@ -241,8 +241,8 @@ Console.WriteLine($"Available tools: {string.Join(", ", tools.Select(t => t.Name
**If project has search/query capabilities**:
```csharp
using OpenHarbor.MCP.Client.Core.Abstractions;
using OpenHarbor.MCP.Client.Core.Models;
using Svrnty.MCP.Client.Core.Abstractions;
using Svrnty.MCP.Client.Core.Models;
namespace MyApp.Services;
@ -313,7 +313,7 @@ public class CodexSearchService : ICodexSearchService
**If project works with documents**:
```csharp
using OpenHarbor.MCP.Client.Core.Abstractions;
using Svrnty.MCP.Client.Core.Abstractions;
namespace MyApp.Services;
@ -378,7 +378,7 @@ public class DocumentService : IDocumentService
**For advanced scenarios (multiple MCP servers)**:
```csharp
using OpenHarbor.MCP.Client.Core.Abstractions;
using Svrnty.MCP.Client.Core.Abstractions;
namespace MyApp.Services;
@ -469,7 +469,7 @@ public class AggregationService : IAggregationService
```csharp
using Microsoft.Extensions.Diagnostics.HealthChecks;
using OpenHarbor.MCP.Client.Core.Abstractions;
using Svrnty.MCP.Client.Core.Abstractions;
namespace MyApp.HealthChecks;
@ -552,7 +552,7 @@ dotnet run --project /path/to/CodexMcpServer -- tools/list
```csharp
using Xunit;
using Microsoft.Extensions.DependencyInjection;
using OpenHarbor.MCP.Client.Core.Abstractions;
using Svrnty.MCP.Client.Core.Abstractions;
public class McpClientIntegrationTests
{
@ -608,7 +608,7 @@ public class McpClientIntegrationTests
**Generate summary report**:
```markdown
## OpenHarbor.MCP.Client Setup Complete
## Svrnty.MCP.Client Setup Complete
### Configuration Summary
- **Project Type**: ASP.NET Core Web API
@ -676,7 +676,7 @@ AI: I've analyzed your project. Here's what I found:
- Existing HTTP client setup
- Logging configured
I can set up OpenHarbor.MCP.Client to connect to:
I can set up Svrnty.MCP.Client to connect to:
1. Local CODEX server (Stdio)
2. Remote API server (HTTP)
@ -725,5 +725,5 @@ Next step: Run `dotnet run` to start.
**Document Version**: 1.0.0
**Last Updated**: 2025-10-19
**Target**: OpenHarbor.MCP.Client
**Target**: Svrnty.MCP.Client

View File

@ -1,4 +1,4 @@
# OpenHarbor.MCP.Client
# Svrnty.MCP.Client
**A modular, scalable, secure .NET library for consuming Model Context Protocol (MCP) servers**
@ -8,9 +8,9 @@
---
## What is OpenHarbor.MCP.Client?
## What is Svrnty.MCP.Client?
OpenHarbor.MCP.Client is a **standalone, reusable .NET library** that enables any .NET application to act as an MCP client, allowing your application to discover and call tools exposed by MCP servers.
Svrnty.MCP.Client is a **standalone, reusable .NET library** that enables any .NET application to act as an MCP client, allowing your application to discover and call tools exposed by MCP servers.
**Model Context Protocol (MCP)** is an industry-standard protocol backed by Anthropic that defines how AI agents communicate with external tools and data sources. Think of it as a universal adapter that lets your application safely access capabilities from remote MCP servers.
@ -26,11 +26,11 @@ OpenHarbor.MCP.Client is a **standalone, reusable .NET library** that enables an
---
## Why OpenHarbor.MCP.Client?
## Why Svrnty.MCP.Client?
**Problem**: Your .NET application needs to access tools and capabilities exposed by remote MCP servers (search, data processing, API access) but has no standardized way to connect.
**Solution**: OpenHarbor.MCP.Client transforms your application into an MCP client, allowing you to discover, validate, and call tools from any MCP server with proper error handling and connection management.
**Solution**: Svrnty.MCP.Client transforms your application into an MCP client, allowing you to discover, validate, and call tools from any MCP server with proper error handling and connection management.
**Use Cases**:
- Connect your app to Claude Desktop's exposed tools
@ -54,7 +54,7 @@ OpenHarbor.MCP.Client is a **standalone, reusable .NET library** that enables an
If you have access to Claude or another AI assistant:
1. Copy this entire folder to your project directory
2. Open your AI assistant and say: "Read AGENT-PRIMER.md and set up OpenHarbor.MCP.Client for my project"
2. Open your AI assistant and say: "Read AGENT-PRIMER.md and set up Svrnty.MCP.Client for my project"
3. The AI will analyze your system, generate configuration, and create sample client code automatically
### Option 2: Manual Setup
@ -63,10 +63,10 @@ If you have access to Claude or another AI assistant:
```bash
# Via project reference (development)
dotnet add reference /path/to/OpenHarbor.MCP.Client/src/OpenHarbor.MCP.Client.AspNetCore/OpenHarbor.MCP.Client.AspNetCore.csproj
dotnet add reference /path/to/Svrnty.MCP.Client/src/Svrnty.MCP.Client.AspNetCore/Svrnty.MCP.Client.AspNetCore.csproj
# OR via NuGet (when published)
# dotnet add package OpenHarbor.MCP.Client.AspNetCore
# dotnet add package Svrnty.MCP.Client.AspNetCore
```
#### Step 2: Configure appsettings.json
@ -113,7 +113,7 @@ Add MCP client configuration:
#### Step 3: Update Program.cs
```csharp
using OpenHarbor.MCP.Client.AspNetCore;
using Svrnty.MCP.Client.AspNetCore;
var builder = WebApplication.CreateBuilder(args);
@ -128,7 +128,7 @@ app.Run();
#### Step 4: Use the Client to Call Tools
```csharp
using OpenHarbor.MCP.Client.Core.Abstractions;
using Svrnty.MCP.Client.Core.Abstractions;
public class MyService
{
@ -198,17 +198,17 @@ Note: HTTP transport is recommended for production with remote servers, load bal
## Architecture
OpenHarbor.MCP.Client follows **Clean Architecture** principles:
Svrnty.MCP.Client follows **Clean Architecture** principles:
```
┌─────────────────────────────────────────────────┐
OpenHarbor.MCP.Client.Cli (Executable) │
Svrnty.MCP.Client.Cli (Executable) │
│ ┌───────────────────────────────────────────┐ │
│ │ OpenHarbor.MCP.Client.AspNetCore (DI) │ │
│ │ Svrnty.MCP.Client.AspNetCore (DI) │ │
│ │ ┌─────────────────────────────────────┐ │ │
│ │ │ OpenHarbor.MCP.Client.Infrastructure│ │ │
│ │ │ Svrnty.MCP.Client.Infrastructure│ │ │
│ │ │ ┌───────────────────────────────┐ │ │ │
│ │ │ │ OpenHarbor.MCP.Client.Core │ │ │ │
│ │ │ │ Svrnty.MCP.Client.Core │ │ │ │
│ │ │ │ - IMcpClient │ │ │ │
│ │ │ │ - IMcpServerConnection │ │ │ │
│ │ │ │ - IConnectionPool │ │ │ │
@ -223,10 +223,10 @@ OpenHarbor.MCP.Client follows **Clean Architecture** principles:
| Project | Purpose | Dependencies |
|---------|---------|--------------|
| **OpenHarbor.MCP.Client.Core** | Abstractions, interfaces, models | None |
| **OpenHarbor.MCP.Client.Infrastructure** | MCP client implementation, transports, connection management | Core, System.Text.Json |
| **OpenHarbor.MCP.Client.AspNetCore** | ASP.NET Core integration, DI extensions | Core, Infrastructure, ASP.NET Core |
| **OpenHarbor.MCP.Client.Cli** | Standalone CLI executable | All above |
| **Svrnty.MCP.Client.Core** | Abstractions, interfaces, models | None |
| **Svrnty.MCP.Client.Infrastructure** | MCP client implementation, transports, connection management | Core, System.Text.Json |
| **Svrnty.MCP.Client.AspNetCore** | ASP.NET Core integration, DI extensions | Core, Infrastructure, ASP.NET Core |
| **Svrnty.MCP.Client.Cli** | Standalone CLI executable | All above |
See [Architecture Documentation](docs/architecture.md) for detailed design.
@ -251,12 +251,12 @@ samples/CodexMcpClient/
**Running the sample**:
```bash
# Terminal 1: Start CODEX MCP Server
cd /path/to/OpenHarbor.MCP.Server/samples/CodexMcpServer
cd /path/to/Svrnty.MCP.Server/samples/CodexMcpServer
dotnet run
# Server listens on http://localhost:5050
# Terminal 2: Run client commands
cd /path/to/OpenHarbor.MCP.Client/samples/CodexMcpClient
cd /path/to/Svrnty.MCP.Client/samples/CodexMcpClient
dotnet run -- search "architecture patterns"
dotnet run -- get-document <id>
dotnet run -- list-tags
@ -347,7 +347,7 @@ public class ResilientMcpService
### Connection Pooling
OpenHarbor.MCP.Client includes connection pooling for efficient resource usage:
Svrnty.MCP.Client includes connection pooling for efficient resource usage:
```json
{
@ -424,7 +424,7 @@ public class ServerHealthService
dotnet test
# Run specific test project
dotnet test tests/OpenHarbor.MCP.Client.Tests/
dotnet test tests/Svrnty.MCP.Client.Tests/
# Run with coverage
dotnet test /p:CollectCoverage=true
@ -461,13 +461,13 @@ public async Task Client_CanCallMockServerTool()
### Test Coverage
OpenHarbor.MCP.Client maintains **88.52% line coverage** and **75.58% branch coverage** with **60 tests** passing (100%).
Svrnty.MCP.Client maintains **88.52% line coverage** and **75.58% branch coverage** with **60 tests** passing (100%).
**Coverage Breakdown:**
- **Lines**: 88.52% (excellent)
- **Branches**: 75.58% (excellent)
- **Test Projects**: 1
- OpenHarbor.MCP.Client.Core.Tests: 60 tests
- Svrnty.MCP.Client.Core.Tests: 60 tests
- HTTP client connection tests: 20 tests
- Configuration validation tests
- Error handling and retry logic
@ -505,11 +505,11 @@ dotnet test --collect:"XPlat Code Coverage" --results-directory ./TestResults
## Related Modules
OpenHarbor.MCP is a family of three complementary modules:
Svrnty.MCP is a family of three complementary modules:
- **[OpenHarbor.MCP.Server](../OpenHarbor.MCP.Server/)** - Server library (expose tools TO AI agents)
- **[OpenHarbor.MCP.Client](../OpenHarbor.MCP.Client/)** - Client library (call tools FROM servers) ← You are here
- **[OpenHarbor.MCP.Gateway](../OpenHarbor.MCP.Gateway/)** - Gateway/proxy (route between clients and servers)
- **[Svrnty.MCP.Server](../Svrnty.MCP.Server/)** - Server library (expose tools TO AI agents)
- **[Svrnty.MCP.Client](../Svrnty.MCP.Client/)** - Client library (call tools FROM servers) ← You are here
- **[Svrnty.MCP.Gateway](../Svrnty.MCP.Gateway/)** - Gateway/proxy (route between clients and servers)
All three modules share:
- Same Clean Architecture pattern
@ -537,7 +537,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
## Support
- **Issues**: [GitHub Issues](https://github.com/svrnty/openharbor-mcp/issues)
- **Issues**: [GitHub Issues](https://github.com/svrnty/svrnty-mcp/issues)
- **Email**: info@svrnty.io
- **Documentation**: [docs/](docs/)

View File

@ -5,17 +5,17 @@ VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E904DDFC-C3F6-4EAE-AB7E-7F614C1C662F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenHarbor.MCP.Client.Core", "src\OpenHarbor.MCP.Client.Core\OpenHarbor.MCP.Client.Core.csproj", "{A3C66348-0828-4CED-91F3-05795EA08980}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Svrnty.MCP.Client.Core", "src\Svrnty.MCP.Client.Core\Svrnty.MCP.Client.Core.csproj", "{A3C66348-0828-4CED-91F3-05795EA08980}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenHarbor.MCP.Client.Infrastructure", "src\OpenHarbor.MCP.Client.Infrastructure\OpenHarbor.MCP.Client.Infrastructure.csproj", "{4DA27898-6260-453D-84B1-988A819C2DDF}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Svrnty.MCP.Client.Infrastructure", "src\Svrnty.MCP.Client.Infrastructure\Svrnty.MCP.Client.Infrastructure.csproj", "{4DA27898-6260-453D-84B1-988A819C2DDF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenHarbor.MCP.Client.AspNetCore", "src\OpenHarbor.MCP.Client.AspNetCore\OpenHarbor.MCP.Client.AspNetCore.csproj", "{19DBBC27-12C5-4C71-92EF-878BDE17623D}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Svrnty.MCP.Client.AspNetCore", "src\Svrnty.MCP.Client.AspNetCore\Svrnty.MCP.Client.AspNetCore.csproj", "{19DBBC27-12C5-4C71-92EF-878BDE17623D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenHarbor.MCP.Client.Cli", "src\OpenHarbor.MCP.Client.Cli\OpenHarbor.MCP.Client.Cli.csproj", "{CC389D08-C75B-4470-99ED-0DF950F06911}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Svrnty.MCP.Client.Cli", "src\Svrnty.MCP.Client.Cli\Svrnty.MCP.Client.Cli.csproj", "{CC389D08-C75B-4470-99ED-0DF950F06911}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{060C6815-5503-4079-9FB1-A320A70D96AB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenHarbor.MCP.Client.Core.Tests", "tests\OpenHarbor.MCP.Client.Core.Tests\OpenHarbor.MCP.Client.Core.Tests.csproj", "{CB3A7DFF-B9E6-438D-AD69-FB54475006C5}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Svrnty.MCP.Client.Core.Tests", "tests\Svrnty.MCP.Client.Core.Tests\Svrnty.MCP.Client.Core.Tests.csproj", "{CB3A7DFF-B9E6-438D-AD69-FB54475006C5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{E8A5472E-AE28-4583-B7BB-7E68A62A0C7D}"
EndProject

View File

@ -1,4 +1,4 @@
# OpenHarbor.MCP.Client - API Reference
# Svrnty.MCP.Client - API Reference
**Version:** 1.0.0
**Last Updated:** 2025-10-19
@ -28,7 +28,7 @@
### IMcpClient
**Namespace:** `OpenHarbor.MCP.Client.Core.Abstractions`
**Namespace:** `Svrnty.MCP.Client.Core.Abstractions`
Interface defining the MCP client contract for consuming MCP servers.
@ -183,7 +183,7 @@ await client.DisconnectFromServerAsync("codex-server");
### IMcpServerConnection
**Namespace:** `OpenHarbor.MCP.Client.Core.Abstractions`
**Namespace:** `Svrnty.MCP.Client.Core.Abstractions`
Interface representing a connection to a single MCP server.
@ -249,7 +249,7 @@ var response = await connection.SendRequestAsync(request);
### McpClient
**Namespace:** `OpenHarbor.MCP.Client.Infrastructure`
**Namespace:** `Svrnty.MCP.Client.Infrastructure`
Default implementation of `IMcpClient`.
@ -296,7 +296,7 @@ client.RetryBackoff = RetryBackoffStrategy.Exponential;
### HttpServerConnection
**Namespace:** `OpenHarbor.MCP.Client.Infrastructure.Transports`
**Namespace:** `Svrnty.MCP.Client.Infrastructure.Transports`
HTTP-based implementation of `IMcpServerConnection`.
@ -346,7 +346,7 @@ public class HttpServerConnectionConfig : ServerConnectionConfig
### ServerConnectionConfig
**Namespace:** `OpenHarbor.MCP.Client.Core.Models`
**Namespace:** `Svrnty.MCP.Client.Core.Models`
Base configuration for server connections.
@ -382,7 +382,7 @@ var config = new ServerConnectionConfig
### McpToolInfo
**Namespace:** `OpenHarbor.MCP.Client.Core.Models`
**Namespace:** `Svrnty.MCP.Client.Core.Models`
Metadata about an available tool.
@ -412,7 +412,7 @@ var toolInfo = new McpToolInfo
### McpToolResult
**Namespace:** `OpenHarbor.MCP.Client.Core.Models`
**Namespace:** `Svrnty.MCP.Client.Core.Models`
Result of a tool execution.
@ -449,7 +449,7 @@ else
### Service Extensions
**Namespace:** `OpenHarbor.MCP.Client.AspNetCore`
**Namespace:** `Svrnty.MCP.Client.AspNetCore`
#### AddMcpClient
@ -618,8 +618,8 @@ catch (McpException ex)
### Console Application
```csharp
using OpenHarbor.MCP.Client.Core;
using OpenHarbor.MCP.Client.Infrastructure;
using Svrnty.MCP.Client.Core;
using Svrnty.MCP.Client.Infrastructure;
class Program
{

View File

@ -1,4 +1,4 @@
# HTTPS/TLS Setup Guide - OpenHarbor.MCP.Client
# HTTPS/TLS Setup Guide - Svrnty.MCP.Client
**Purpose**: Secure HTTPS/TLS configuration for MCP client connections
**Audience**: Application developers, system integrators
@ -22,7 +22,7 @@
## Overview
OpenHarbor.MCP.Client supports HTTPS connections to MCP servers with full TLS certificate validation, custom certificate handling, and API key authentication.
Svrnty.MCP.Client supports HTTPS connections to MCP servers with full TLS certificate validation, custom certificate handling, and API key authentication.
**Security Features:**
- Encrypted communication (TLS 1.2+)
@ -60,7 +60,7 @@ OpenHarbor.MCP.Client supports HTTPS connections to MCP servers with full TLS ce
**Example 1: Simple HTTPS Client**
```csharp
using OpenHarbor.MCP.Client;
using Svrnty.MCP.Client;
// Connect to HTTPS server
var config = new HttpServerConnectionConfig
@ -668,7 +668,7 @@ Before deploying to production:
## References
**OpenHarbor.MCP Documentation:**
**Svrnty.MCP Documentation:**
- [Client README](../../README.md)
- [API Reference](../../docs/api/client-api.md)
- [Integration Guide](../../docs/integration-guide.md)
@ -687,4 +687,4 @@ Before deploying to production:
**Document Version**: 1.0.0
**Last Updated**: 2025-10-19
**Maintained By**: Svrnty Development Team
**Related**: [Server HTTPS Setup](../../OpenHarbor.MCP.Server/docs/deployment/https-setup.md)
**Related**: [Server HTTPS Setup](../../Svrnty.MCP.Server/docs/deployment/https-setup.md)

View File

@ -1,4 +1,4 @@
# OpenHarbor.MCP.Client - Implementation Plan
# Svrnty.MCP.Client - Implementation Plan
**Document Type:** Implementation Roadmap
**Status:** Planned
@ -9,7 +9,7 @@
## Overview
This document outlines the phased implementation plan for OpenHarbor.MCP.Client, following TDD principles and Clean Architecture.
This document outlines the phased implementation plan for Svrnty.MCP.Client, following TDD principles and Clean Architecture.
### Goals

View File

@ -1,4 +1,4 @@
# OpenHarbor.MCP.Client - Module Design
# Svrnty.MCP.Client - Module Design
**Document Type:** Architecture Design Document
**Status:** Planned
@ -9,7 +9,7 @@
## Overview
OpenHarbor.MCP.Client is a .NET 8 library that enables applications to act as MCP clients, consuming tools exposed by remote MCP servers. This document defines the architecture, components, and design decisions.
Svrnty.MCP.Client is a .NET 8 library that enables applications to act as MCP clients, consuming tools exposed by remote MCP servers. This document defines the architecture, components, and design decisions.
### Purpose
@ -25,13 +25,13 @@ OpenHarbor.MCP.Client is a .NET 8 library that enables applications to act as MC
```
┌─────────────────────────────────────────────────┐
OpenHarbor.MCP.Client.Cli (Executable) │
Svrnty.MCP.Client.Cli (Executable) │
│ ┌───────────────────────────────────────────┐ │
│ │ OpenHarbor.MCP.Client.AspNetCore (DI) │ │
│ │ Svrnty.MCP.Client.AspNetCore (DI) │ │
│ │ ┌─────────────────────────────────────┐ │ │
│ │ │ OpenHarbor.MCP.Client.Infrastructure│ │ │
│ │ │ Svrnty.MCP.Client.Infrastructure│ │ │
│ │ │ ┌───────────────────────────────┐ │ │ │
│ │ │ │ OpenHarbor.MCP.Client.Core │ │ │ │
│ │ │ │ Svrnty.MCP.Client.Core │ │ │ │
│ │ │ │ - IMcpClient │ │ │ │
│ │ │ │ - IMcpServerConnection │ │ │ │
│ │ │ │ - IConnectionPool │ │ │ │

View File

@ -8,8 +8,8 @@
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\OpenHarbor.MCP.Client.Core\OpenHarbor.MCP.Client.Core.csproj" />
<ProjectReference Include="..\..\src\OpenHarbor.MCP.Client.Infrastructure\OpenHarbor.MCP.Client.Infrastructure.csproj" />
<ProjectReference Include="..\..\src\Svrnty.MCP.Client.Core\Svrnty.MCP.Client.Core.csproj" />
<ProjectReference Include="..\..\src\Svrnty.MCP.Client.Infrastructure\Svrnty.MCP.Client.Infrastructure.csproj" />
</ItemGroup>
</Project>

View File

@ -1,8 +1,8 @@
using OpenHarbor.MCP.Client.Core.Exceptions;
using OpenHarbor.MCP.Client.Core.Models;
using OpenHarbor.MCP.Client.Infrastructure;
using Svrnty.MCP.Client.Core.Exceptions;
using Svrnty.MCP.Client.Core.Models;
using Svrnty.MCP.Client.Infrastructure;
Console.WriteLine("=== OpenHarbor.MCP.Client - CODEX Example ===\n");
Console.WriteLine("=== Svrnty.MCP.Client - CODEX Example ===\n");
// Step 1: Configure MCP servers
var serverConfigs = new List<McpServerConfig>
@ -14,7 +14,7 @@ var serverConfigs = new List<McpServerConfig>
{
Type = "Stdio",
Command = "dotnet",
Args = new[] { "run", "--project", "/home/svrnty/codex/OpenHarbor.MCP.Server/samples/CodexMcpServer/CodexMcpServer.csproj" }
Args = new[] { "run", "--project", "/home/svrnty/codex/Svrnty.MCP.Server/samples/CodexMcpServer/CodexMcpServer.csproj" }
},
Timeout = TimeSpan.FromSeconds(30),
Enabled = true

View File

@ -1,6 +1,6 @@
# CodexMcpClient Sample
Sample console application demonstrating OpenHarbor.MCP.Client usage with CODEX MCP Server.
Sample console application demonstrating Svrnty.MCP.Client usage with CODEX MCP Server.
## Purpose
@ -13,7 +13,7 @@ Shows how to:
## Prerequisites
- .NET 8.0 SDK
- Running CODEX MCP Server (from OpenHarbor.MCP.Server module)
- Running CODEX MCP Server (from Svrnty.MCP.Server module)
## Configuration

View File

@ -1,6 +1,6 @@
using OpenHarbor.MCP.Client.Core.Models;
using Svrnty.MCP.Client.Core.Models;
namespace OpenHarbor.MCP.Client.Core.Abstractions;
namespace Svrnty.MCP.Client.Core.Abstractions;
/// <summary>
/// Main MCP client interface for discovering and calling tools from MCP servers.

View File

@ -1,6 +1,6 @@
using OpenHarbor.MCP.Client.Core.Models;
using Svrnty.MCP.Client.Core.Models;
namespace OpenHarbor.MCP.Client.Core.Abstractions;
namespace Svrnty.MCP.Client.Core.Abstractions;
/// <summary>
/// Represents a connection to a single MCP server.

View File

@ -1,4 +1,4 @@
namespace OpenHarbor.MCP.Client.Core.Exceptions;
namespace Svrnty.MCP.Client.Core.Exceptions;
/// <summary>
/// Exception thrown when MCP connection fails.

View File

@ -1,4 +1,4 @@
namespace OpenHarbor.MCP.Client.Core.Models;
namespace Svrnty.MCP.Client.Core.Models;
/// <summary>
/// Configuration for connecting to an MCP server.

View File

@ -1,6 +1,6 @@
using System.Text.Json;
namespace OpenHarbor.MCP.Client.Core.Models;
namespace Svrnty.MCP.Client.Core.Models;
/// <summary>
/// Represents an MCP tool exposed by a server.

View File

@ -1,4 +1,4 @@
namespace OpenHarbor.MCP.Client.Core.Models;
namespace Svrnty.MCP.Client.Core.Models;
/// <summary>
/// Represents the result of calling an MCP tool.

View File

@ -1,11 +1,11 @@
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;
using OpenHarbor.MCP.Client.Core.Abstractions;
using OpenHarbor.MCP.Client.Core.Exceptions;
using OpenHarbor.MCP.Client.Core.Models;
using Svrnty.MCP.Client.Core.Abstractions;
using Svrnty.MCP.Client.Core.Exceptions;
using Svrnty.MCP.Client.Core.Models;
namespace OpenHarbor.MCP.Client.Infrastructure;
namespace Svrnty.MCP.Client.Infrastructure;
/// <summary>
/// Implements MCP server connection using HTTP transport.

View File

@ -1,8 +1,8 @@
using OpenHarbor.MCP.Client.Core.Abstractions;
using OpenHarbor.MCP.Client.Core.Exceptions;
using OpenHarbor.MCP.Client.Core.Models;
using Svrnty.MCP.Client.Core.Abstractions;
using Svrnty.MCP.Client.Core.Exceptions;
using Svrnty.MCP.Client.Core.Models;
namespace OpenHarbor.MCP.Client.Infrastructure;
namespace Svrnty.MCP.Client.Infrastructure;
/// <summary>
/// Implements MCP client for managing multiple MCP server connections.

View File

@ -1,9 +1,9 @@
using System.Diagnostics;
using OpenHarbor.MCP.Client.Core.Abstractions;
using OpenHarbor.MCP.Client.Core.Exceptions;
using OpenHarbor.MCP.Client.Core.Models;
using Svrnty.MCP.Client.Core.Abstractions;
using Svrnty.MCP.Client.Core.Exceptions;
using Svrnty.MCP.Client.Core.Models;
namespace OpenHarbor.MCP.Client.Infrastructure;
namespace Svrnty.MCP.Client.Infrastructure;
/// <summary>
/// Implements MCP server connection using stdio transport (process communication).

View File

@ -7,7 +7,7 @@
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\OpenHarbor.MCP.Client.Core\OpenHarbor.MCP.Client.Core.csproj" />
<ProjectReference Include="..\Svrnty.MCP.Client.Core\Svrnty.MCP.Client.Core.csproj" />
</ItemGroup>
</Project>

View File

@ -1,7 +1,7 @@
using OpenHarbor.MCP.Client.Core.Exceptions;
using Svrnty.MCP.Client.Core.Exceptions;
using Xunit;
namespace OpenHarbor.MCP.Client.Core.Tests.Exceptions;
namespace Svrnty.MCP.Client.Core.Tests.Exceptions;
/// <summary>
/// Unit tests for MCP exception types.

View File

@ -3,11 +3,11 @@ using System.Text;
using Moq;
using Moq.Protected;
using Xunit;
using OpenHarbor.MCP.Client.Core.Exceptions;
using OpenHarbor.MCP.Client.Core.Models;
using OpenHarbor.MCP.Client.Infrastructure;
using Svrnty.MCP.Client.Core.Exceptions;
using Svrnty.MCP.Client.Core.Models;
using Svrnty.MCP.Client.Infrastructure;
namespace OpenHarbor.MCP.Client.Core.Tests;
namespace Svrnty.MCP.Client.Core.Tests;
/// <summary>
/// Unit tests for HttpServerConnection following TDD approach.

View File

@ -1,11 +1,11 @@
using Moq;
using OpenHarbor.MCP.Client.Core.Abstractions;
using OpenHarbor.MCP.Client.Core.Exceptions;
using OpenHarbor.MCP.Client.Core.Models;
using OpenHarbor.MCP.Client.Infrastructure;
using Svrnty.MCP.Client.Core.Abstractions;
using Svrnty.MCP.Client.Core.Exceptions;
using Svrnty.MCP.Client.Core.Models;
using Svrnty.MCP.Client.Infrastructure;
using Xunit;
namespace OpenHarbor.MCP.Client.Core.Tests.Infrastructure;
namespace Svrnty.MCP.Client.Core.Tests.Infrastructure;
/// <summary>
/// Unit tests for McpClient following TDD approach.

View File

@ -1,10 +1,10 @@
using OpenHarbor.MCP.Client.Core.Abstractions;
using OpenHarbor.MCP.Client.Core.Exceptions;
using OpenHarbor.MCP.Client.Core.Models;
using OpenHarbor.MCP.Client.Infrastructure;
using Svrnty.MCP.Client.Core.Abstractions;
using Svrnty.MCP.Client.Core.Exceptions;
using Svrnty.MCP.Client.Core.Models;
using Svrnty.MCP.Client.Infrastructure;
using Xunit;
namespace OpenHarbor.MCP.Client.Core.Tests.Infrastructure;
namespace Svrnty.MCP.Client.Core.Tests.Infrastructure;
/// <summary>
/// Unit tests for StdioServerConnection following TDD approach.

View File

@ -1,7 +1,7 @@
using OpenHarbor.MCP.Client.Core.Models;
using Svrnty.MCP.Client.Core.Models;
using Xunit;
namespace OpenHarbor.MCP.Client.Core.Tests.Models;
namespace Svrnty.MCP.Client.Core.Tests.Models;
/// <summary>
/// Unit tests for McpServerConfig and transport configurations.

View File

@ -1,7 +1,7 @@
using OpenHarbor.MCP.Client.Core.Models;
using Svrnty.MCP.Client.Core.Models;
using Xunit;
namespace OpenHarbor.MCP.Client.Core.Tests.Models;
namespace Svrnty.MCP.Client.Core.Tests.Models;
/// <summary>
/// Unit tests for McpToolResult following TDD approach.

View File

@ -1,8 +1,8 @@
using System.Text.Json;
using OpenHarbor.MCP.Client.Core.Models;
using Svrnty.MCP.Client.Core.Models;
using Xunit;
namespace OpenHarbor.MCP.Client.Core.Tests.Models;
namespace Svrnty.MCP.Client.Core.Tests.Models;
/// <summary>
/// Unit tests for McpTool model.

View File

@ -22,8 +22,8 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\OpenHarbor.MCP.Client.Core\OpenHarbor.MCP.Client.Core.csproj" />
<ProjectReference Include="..\..\src\OpenHarbor.MCP.Client.Infrastructure\OpenHarbor.MCP.Client.Infrastructure.csproj" />
<ProjectReference Include="..\..\src\Svrnty.MCP.Client.Core\Svrnty.MCP.Client.Core.csproj" />
<ProjectReference Include="..\..\src\Svrnty.MCP.Client.Infrastructure\Svrnty.MCP.Client.Infrastructure.csproj" />
</ItemGroup>
</Project>