diff --git a/AGENT-PRIMER.md b/AGENT-PRIMER.md
index 0f67f71..ece79fa 100644
--- a/AGENT-PRIMER.md
+++ b/AGENT-PRIMER.md
@@ -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
-
+
-
+
-
+
```
-**Note**: When OpenHarbor.MCP.Client is published to NuGet, replace with:
+**Note**: When Svrnty.MCP.Client is published to NuGet, replace with:
```xml
-
+
```
@@ -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
diff --git a/README.md b/README.md
index 4022187..e2268a5 100644
--- a/README.md
+++ b/README.md
@@ -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
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/)
diff --git a/Svrnty.MCP.Client.sln b/Svrnty.MCP.Client.sln
index 67a70f7..c05a8d6 100644
--- a/Svrnty.MCP.Client.sln
+++ b/Svrnty.MCP.Client.sln
@@ -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
diff --git a/docs/api/README.md b/docs/api/README.md
index e21522e..9f4b252 100644
--- a/docs/api/README.md
+++ b/docs/api/README.md
@@ -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
{
diff --git a/docs/deployment/https-setup.md b/docs/deployment/https-setup.md
index 47770f0..f101a03 100644
--- a/docs/deployment/https-setup.md
+++ b/docs/deployment/https-setup.md
@@ -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)
diff --git a/docs/implementation-plan.md b/docs/implementation-plan.md
index d4b8bba..c217598 100644
--- a/docs/implementation-plan.md
+++ b/docs/implementation-plan.md
@@ -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
diff --git a/docs/module-design.md b/docs/module-design.md
index 53a8a74..c054a19 100644
--- a/docs/module-design.md
+++ b/docs/module-design.md
@@ -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 │ │ │ │
diff --git a/samples/CodexMcpClient/CodexMcpClient.csproj b/samples/CodexMcpClient/CodexMcpClient.csproj
index 4c32f3d..94507aa 100644
--- a/samples/CodexMcpClient/CodexMcpClient.csproj
+++ b/samples/CodexMcpClient/CodexMcpClient.csproj
@@ -8,8 +8,8 @@
-
-
+
+
diff --git a/samples/CodexMcpClient/Program.cs b/samples/CodexMcpClient/Program.cs
index 629163f..63984c2 100644
--- a/samples/CodexMcpClient/Program.cs
+++ b/samples/CodexMcpClient/Program.cs
@@ -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
@@ -14,7 +14,7 @@ var serverConfigs = new List
{
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
diff --git a/samples/CodexMcpClient/README.md b/samples/CodexMcpClient/README.md
index f3607a4..c27faa6 100644
--- a/samples/CodexMcpClient/README.md
+++ b/samples/CodexMcpClient/README.md
@@ -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
diff --git a/src/Svrnty.MCP.Client.Core/Abstractions/IMcpClient.cs b/src/Svrnty.MCP.Client.Core/Abstractions/IMcpClient.cs
index 94b6eff..c103d2d 100644
--- a/src/Svrnty.MCP.Client.Core/Abstractions/IMcpClient.cs
+++ b/src/Svrnty.MCP.Client.Core/Abstractions/IMcpClient.cs
@@ -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;
///
/// Main MCP client interface for discovering and calling tools from MCP servers.
diff --git a/src/Svrnty.MCP.Client.Core/Abstractions/IMcpServerConnection.cs b/src/Svrnty.MCP.Client.Core/Abstractions/IMcpServerConnection.cs
index 2075ecf..9bdde8f 100644
--- a/src/Svrnty.MCP.Client.Core/Abstractions/IMcpServerConnection.cs
+++ b/src/Svrnty.MCP.Client.Core/Abstractions/IMcpServerConnection.cs
@@ -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;
///
/// Represents a connection to a single MCP server.
diff --git a/src/Svrnty.MCP.Client.Core/Exceptions/McpConnectionException.cs b/src/Svrnty.MCP.Client.Core/Exceptions/McpConnectionException.cs
index 9ffa69f..a5afa1d 100644
--- a/src/Svrnty.MCP.Client.Core/Exceptions/McpConnectionException.cs
+++ b/src/Svrnty.MCP.Client.Core/Exceptions/McpConnectionException.cs
@@ -1,4 +1,4 @@
-namespace OpenHarbor.MCP.Client.Core.Exceptions;
+namespace Svrnty.MCP.Client.Core.Exceptions;
///
/// Exception thrown when MCP connection fails.
diff --git a/src/Svrnty.MCP.Client.Core/Models/McpServerConfig.cs b/src/Svrnty.MCP.Client.Core/Models/McpServerConfig.cs
index 101824e..295cfc5 100644
--- a/src/Svrnty.MCP.Client.Core/Models/McpServerConfig.cs
+++ b/src/Svrnty.MCP.Client.Core/Models/McpServerConfig.cs
@@ -1,4 +1,4 @@
-namespace OpenHarbor.MCP.Client.Core.Models;
+namespace Svrnty.MCP.Client.Core.Models;
///
/// Configuration for connecting to an MCP server.
diff --git a/src/Svrnty.MCP.Client.Core/Models/McpTool.cs b/src/Svrnty.MCP.Client.Core/Models/McpTool.cs
index 8502233..4c0cc10 100644
--- a/src/Svrnty.MCP.Client.Core/Models/McpTool.cs
+++ b/src/Svrnty.MCP.Client.Core/Models/McpTool.cs
@@ -1,6 +1,6 @@
using System.Text.Json;
-namespace OpenHarbor.MCP.Client.Core.Models;
+namespace Svrnty.MCP.Client.Core.Models;
///
/// Represents an MCP tool exposed by a server.
diff --git a/src/Svrnty.MCP.Client.Core/Models/McpToolResult.cs b/src/Svrnty.MCP.Client.Core/Models/McpToolResult.cs
index 7920bb4..8f48706 100644
--- a/src/Svrnty.MCP.Client.Core/Models/McpToolResult.cs
+++ b/src/Svrnty.MCP.Client.Core/Models/McpToolResult.cs
@@ -1,4 +1,4 @@
-namespace OpenHarbor.MCP.Client.Core.Models;
+namespace Svrnty.MCP.Client.Core.Models;
///
/// Represents the result of calling an MCP tool.
diff --git a/src/Svrnty.MCP.Client.Infrastructure/HttpServerConnection.cs b/src/Svrnty.MCP.Client.Infrastructure/HttpServerConnection.cs
index 2537368..bc152cf 100644
--- a/src/Svrnty.MCP.Client.Infrastructure/HttpServerConnection.cs
+++ b/src/Svrnty.MCP.Client.Infrastructure/HttpServerConnection.cs
@@ -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;
///
/// Implements MCP server connection using HTTP transport.
diff --git a/src/Svrnty.MCP.Client.Infrastructure/McpClient.cs b/src/Svrnty.MCP.Client.Infrastructure/McpClient.cs
index 8d54359..cb79bc0 100644
--- a/src/Svrnty.MCP.Client.Infrastructure/McpClient.cs
+++ b/src/Svrnty.MCP.Client.Infrastructure/McpClient.cs
@@ -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;
///
/// Implements MCP client for managing multiple MCP server connections.
diff --git a/src/Svrnty.MCP.Client.Infrastructure/StdioServerConnection.cs b/src/Svrnty.MCP.Client.Infrastructure/StdioServerConnection.cs
index d8d7092..4263173 100644
--- a/src/Svrnty.MCP.Client.Infrastructure/StdioServerConnection.cs
+++ b/src/Svrnty.MCP.Client.Infrastructure/StdioServerConnection.cs
@@ -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;
///
/// Implements MCP server connection using stdio transport (process communication).
diff --git a/src/Svrnty.MCP.Client.Infrastructure/Svrnty.MCP.Client.Infrastructure.csproj b/src/Svrnty.MCP.Client.Infrastructure/Svrnty.MCP.Client.Infrastructure.csproj
index 8423a07..5923339 100644
--- a/src/Svrnty.MCP.Client.Infrastructure/Svrnty.MCP.Client.Infrastructure.csproj
+++ b/src/Svrnty.MCP.Client.Infrastructure/Svrnty.MCP.Client.Infrastructure.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/tests/Svrnty.MCP.Client.Core.Tests/Exceptions/McpConnectionExceptionTests.cs b/tests/Svrnty.MCP.Client.Core.Tests/Exceptions/McpConnectionExceptionTests.cs
index 7a7d4ab..0e2bde2 100644
--- a/tests/Svrnty.MCP.Client.Core.Tests/Exceptions/McpConnectionExceptionTests.cs
+++ b/tests/Svrnty.MCP.Client.Core.Tests/Exceptions/McpConnectionExceptionTests.cs
@@ -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;
///
/// Unit tests for MCP exception types.
diff --git a/tests/Svrnty.MCP.Client.Core.Tests/HttpServerConnectionTests.cs b/tests/Svrnty.MCP.Client.Core.Tests/HttpServerConnectionTests.cs
index 3244f50..5308bc6 100644
--- a/tests/Svrnty.MCP.Client.Core.Tests/HttpServerConnectionTests.cs
+++ b/tests/Svrnty.MCP.Client.Core.Tests/HttpServerConnectionTests.cs
@@ -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;
///
/// Unit tests for HttpServerConnection following TDD approach.
diff --git a/tests/Svrnty.MCP.Client.Core.Tests/Infrastructure/McpClientTests.cs b/tests/Svrnty.MCP.Client.Core.Tests/Infrastructure/McpClientTests.cs
index 95504c7..11146b4 100644
--- a/tests/Svrnty.MCP.Client.Core.Tests/Infrastructure/McpClientTests.cs
+++ b/tests/Svrnty.MCP.Client.Core.Tests/Infrastructure/McpClientTests.cs
@@ -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;
///
/// Unit tests for McpClient following TDD approach.
diff --git a/tests/Svrnty.MCP.Client.Core.Tests/Infrastructure/StdioServerConnectionTests.cs b/tests/Svrnty.MCP.Client.Core.Tests/Infrastructure/StdioServerConnectionTests.cs
index 1df7b17..eccfe6f 100644
--- a/tests/Svrnty.MCP.Client.Core.Tests/Infrastructure/StdioServerConnectionTests.cs
+++ b/tests/Svrnty.MCP.Client.Core.Tests/Infrastructure/StdioServerConnectionTests.cs
@@ -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;
///
/// Unit tests for StdioServerConnection following TDD approach.
diff --git a/tests/Svrnty.MCP.Client.Core.Tests/Models/McpServerConfigTests.cs b/tests/Svrnty.MCP.Client.Core.Tests/Models/McpServerConfigTests.cs
index 93abdaa..933e305 100644
--- a/tests/Svrnty.MCP.Client.Core.Tests/Models/McpServerConfigTests.cs
+++ b/tests/Svrnty.MCP.Client.Core.Tests/Models/McpServerConfigTests.cs
@@ -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;
///
/// Unit tests for McpServerConfig and transport configurations.
diff --git a/tests/Svrnty.MCP.Client.Core.Tests/Models/McpToolResultTests.cs b/tests/Svrnty.MCP.Client.Core.Tests/Models/McpToolResultTests.cs
index e6237ce..f8ea4c8 100644
--- a/tests/Svrnty.MCP.Client.Core.Tests/Models/McpToolResultTests.cs
+++ b/tests/Svrnty.MCP.Client.Core.Tests/Models/McpToolResultTests.cs
@@ -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;
///
/// Unit tests for McpToolResult following TDD approach.
diff --git a/tests/Svrnty.MCP.Client.Core.Tests/Models/McpToolTests.cs b/tests/Svrnty.MCP.Client.Core.Tests/Models/McpToolTests.cs
index c9e4592..5247e18 100644
--- a/tests/Svrnty.MCP.Client.Core.Tests/Models/McpToolTests.cs
+++ b/tests/Svrnty.MCP.Client.Core.Tests/Models/McpToolTests.cs
@@ -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;
///
/// Unit tests for McpTool model.
diff --git a/tests/Svrnty.MCP.Client.Core.Tests/Svrnty.MCP.Client.Core.Tests.csproj b/tests/Svrnty.MCP.Client.Core.Tests/Svrnty.MCP.Client.Core.Tests.csproj
index c4e255a..8bf6eac 100644
--- a/tests/Svrnty.MCP.Client.Core.Tests/Svrnty.MCP.Client.Core.Tests.csproj
+++ b/tests/Svrnty.MCP.Client.Core.Tests/Svrnty.MCP.Client.Core.Tests.csproj
@@ -22,8 +22,8 @@
-
-
+
+