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:
parent
516e1479c6
commit
0c27de4162
@ -1,6 +1,6 @@
|
|||||||
# AGENT-PRIMER: OpenHarbor.MCP Automated Setup
|
# AGENT-PRIMER: Svrnty.MCP Automated Setup
|
||||||
|
|
||||||
**Purpose**: This document guides AI agents to automatically analyze a target system and configure OpenHarbor.MCP integration with minimal human intervention.
|
**Purpose**: This document guides AI agents to automatically analyze a target system and configure Svrnty.MCP integration with minimal human intervention.
|
||||||
|
|
||||||
**Target Audience**: AI assistants (Claude, ChatGPT, etc.) helping developers integrate MCP server capabilities into .NET applications.
|
**Target Audience**: AI assistants (Claude, ChatGPT, etc.) helping developers integrate MCP server capabilities into .NET applications.
|
||||||
|
|
||||||
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
OpenHarbor.MCP is a **standalone, reusable .NET library** that adds Model Context Protocol (MCP) server capabilities to any .NET application. This primer enables AI-automated configuration by walking through system analysis, configuration generation, and validation.
|
Svrnty.MCP is a **standalone, reusable .NET library** that adds Model Context Protocol (MCP) server capabilities to any .NET application. This primer enables AI-automated configuration by walking through system analysis, configuration generation, and validation.
|
||||||
|
|
||||||
**What you'll automate:**
|
**What you'll automate:**
|
||||||
1. System analysis (detect .NET version, project type, dependencies)
|
1. System analysis (detect .NET version, project type, dependencies)
|
||||||
@ -98,20 +98,20 @@ grep -r "DbContext\|AddDbContext" --include="*.cs"
|
|||||||
```xml
|
```xml
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<!-- Core MCP library -->
|
<!-- Core MCP library -->
|
||||||
<ProjectReference Include="/path/to/OpenHarbor.MCP/src/OpenHarbor.MCP.AspNetCore/OpenHarbor.MCP.AspNetCore.csproj" />
|
<ProjectReference Include="/path/to/Svrnty.MCP/src/Svrnty.MCP.AspNetCore/Svrnty.MCP.AspNetCore.csproj" />
|
||||||
|
|
||||||
<!-- OR use NuGet when published -->
|
<!-- OR use NuGet when published -->
|
||||||
<!-- <PackageReference Include="OpenHarbor.MCP.AspNetCore" Version="1.0.0" /> -->
|
<!-- <PackageReference Include="Svrnty.MCP.AspNetCore" Version="1.0.0" /> -->
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
```
|
```
|
||||||
|
|
||||||
**Installation command**:
|
**Installation command**:
|
||||||
```bash
|
```bash
|
||||||
# Via project reference (development)
|
# Via project reference (development)
|
||||||
dotnet add reference /path/to/OpenHarbor.MCP/src/OpenHarbor.MCP.AspNetCore/OpenHarbor.MCP.AspNetCore.csproj
|
dotnet add reference /path/to/Svrnty.MCP/src/Svrnty.MCP.AspNetCore/Svrnty.MCP.AspNetCore.csproj
|
||||||
|
|
||||||
# Via NuGet (when published)
|
# Via NuGet (when published)
|
||||||
# dotnet add package OpenHarbor.MCP.AspNetCore
|
# dotnet add package Svrnty.MCP.AspNetCore
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2.2 appsettings.json Configuration
|
### 2.2 appsettings.json Configuration
|
||||||
@ -186,7 +186,7 @@ dotnet add reference /path/to/OpenHarbor.MCP/src/OpenHarbor.MCP.AspNetCore/OpenH
|
|||||||
|
|
||||||
#### For ASP.NET Core Web API:
|
#### For ASP.NET Core Web API:
|
||||||
```csharp
|
```csharp
|
||||||
using OpenHarbor.MCP.AspNetCore;
|
using Svrnty.MCP.AspNetCore;
|
||||||
|
|
||||||
var builder = WebApplication.CreateBuilder(args);
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
|
|
||||||
@ -222,7 +222,7 @@ app.Run();
|
|||||||
```csharp
|
```csharp
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using OpenHarbor.MCP.Infrastructure;
|
using Svrnty.MCP.Infrastructure;
|
||||||
|
|
||||||
var host = Host.CreateDefaultBuilder(args)
|
var host = Host.CreateDefaultBuilder(args)
|
||||||
.ConfigureServices((context, services) =>
|
.ConfigureServices((context, services) =>
|
||||||
@ -252,8 +252,8 @@ await host.RunAsync();
|
|||||||
|
|
||||||
**Basic tool structure**:
|
**Basic tool structure**:
|
||||||
```csharp
|
```csharp
|
||||||
using OpenHarbor.MCP.Core.Abstractions;
|
using Svrnty.MCP.Core.Abstractions;
|
||||||
using OpenHarbor.MCP.Core.Models;
|
using Svrnty.MCP.Core.Models;
|
||||||
|
|
||||||
namespace YourApp.Mcp.Tools;
|
namespace YourApp.Mcp.Tools;
|
||||||
|
|
||||||
@ -434,7 +434,7 @@ public class ListEndpointsTool : IMcpTool
|
|||||||
|
|
||||||
## Step 4: Setup Development Environment
|
## Step 4: Setup Development Environment
|
||||||
|
|
||||||
**Goal**: Configure IDE and development tools for OpenHarbor.MCP.
|
**Goal**: Configure IDE and development tools for Svrnty.MCP.
|
||||||
|
|
||||||
### 4.1 Launch Settings (launchSettings.json)
|
### 4.1 Launch Settings (launchSettings.json)
|
||||||
|
|
||||||
@ -463,11 +463,11 @@ public class ListEndpointsTool : IMcpTool
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4.2 .editorconfig (Already provided in OpenHarbor.MCP root)
|
### 4.2 .editorconfig (Already provided in Svrnty.MCP root)
|
||||||
|
|
||||||
**Copy to target project** if needed:
|
**Copy to target project** if needed:
|
||||||
```bash
|
```bash
|
||||||
cp /path/to/OpenHarbor.MCP/.editorconfig /path/to/YourApp/.editorconfig
|
cp /path/to/Svrnty.MCP/.editorconfig /path/to/YourApp/.editorconfig
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4.3 .gitignore Updates
|
### 4.3 .gitignore Updates
|
||||||
@ -603,10 +603,10 @@ find . -name "*.csproj" | head -5
|
|||||||
|
|
||||||
### Step 2: Generate Configuration
|
### Step 2: Generate Configuration
|
||||||
|
|
||||||
**Created** `samples/CodexMcpServer/` in OpenHarbor.MCP:
|
**Created** `samples/CodexMcpServer/` in Svrnty.MCP:
|
||||||
```
|
```
|
||||||
samples/CodexMcpServer/
|
samples/CodexMcpServer/
|
||||||
├── CodexMcpServer.csproj # References OpenHarbor.MCP.AspNetCore
|
├── CodexMcpServer.csproj # References Svrnty.MCP.AspNetCore
|
||||||
├── Program.cs # MCP server setup with CODEX API client
|
├── Program.cs # MCP server setup with CODEX API client
|
||||||
├── appsettings.json # CODEX-specific MCP config
|
├── appsettings.json # CODEX-specific MCP config
|
||||||
├── Tools/
|
├── Tools/
|
||||||
@ -730,7 +730,7 @@ echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | dotnet run
|
|||||||
"mcpServers": {
|
"mcpServers": {
|
||||||
"codex": {
|
"codex": {
|
||||||
"command": "dotnet",
|
"command": "dotnet",
|
||||||
"args": ["run", "--project", "/home/svrnty/codex/OpenHarbor.MCP/samples/CodexMcpServer/CodexMcpServer.csproj"],
|
"args": ["run", "--project", "/home/svrnty/codex/Svrnty.MCP/samples/CodexMcpServer/CodexMcpServer.csproj"],
|
||||||
"transport": "http"
|
"transport": "http"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -743,7 +743,7 @@ echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | dotnet run
|
|||||||
|
|
||||||
## AI Agent Checklist
|
## AI Agent Checklist
|
||||||
|
|
||||||
Use this checklist when assisting a developer with OpenHarbor.MCP integration:
|
Use this checklist when assisting a developer with Svrnty.MCP integration:
|
||||||
|
|
||||||
- [ ] **System Analysis Complete**
|
- [ ] **System Analysis Complete**
|
||||||
- [ ] .NET 8.0 SDK detected
|
- [ ] .NET 8.0 SDK detected
|
||||||
@ -812,7 +812,7 @@ Use this checklist when assisting a developer with OpenHarbor.MCP integration:
|
|||||||
|
|
||||||
After successful setup:
|
After successful setup:
|
||||||
|
|
||||||
1. **Write Tests**: Create unit tests for custom tools (see OpenHarbor.MCP test examples)
|
1. **Write Tests**: Create unit tests for custom tools (see Svrnty.MCP test examples)
|
||||||
2. **Add Observability**: Integrate logging, metrics, and tracing
|
2. **Add Observability**: Integrate logging, metrics, and tracing
|
||||||
3. **Secure Production**: Review permission model, enable HTTPS for HTTP transport
|
3. **Secure Production**: Review permission model, enable HTTPS for HTTP transport
|
||||||
4. **Optimize Performance**: Add caching, connection pooling, batch operations
|
4. **Optimize Performance**: Add caching, connection pooling, batch operations
|
||||||
@ -822,10 +822,10 @@ After successful setup:
|
|||||||
|
|
||||||
## References
|
## References
|
||||||
|
|
||||||
- **OpenHarbor.MCP Documentation**: `/docs/` folder in this repository
|
- **Svrnty.MCP Documentation**: `/docs/` folder in this repository
|
||||||
- **MCP Specification**: https://spec.modelcontextprotocol.io
|
- **MCP Specification**: https://spec.modelcontextprotocol.io
|
||||||
- **CODEX Integration Example**: `samples/CodexMcpServer/`
|
- **CODEX Integration Example**: `samples/CodexMcpServer/`
|
||||||
- **Test Examples**: `tests/OpenHarbor.MCP.Integration.Tests/`
|
- **Test Examples**: `tests/Svrnty.MCP.Integration.Tests/`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@ -6,14 +6,14 @@ This guide shows how to integrate the CODEX MCP Server with Claude Code CLI (in
|
|||||||
|
|
||||||
- .NET 8.0 SDK installed
|
- .NET 8.0 SDK installed
|
||||||
- Claude Code CLI installed and configured
|
- Claude Code CLI installed and configured
|
||||||
- OpenHarbor.MCP.Server cloned/copied to your system
|
- Svrnty.MCP.Server cloned/copied to your system
|
||||||
|
|
||||||
## One-Time Setup
|
## One-Time Setup
|
||||||
|
|
||||||
### 1. Build the CODEX MCP Server
|
### 1. Build the CODEX MCP Server
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /home/svrnty/codex/OpenHarbor.MCP.Server
|
cd /home/svrnty/codex/Svrnty.MCP.Server
|
||||||
dotnet build samples/CodexMcpServer/CodexMcpServer.csproj
|
dotnet build samples/CodexMcpServer/CodexMcpServer.csproj
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -22,7 +22,7 @@ dotnet build samples/CodexMcpServer/CodexMcpServer.csproj
|
|||||||
```bash
|
```bash
|
||||||
# Add CODEX MCP server with HTTP transport
|
# Add CODEX MCP server with HTTP transport
|
||||||
claude mcp add --transport stdio --scope user codex \
|
claude mcp add --transport stdio --scope user codex \
|
||||||
dotnet -- run --project /home/svrnty/codex/OpenHarbor.MCP.Server/samples/CodexMcpServer
|
dotnet -- run --project /home/svrnty/codex/Svrnty.MCP.Server/samples/CodexMcpServer
|
||||||
```
|
```
|
||||||
|
|
||||||
**Command Breakdown:**
|
**Command Breakdown:**
|
||||||
@ -45,7 +45,7 @@ claude mcp get codex
|
|||||||
```
|
```
|
||||||
codex:
|
codex:
|
||||||
Command: dotnet
|
Command: dotnet
|
||||||
Args: [run, --project, /home/svrnty/codex/OpenHarbor.MCP.Server/samples/CodexMcpServer]
|
Args: [run, --project, /home/svrnty/codex/Svrnty.MCP.Server/samples/CodexMcpServer]
|
||||||
Transport: stdio
|
Transport: stdio
|
||||||
Scope: user
|
Scope: user
|
||||||
```
|
```
|
||||||
@ -96,7 +96,7 @@ The CODEX MCP server exposes 6 tools:
|
|||||||
```bash
|
```bash
|
||||||
# Test the server manually
|
# Test the server manually
|
||||||
echo '{"jsonrpc":"2.0","id":"1","method":"tools/list"}' | \
|
echo '{"jsonrpc":"2.0","id":"1","method":"tools/list"}' | \
|
||||||
dotnet run --project /home/svrnty/codex/OpenHarbor.MCP.Server/samples/CodexMcpServer
|
dotnet run --project /home/svrnty/codex/Svrnty.MCP.Server/samples/CodexMcpServer
|
||||||
```
|
```
|
||||||
|
|
||||||
**Expected:** JSON response listing all 6 tools
|
**Expected:** JSON response listing all 6 tools
|
||||||
@ -131,7 +131,7 @@ claude mcp list
|
|||||||
Run the test script to verify everything works:
|
Run the test script to verify everything works:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /home/svrnty/codex/OpenHarbor.MCP.Server
|
cd /home/svrnty/codex/Svrnty.MCP.Server
|
||||||
python3 test_mcp_server.py
|
python3 test_mcp_server.py
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -149,7 +149,7 @@ python3 test_mcp_server.py
|
|||||||
# Change scope
|
# Change scope
|
||||||
claude mcp remove codex
|
claude mcp remove codex
|
||||||
claude mcp add --transport stdio --scope project codex \
|
claude mcp add --transport stdio --scope project codex \
|
||||||
dotnet -- run --project /home/svrnty/codex/OpenHarbor.MCP.Server/samples/CodexMcpServer
|
dotnet -- run --project /home/svrnty/codex/Svrnty.MCP.Server/samples/CodexMcpServer
|
||||||
```
|
```
|
||||||
|
|
||||||
### Using Absolute Paths
|
### Using Absolute Paths
|
||||||
@ -158,7 +158,7 @@ For reliability, use absolute paths:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
claude mcp add --transport stdio --scope user codex \
|
claude mcp add --transport stdio --scope user codex \
|
||||||
/usr/bin/dotnet -- run --project /home/svrnty/codex/OpenHarbor.MCP.Server/samples/CodexMcpServer
|
/usr/bin/dotnet -- run --project /home/svrnty/codex/Svrnty.MCP.Server/samples/CodexMcpServer
|
||||||
```
|
```
|
||||||
|
|
||||||
## Next Steps
|
## Next Steps
|
||||||
@ -184,5 +184,5 @@ claude mcp add --transport stdio --scope user codex \
|
|||||||
|
|
||||||
- [Claude Code CLI Documentation](https://docs.claude.com/en/docs/claude-code)
|
- [Claude Code CLI Documentation](https://docs.claude.com/en/docs/claude-code)
|
||||||
- [Model Context Protocol Spec](https://modelcontextprotocol.io)
|
- [Model Context Protocol Spec](https://modelcontextprotocol.io)
|
||||||
- [OpenHarbor.MCP README](README.md)
|
- [Svrnty.MCP README](README.md)
|
||||||
- [CODEX Documentation](../CODEX/README.md)
|
- [CODEX Documentation](../CODEX/README.md)
|
||||||
|
|||||||
@ -11,7 +11,7 @@ dotnet run --project src/Codex.Api
|
|||||||
# Listens on http://localhost:5099
|
# Listens on http://localhost:5099
|
||||||
|
|
||||||
# 2. Start CODEX MCP Server (HTTP mode)
|
# 2. Start CODEX MCP Server (HTTP mode)
|
||||||
cd /home/svrnty/codex/OpenHarbor.MCP.Server
|
cd /home/svrnty/codex/Svrnty.MCP.Server
|
||||||
dotnet run --project samples/CodexMcpServer
|
dotnet run --project samples/CodexMcpServer
|
||||||
# Listens on http://localhost:5050
|
# Listens on http://localhost:5050
|
||||||
|
|
||||||
@ -130,17 +130,17 @@ cd /home/svrnty/codex/CODEX
|
|||||||
dotnet run --project src/Codex.Api
|
dotnet run --project src/Codex.Api
|
||||||
|
|
||||||
# Terminal 2: Start CODEX MCP Server
|
# Terminal 2: Start CODEX MCP Server
|
||||||
cd /home/svrnty/codex/OpenHarbor.MCP.Server
|
cd /home/svrnty/codex/Svrnty.MCP.Server
|
||||||
dotnet run --project samples/CodexMcpServer
|
dotnet run --project samples/CodexMcpServer
|
||||||
|
|
||||||
# Terminal 3: Start MCP Gateway
|
# Terminal 3: Start MCP Gateway
|
||||||
cd /home/svrnty/codex/OpenHarbor.MCP.Gateway
|
cd /home/svrnty/codex/Svrnty.MCP.Gateway
|
||||||
dotnet run --project samples/CodexMcpGateway
|
dotnet run --project samples/CodexMcpGateway
|
||||||
# Gateway listens on http://localhost:8080
|
# Gateway listens on http://localhost:8080
|
||||||
# Routes requests to http://localhost:5050
|
# Routes requests to http://localhost:5050
|
||||||
```
|
```
|
||||||
|
|
||||||
See [OpenHarbor.MCP.Gateway](../OpenHarbor.MCP.Gateway/README.md) for gateway configuration.
|
See [Svrnty.MCP.Gateway](../Svrnty.MCP.Gateway/README.md) for gateway configuration.
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
@ -215,7 +215,7 @@ Edit `samples/CodexMcpServer/appsettings.json`:
|
|||||||
|
|
||||||
1. **Full integration guide:** See [INTEGRATION-GUIDE.md](INTEGRATION-GUIDE.md)
|
1. **Full integration guide:** See [INTEGRATION-GUIDE.md](INTEGRATION-GUIDE.md)
|
||||||
2. **Architecture details:** See [README.md](README.md)
|
2. **Architecture details:** See [README.md](README.md)
|
||||||
3. **Gateway setup:** See [OpenHarbor.MCP.Gateway](../OpenHarbor.MCP.Gateway/README.md)
|
3. **Gateway setup:** See [Svrnty.MCP.Gateway](../Svrnty.MCP.Gateway/README.md)
|
||||||
4. **Development:** See [docs/module-design.md](docs/module-design.md)
|
4. **Development:** See [docs/module-design.md](docs/module-design.md)
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -238,7 +238,7 @@ dotnet run --project samples/CodexMcpServer -- --stdio
|
|||||||
"args": [
|
"args": [
|
||||||
"run",
|
"run",
|
||||||
"--project",
|
"--project",
|
||||||
"/home/svrnty/codex/OpenHarbor.MCP.Server/samples/CodexMcpServer/CodexMcpServer.csproj",
|
"/home/svrnty/codex/Svrnty.MCP.Server/samples/CodexMcpServer/CodexMcpServer.csproj",
|
||||||
"--",
|
"--",
|
||||||
"--stdio"
|
"--stdio"
|
||||||
],
|
],
|
||||||
@ -263,6 +263,6 @@ dotnet run --project samples/CodexMcpServer -- --stdio
|
|||||||
|
|
||||||
## Support
|
## Support
|
||||||
|
|
||||||
- Issues: [GitHub Issues](https://github.com/yourusername/OpenHarbor.MCP/issues)
|
- Issues: [GitHub Issues](https://github.com/yourusername/Svrnty.MCP/issues)
|
||||||
- MCP Spec: [modelcontextprotocol.io](https://modelcontextprotocol.io)
|
- MCP Spec: [modelcontextprotocol.io](https://modelcontextprotocol.io)
|
||||||
- HTTP Transport Guide: See `HTTP-TRANSPORT-STANDARDIZATION.md`
|
- HTTP Transport Guide: See `HTTP-TRANSPORT-STANDARDIZATION.md`
|
||||||
|
|||||||
62
README.md
62
README.md
@ -1,4 +1,4 @@
|
|||||||
# OpenHarbor.MCP
|
# Svrnty.MCP
|
||||||
|
|
||||||
**A modular, scalable, secure .NET library for building Model Context Protocol (MCP) servers**
|
**A modular, scalable, secure .NET library for building Model Context Protocol (MCP) servers**
|
||||||
|
|
||||||
@ -8,9 +8,9 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## What is OpenHarbor.MCP?
|
## What is Svrnty.MCP?
|
||||||
|
|
||||||
OpenHarbor.MCP is a **standalone, reusable .NET library** that enables any .NET application to become an MCP server, allowing AI agents (like Claude, ChatGPT, or custom LLMs) to interact with your application through a standardized protocol.
|
Svrnty.MCP is a **standalone, reusable .NET library** that enables any .NET application to become an MCP server, allowing AI agents (like Claude, ChatGPT, or custom LLMs) to interact with your application through a standardized protocol.
|
||||||
|
|
||||||
**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 AI assistants safely access your application's capabilities.
|
**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 AI assistants safely access your application's capabilities.
|
||||||
|
|
||||||
@ -26,11 +26,11 @@ OpenHarbor.MCP is a **standalone, reusable .NET library** that enables any .NET
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Why OpenHarbor.MCP?
|
## Why Svrnty.MCP?
|
||||||
|
|
||||||
**Problem**: Your .NET application has valuable features (search, data access, document processing, APIs) that AI agents can't easily access.
|
**Problem**: Your .NET application has valuable features (search, data access, document processing, APIs) that AI agents can't easily access.
|
||||||
|
|
||||||
**Solution**: OpenHarbor.MCP transforms your application into an MCP server, exposing tools that AI agents can discover and execute with proper permissions and rate limiting.
|
**Solution**: Svrnty.MCP transforms your application into an MCP server, exposing tools that AI agents can discover and execute with proper permissions and rate limiting.
|
||||||
|
|
||||||
**Use Cases**:
|
**Use Cases**:
|
||||||
- Expose knowledge base search to Claude Code CLI (or Desktop)
|
- Expose knowledge base search to Claude Code CLI (or Desktop)
|
||||||
@ -53,7 +53,7 @@ OpenHarbor.MCP is a **standalone, reusable .NET library** that enables any .NET
|
|||||||
If you have access to Claude or another AI assistant:
|
If you have access to Claude or another AI assistant:
|
||||||
|
|
||||||
1. Copy this entire folder to your project directory
|
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 for my project"
|
2. Open your AI assistant and say: "Read AGENT-PRIMER.md and set up Svrnty.MCP for my project"
|
||||||
3. The AI will analyze your system, generate configuration, and create sample tools automatically
|
3. The AI will analyze your system, generate configuration, and create sample tools automatically
|
||||||
|
|
||||||
### Option 2: Manual Setup
|
### Option 2: Manual Setup
|
||||||
@ -62,10 +62,10 @@ If you have access to Claude or another AI assistant:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Via project reference (development)
|
# Via project reference (development)
|
||||||
dotnet add reference /path/to/OpenHarbor.MCP/src/OpenHarbor.MCP.AspNetCore/OpenHarbor.MCP.AspNetCore.csproj
|
dotnet add reference /path/to/Svrnty.MCP/src/Svrnty.MCP.AspNetCore/Svrnty.MCP.AspNetCore.csproj
|
||||||
|
|
||||||
# OR via NuGet (when published)
|
# OR via NuGet (when published)
|
||||||
# dotnet add package OpenHarbor.MCP.AspNetCore
|
# dotnet add package Svrnty.MCP.AspNetCore
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Step 2: Configure appsettings.json
|
#### Step 2: Configure appsettings.json
|
||||||
@ -99,7 +99,7 @@ Add MCP configuration:
|
|||||||
#### Step 3: Update Program.cs
|
#### Step 3: Update Program.cs
|
||||||
|
|
||||||
```csharp
|
```csharp
|
||||||
using OpenHarbor.MCP.Core;
|
using Svrnty.MCP.Core;
|
||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
|
|
||||||
var builder = WebApplication.CreateBuilder(args);
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
@ -132,8 +132,8 @@ await app.RunAsync();
|
|||||||
#### Step 4: Create Your First Tool
|
#### Step 4: Create Your First Tool
|
||||||
|
|
||||||
```csharp
|
```csharp
|
||||||
using OpenHarbor.MCP.Core.Abstractions;
|
using Svrnty.MCP.Core.Abstractions;
|
||||||
using OpenHarbor.MCP.Core.Models;
|
using Svrnty.MCP.Core.Models;
|
||||||
|
|
||||||
public class MyCustomTool : IMcpTool
|
public class MyCustomTool : IMcpTool
|
||||||
{
|
{
|
||||||
@ -203,17 +203,17 @@ echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | dotnet run -- --stdio
|
|||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
OpenHarbor.MCP follows **Clean Architecture** principles:
|
Svrnty.MCP follows **Clean Architecture** principles:
|
||||||
|
|
||||||
```
|
```
|
||||||
┌─────────────────────────────────────────────────┐
|
┌─────────────────────────────────────────────────┐
|
||||||
│ OpenHarbor.MCP.Cli (Executable) │
|
│ Svrnty.MCP.Cli (Executable) │
|
||||||
│ ┌───────────────────────────────────────────┐ │
|
│ ┌───────────────────────────────────────────┐ │
|
||||||
│ │ OpenHarbor.MCP.AspNetCore (HTTP/DI) │ │
|
│ │ Svrnty.MCP.AspNetCore (HTTP/DI) │ │
|
||||||
│ │ ┌─────────────────────────────────────┐ │ │
|
│ │ ┌─────────────────────────────────────┐ │ │
|
||||||
│ │ │ OpenHarbor.MCP.Infrastructure │ │ │
|
│ │ │ Svrnty.MCP.Infrastructure │ │ │
|
||||||
│ │ │ ┌───────────────────────────────┐ │ │ │
|
│ │ │ ┌───────────────────────────────┐ │ │ │
|
||||||
│ │ │ │ OpenHarbor.MCP.Core │ │ │ │
|
│ │ │ │ Svrnty.MCP.Core │ │ │ │
|
||||||
│ │ │ │ - IMcpServer │ │ │ │
|
│ │ │ │ - IMcpServer │ │ │ │
|
||||||
│ │ │ │ - IMcpTool │ │ │ │
|
│ │ │ │ - IMcpTool │ │ │ │
|
||||||
│ │ │ │ - IPermissionProvider │ │ │ │
|
│ │ │ │ - IPermissionProvider │ │ │ │
|
||||||
@ -228,10 +228,10 @@ OpenHarbor.MCP follows **Clean Architecture** principles:
|
|||||||
|
|
||||||
| Project | Purpose | Dependencies |
|
| Project | Purpose | Dependencies |
|
||||||
|---------|---------|--------------|
|
|---------|---------|--------------|
|
||||||
| **OpenHarbor.MCP.Core** | Abstractions, interfaces, models | None |
|
| **Svrnty.MCP.Core** | Abstractions, interfaces, models | None |
|
||||||
| **OpenHarbor.MCP.Infrastructure** | MCP server implementation, transports, security | Core, System.Text.Json |
|
| **Svrnty.MCP.Infrastructure** | MCP server implementation, transports, security | Core, System.Text.Json |
|
||||||
| **OpenHarbor.MCP.AspNetCore** | ASP.NET Core integration, DI extensions | Core, Infrastructure, ASP.NET Core |
|
| **Svrnty.MCP.AspNetCore** | ASP.NET Core integration, DI extensions | Core, Infrastructure, ASP.NET Core |
|
||||||
| **OpenHarbor.MCP.Cli** | Standalone CLI executable | All above |
|
| **Svrnty.MCP.Cli** | Standalone CLI executable | All above |
|
||||||
|
|
||||||
See [Architecture Documentation](docs/architecture.md) for detailed design.
|
See [Architecture Documentation](docs/architecture.md) for detailed design.
|
||||||
|
|
||||||
@ -257,12 +257,12 @@ samples/CodexMcpServer/
|
|||||||
**Usage with MCP Gateway** (Recommended for Production):
|
**Usage with MCP Gateway** (Recommended for Production):
|
||||||
```bash
|
```bash
|
||||||
# Run CODEX MCP Server in HTTP mode (default)
|
# Run CODEX MCP Server in HTTP mode (default)
|
||||||
cd /path/to/OpenHarbor.MCP.Server/samples/CodexMcpServer
|
cd /path/to/Svrnty.MCP.Server/samples/CodexMcpServer
|
||||||
dotnet run
|
dotnet run
|
||||||
# Server listens on http://localhost:5050
|
# Server listens on http://localhost:5050
|
||||||
|
|
||||||
# Configure gateway to route to this server
|
# Configure gateway to route to this server
|
||||||
# See OpenHarbor.MCP.Gateway documentation
|
# See Svrnty.MCP.Gateway documentation
|
||||||
```
|
```
|
||||||
|
|
||||||
**Alternative: Claude Desktop with Stdio** (Legacy, Local Development):
|
**Alternative: Claude Desktop with Stdio** (Legacy, Local Development):
|
||||||
@ -339,7 +339,7 @@ public class ProcessDocumentTool : IMcpTool
|
|||||||
|
|
||||||
## Security
|
## Security
|
||||||
|
|
||||||
OpenHarbor.MCP implements defense-in-depth security:
|
Svrnty.MCP implements defense-in-depth security:
|
||||||
|
|
||||||
### 1. Permission-Based Access Control
|
### 1. Permission-Based Access Control
|
||||||
|
|
||||||
@ -397,7 +397,7 @@ All tool parameters are validated against schema before execution.
|
|||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
OpenHarbor.MCP is built with **Test-Driven Development (TDD)**:
|
Svrnty.MCP is built with **Test-Driven Development (TDD)**:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Run all tests
|
# Run all tests
|
||||||
@ -413,9 +413,9 @@ dotnet test --filter Category=Integration
|
|||||||
**Test Structure**:
|
**Test Structure**:
|
||||||
```
|
```
|
||||||
tests/
|
tests/
|
||||||
├── OpenHarbor.MCP.Core.Tests/ # Unit tests (abstractions, models)
|
├── Svrnty.MCP.Core.Tests/ # Unit tests (abstractions, models)
|
||||||
├── OpenHarbor.MCP.Infrastructure.Tests/ # Unit tests (server, transports, security)
|
├── Svrnty.MCP.Infrastructure.Tests/ # Unit tests (server, transports, security)
|
||||||
└── OpenHarbor.MCP.Integration.Tests/ # End-to-end integration tests
|
└── Svrnty.MCP.Integration.Tests/ # End-to-end integration tests
|
||||||
```
|
```
|
||||||
|
|
||||||
**Example Test** (TDD style):
|
**Example Test** (TDD style):
|
||||||
@ -442,13 +442,13 @@ See [TDD Guide](docs/tdd-guide.md) for complete examples.
|
|||||||
|
|
||||||
### Test Coverage
|
### Test Coverage
|
||||||
|
|
||||||
OpenHarbor.MCP.Server maintains **42.46% line coverage** and **50.00% branch coverage** with **141 tests** passing (100%).
|
Svrnty.MCP.Server maintains **42.46% line coverage** and **50.00% branch coverage** with **141 tests** passing (100%).
|
||||||
|
|
||||||
**Coverage Breakdown:**
|
**Coverage Breakdown:**
|
||||||
- **Lines**: 344 of 810 covered (42.46%)
|
- **Lines**: 344 of 810 covered (42.46%)
|
||||||
- **Branches**: 72 of 144 covered (50.00%)
|
- **Branches**: 72 of 144 covered (50.00%)
|
||||||
- **Test Projects**: 2
|
- **Test Projects**: 2
|
||||||
- OpenHarbor.MCP.Core.Tests: 82 tests
|
- Svrnty.MCP.Core.Tests: 82 tests
|
||||||
- CodexMcpServer.Tests: 59 tests
|
- CodexMcpServer.Tests: 59 tests
|
||||||
|
|
||||||
**Analysis:**
|
**Analysis:**
|
||||||
@ -558,7 +558,7 @@ Contributions are welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) for gu
|
|||||||
**Development Setup**:
|
**Development Setup**:
|
||||||
```bash
|
```bash
|
||||||
# Clone repository
|
# Clone repository
|
||||||
git clone https://github.com/yourusername/OpenHarbor.MCP.git
|
git clone https://github.com/yourusername/Svrnty.MCP.git
|
||||||
|
|
||||||
# Restore dependencies
|
# Restore dependencies
|
||||||
dotnet restore
|
dotnet restore
|
||||||
@ -596,7 +596,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|||||||
|
|
||||||
- **Documentation**: [docs/](docs/)
|
- **Documentation**: [docs/](docs/)
|
||||||
- **Examples**: [samples/](samples/)
|
- **Examples**: [samples/](samples/)
|
||||||
- **Issues**: [GitHub Issues](https://github.com/yourusername/OpenHarbor.MCP/issues)
|
- **Issues**: [GitHub Issues](https://github.com/yourusername/Svrnty.MCP/issues)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@ -5,11 +5,11 @@ VisualStudioVersion = 17.0.31903.59
|
|||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{78F02CB6-4914-4B68-901E-B00546F7985E}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{78F02CB6-4914-4B68-901E-B00546F7985E}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenHarbor.MCP.Core", "src\OpenHarbor.MCP.Core\OpenHarbor.MCP.Core.csproj", "{94C0092B-E1B1-4960-89F5-72BC22BEE4D1}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Svrnty.MCP.Core", "src\Svrnty.MCP.Core\Svrnty.MCP.Core.csproj", "{94C0092B-E1B1-4960-89F5-72BC22BEE4D1}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{B419E78A-FF41-452F-9450-59D7E559D175}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{B419E78A-FF41-452F-9450-59D7E559D175}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenHarbor.MCP.Core.Tests", "tests\OpenHarbor.MCP.Core.Tests\OpenHarbor.MCP.Core.Tests.csproj", "{E4E7F10A-6195-4E12-B0FD-E0EF7057286C}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Svrnty.MCP.Core.Tests", "tests\Svrnty.MCP.Core.Tests\Svrnty.MCP.Core.Tests.csproj", "{E4E7F10A-6195-4E12-B0FD-E0EF7057286C}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{8430E1E0-6DC8-458D-A0AA-80D8F202264E}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{8430E1E0-6DC8-458D-A0AA-80D8F202264E}"
|
||||||
EndProject
|
EndProject
|
||||||
@ -17,7 +17,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodexMcpServer", "samples\C
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodexMcpServer.Tests", "tests\CodexMcpServer.Tests\CodexMcpServer.Tests.csproj", "{7287EB04-9B7D-450C-87FF-21FB1FD9949E}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodexMcpServer.Tests", "tests\CodexMcpServer.Tests\CodexMcpServer.Tests.csproj", "{7287EB04-9B7D-450C-87FF-21FB1FD9949E}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenHarbor.MCP.AspNetCore", "src\OpenHarbor.MCP.AspNetCore\OpenHarbor.MCP.AspNetCore.csproj", "{14914206-58A7-46FF-AF0F-A8A9108EE149}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Svrnty.MCP.AspNetCore", "src\Svrnty.MCP.AspNetCore\Svrnty.MCP.AspNetCore.csproj", "{14914206-58A7-46FF-AF0F-A8A9108EE149}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
# OpenHarbor.MCP.Server - API Reference
|
# Svrnty.MCP.Server - API Reference
|
||||||
|
|
||||||
**Version:** 1.0.0
|
**Version:** 1.0.0
|
||||||
**Last Updated:** 2025-10-19
|
**Last Updated:** 2025-10-19
|
||||||
@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
### IMcpServer
|
### IMcpServer
|
||||||
|
|
||||||
**Namespace:** `OpenHarbor.MCP.Core.Abstractions`
|
**Namespace:** `Svrnty.MCP.Core.Abstractions`
|
||||||
|
|
||||||
Interface defining the core MCP server contract.
|
Interface defining the core MCP server contract.
|
||||||
|
|
||||||
@ -92,7 +92,7 @@ foreach (var tool in tools)
|
|||||||
|
|
||||||
### IMcpTool
|
### IMcpTool
|
||||||
|
|
||||||
**Namespace:** `OpenHarbor.MCP.Core.Abstractions`
|
**Namespace:** `Svrnty.MCP.Core.Abstractions`
|
||||||
|
|
||||||
Interface for implementing MCP tools.
|
Interface for implementing MCP tools.
|
||||||
|
|
||||||
@ -183,7 +183,7 @@ public class SearchTool : IMcpTool
|
|||||||
|
|
||||||
### McpServer
|
### McpServer
|
||||||
|
|
||||||
**Namespace:** `OpenHarbor.MCP.Infrastructure`
|
**Namespace:** `Svrnty.MCP.Infrastructure`
|
||||||
|
|
||||||
Default implementation of `IMcpServer`.
|
Default implementation of `IMcpServer`.
|
||||||
|
|
||||||
@ -227,7 +227,7 @@ Gracefully stops the server.
|
|||||||
|
|
||||||
### HttpTransport
|
### HttpTransport
|
||||||
|
|
||||||
**Namespace:** `OpenHarbor.MCP.AspNetCore.Extensions`
|
**Namespace:** `Svrnty.MCP.AspNetCore.Extensions`
|
||||||
|
|
||||||
HTTP transport implementation for MCP protocol.
|
HTTP transport implementation for MCP protocol.
|
||||||
|
|
||||||
@ -295,7 +295,7 @@ Health check endpoint.
|
|||||||
|
|
||||||
### McpToolSchema
|
### McpToolSchema
|
||||||
|
|
||||||
**Namespace:** `OpenHarbor.MCP.Core.Models`
|
**Namespace:** `Svrnty.MCP.Core.Models`
|
||||||
|
|
||||||
JSON Schema representation for tool parameters.
|
JSON Schema representation for tool parameters.
|
||||||
|
|
||||||
@ -347,7 +347,7 @@ var schema = new McpToolSchema
|
|||||||
|
|
||||||
### McpToolResult
|
### McpToolResult
|
||||||
|
|
||||||
**Namespace:** `OpenHarbor.MCP.Core.Models`
|
**Namespace:** `Svrnty.MCP.Core.Models`
|
||||||
|
|
||||||
Represents the result of a tool execution.
|
Represents the result of a tool execution.
|
||||||
|
|
||||||
@ -401,7 +401,7 @@ return McpToolResult.Error("Document not found", 404);
|
|||||||
|
|
||||||
### Service Extensions
|
### Service Extensions
|
||||||
|
|
||||||
**Namespace:** `OpenHarbor.MCP.AspNetCore`
|
**Namespace:** `Svrnty.MCP.AspNetCore`
|
||||||
|
|
||||||
#### AddMcpServer
|
#### AddMcpServer
|
||||||
|
|
||||||
@ -549,8 +549,8 @@ Executes a tool.
|
|||||||
### Creating an MCP Server
|
### Creating an MCP Server
|
||||||
|
|
||||||
```csharp
|
```csharp
|
||||||
using OpenHarbor.MCP.Core;
|
using Svrnty.MCP.Core;
|
||||||
using OpenHarbor.MCP.Core.Abstractions;
|
using Svrnty.MCP.Core.Abstractions;
|
||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
|
|
||||||
// 1. Create tools
|
// 1. Create tools
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
# HTTPS/TLS Setup Guide - OpenHarbor.MCP.Server
|
# HTTPS/TLS Setup Guide - Svrnty.MCP.Server
|
||||||
|
|
||||||
**Purpose**: Production-grade HTTPS/TLS configuration for secure MCP server deployment
|
**Purpose**: Production-grade HTTPS/TLS configuration for secure MCP server deployment
|
||||||
**Audience**: DevOps engineers, system administrators
|
**Audience**: DevOps engineers, system administrators
|
||||||
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
OpenHarbor.MCP.Server supports HTTPS/TLS through ASP.NET Core's Kestrel web server. This guide covers configuration for both development and production environments.
|
Svrnty.MCP.Server supports HTTPS/TLS through ASP.NET Core's Kestrel web server. This guide covers configuration for both development and production environments.
|
||||||
|
|
||||||
**Security Benefits:**
|
**Security Benefits:**
|
||||||
- Encrypted communication (prevents eavesdropping)
|
- Encrypted communication (prevents eavesdropping)
|
||||||
@ -101,7 +101,7 @@ Create or update `appsettings.Development.json` in the Server project:
|
|||||||
**Step 3: Run Server with HTTPS**
|
**Step 3: Run Server with HTTPS**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd OpenHarbor.MCP.Server/samples/CodexMcpServer
|
cd Svrnty.MCP.Server/samples/CodexMcpServer
|
||||||
dotnet run --environment Development
|
dotnet run --environment Development
|
||||||
|
|
||||||
# Server will listen on:
|
# Server will listen on:
|
||||||
@ -134,7 +134,7 @@ curl -k -X POST https://localhost:5051/mcp/invoke \
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Create directory for certs
|
# Create directory for certs
|
||||||
mkdir -p /home/svrnty/codex/OpenHarbor.MCP.Server/certs
|
mkdir -p /home/svrnty/codex/Svrnty.MCP.Server/certs
|
||||||
|
|
||||||
# Generate private key
|
# Generate private key
|
||||||
openssl genrsa -out certs/localhost.key 2048
|
openssl genrsa -out certs/localhost.key 2048
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
# OpenHarbor.MCP - Detailed Implementation Plan
|
# Svrnty.MCP - Detailed Implementation Plan
|
||||||
|
|
||||||
**Project:** Standalone, Reusable MCP Library for .NET
|
**Project:** Standalone, Reusable MCP Library for .NET
|
||||||
**Status:** Planned (Not Yet Started)
|
**Status:** Planned (Not Yet Started)
|
||||||
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
## Executive Summary
|
## Executive Summary
|
||||||
|
|
||||||
OpenHarbor.MCP is a **standalone .NET library** implementing the Model Context Protocol (MCP) server functionality. It is designed to be:
|
Svrnty.MCP is a **standalone .NET library** implementing the Model Context Protocol (MCP) server functionality. It is designed to be:
|
||||||
|
|
||||||
- **Reusable** across any .NET project
|
- **Reusable** across any .NET project
|
||||||
- **Modular** with clean separation of concerns
|
- **Modular** with clean separation of concerns
|
||||||
@ -43,7 +43,7 @@ OpenHarbor.MCP is a **standalone .NET library** implementing the Model Context P
|
|||||||
|
|
||||||
```
|
```
|
||||||
┌─────────────────────────────────────────────┐
|
┌─────────────────────────────────────────────┐
|
||||||
│ OpenHarbor.MCP.Core │
|
│ Svrnty.MCP.Core │
|
||||||
│ (Pure Abstractions - Zero Dependencies) │
|
│ (Pure Abstractions - Zero Dependencies) │
|
||||||
│ │
|
│ │
|
||||||
│ IMcpServer, IMcpTool, IMcpResource │
|
│ IMcpServer, IMcpTool, IMcpResource │
|
||||||
@ -52,7 +52,7 @@ OpenHarbor.MCP is a **standalone .NET library** implementing the Model Context P
|
|||||||
└─────────────────┬───────────────────────────┘
|
└─────────────────┬───────────────────────────┘
|
||||||
│ Depends On
|
│ Depends On
|
||||||
┌─────────────────┴───────────────────────────┐
|
┌─────────────────┴───────────────────────────┐
|
||||||
│ OpenHarbor.MCP.Infrastructure │
|
│ Svrnty.MCP.Infrastructure │
|
||||||
│ (Implementation + Transport) │
|
│ (Implementation + Transport) │
|
||||||
│ │
|
│ │
|
||||||
│ McpServer, ToolRegistry, StdioTransport │
|
│ McpServer, ToolRegistry, StdioTransport │
|
||||||
@ -61,7 +61,7 @@ OpenHarbor.MCP is a **standalone .NET library** implementing the Model Context P
|
|||||||
└─────────────────┬───────────────────────────┘
|
└─────────────────┬───────────────────────────┘
|
||||||
│ Depends On
|
│ Depends On
|
||||||
┌─────────────────┴───────────────────────────┐
|
┌─────────────────┴───────────────────────────┐
|
||||||
│ OpenHarbor.MCP.AspNetCore │
|
│ Svrnty.MCP.AspNetCore │
|
||||||
│ (ASP.NET Core Integration) │
|
│ (ASP.NET Core Integration) │
|
||||||
│ │
|
│ │
|
||||||
│ ServiceCollectionExtensions │
|
│ ServiceCollectionExtensions │
|
||||||
@ -70,7 +70,7 @@ OpenHarbor.MCP is a **standalone .NET library** implementing the Model Context P
|
|||||||
└─────────────────────────────────────────────┘
|
└─────────────────────────────────────────────┘
|
||||||
|
|
||||||
┌─────────────────────────────────────────────┐
|
┌─────────────────────────────────────────────┐
|
||||||
│ OpenHarbor.MCP.Cli │
|
│ Svrnty.MCP.Cli │
|
||||||
│ (Standalone CLI Runner) │
|
│ (Standalone CLI Runner) │
|
||||||
│ │
|
│ │
|
||||||
│ Program.cs (Entry Point) │
|
│ Program.cs (Entry Point) │
|
||||||
@ -114,8 +114,8 @@ OpenHarbor.MCP is a **standalone .NET library** implementing the Model Context P
|
|||||||
## Project Structure
|
## Project Structure
|
||||||
|
|
||||||
```
|
```
|
||||||
/home/svrnty/codex/OpenHarbor.MCP/
|
/home/svrnty/codex/Svrnty.MCP/
|
||||||
├── OpenHarbor.MCP.sln
|
├── Svrnty.MCP.sln
|
||||||
├── README.md
|
├── README.md
|
||||||
├── AGENT-PRIMER.md # AI-assisted configuration
|
├── AGENT-PRIMER.md # AI-assisted configuration
|
||||||
├── LICENSE # MIT
|
├── LICENSE # MIT
|
||||||
@ -123,7 +123,7 @@ OpenHarbor.MCP is a **standalone .NET library** implementing the Model Context P
|
|||||||
├── .editorconfig
|
├── .editorconfig
|
||||||
│
|
│
|
||||||
├── src/
|
├── src/
|
||||||
│ ├── OpenHarbor.MCP.Core/
|
│ ├── Svrnty.MCP.Core/
|
||||||
│ │ ├── Abstractions/
|
│ │ ├── Abstractions/
|
||||||
│ │ │ ├── IMcpServer.cs
|
│ │ │ ├── IMcpServer.cs
|
||||||
│ │ │ ├── IMcpTool.cs
|
│ │ │ ├── IMcpTool.cs
|
||||||
@ -142,9 +142,9 @@ OpenHarbor.MCP is a **standalone .NET library** implementing the Model Context P
|
|||||||
│ │ │ ├── PermissionDeniedException.cs
|
│ │ │ ├── PermissionDeniedException.cs
|
||||||
│ │ │ ├── RateLimitExceededException.cs
|
│ │ │ ├── RateLimitExceededException.cs
|
||||||
│ │ │ └── ToolNotFoundException.cs
|
│ │ │ └── ToolNotFoundException.cs
|
||||||
│ │ └── OpenHarbor.MCP.Core.csproj
|
│ │ └── Svrnty.MCP.Core.csproj
|
||||||
│ │
|
│ │
|
||||||
│ ├── OpenHarbor.MCP.Infrastructure/
|
│ ├── Svrnty.MCP.Infrastructure/
|
||||||
│ │ ├── Server/
|
│ │ ├── Server/
|
||||||
│ │ │ ├── McpServer.cs
|
│ │ │ ├── McpServer.cs
|
||||||
│ │ │ ├── ToolRegistry.cs
|
│ │ │ ├── ToolRegistry.cs
|
||||||
@ -156,9 +156,9 @@ OpenHarbor.MCP is a **standalone .NET library** implementing the Model Context P
|
|||||||
│ │ ├── Transport/
|
│ │ ├── Transport/
|
||||||
│ │ │ ├── StdioTransport.cs
|
│ │ │ ├── StdioTransport.cs
|
||||||
│ │ │ └── HttpTransport.cs
|
│ │ │ └── HttpTransport.cs
|
||||||
│ │ └── OpenHarbor.MCP.Infrastructure.csproj
|
│ │ └── Svrnty.MCP.Infrastructure.csproj
|
||||||
│ │
|
│ │
|
||||||
│ ├── OpenHarbor.MCP.AspNetCore/
|
│ ├── Svrnty.MCP.AspNetCore/
|
||||||
│ │ ├── Extensions/
|
│ │ ├── Extensions/
|
||||||
│ │ │ └── ServiceCollectionExtensions.cs
|
│ │ │ └── ServiceCollectionExtensions.cs
|
||||||
│ │ ├── Middleware/
|
│ │ ├── Middleware/
|
||||||
@ -166,22 +166,22 @@ OpenHarbor.MCP is a **standalone .NET library** implementing the Model Context P
|
|||||||
│ │ │ └── AuditMiddleware.cs
|
│ │ │ └── AuditMiddleware.cs
|
||||||
│ │ ├── Configuration/
|
│ │ ├── Configuration/
|
||||||
│ │ │ └── McpOptions.cs
|
│ │ │ └── McpOptions.cs
|
||||||
│ │ └── OpenHarbor.MCP.AspNetCore.csproj
|
│ │ └── Svrnty.MCP.AspNetCore.csproj
|
||||||
│ │
|
│ │
|
||||||
│ └── OpenHarbor.MCP.Cli/
|
│ └── Svrnty.MCP.Cli/
|
||||||
│ ├── Program.cs
|
│ ├── Program.cs
|
||||||
│ └── OpenHarbor.MCP.Cli.csproj
|
│ └── Svrnty.MCP.Cli.csproj
|
||||||
│
|
│
|
||||||
├── tests/
|
├── tests/
|
||||||
│ ├── OpenHarbor.MCP.Core.Tests/
|
│ ├── Svrnty.MCP.Core.Tests/
|
||||||
│ │ ├── Abstractions/
|
│ │ ├── Abstractions/
|
||||||
│ │ ├── Models/
|
│ │ ├── Models/
|
||||||
│ │ └── Exceptions/
|
│ │ └── Exceptions/
|
||||||
│ ├── OpenHarbor.MCP.Infrastructure.Tests/
|
│ ├── Svrnty.MCP.Infrastructure.Tests/
|
||||||
│ │ ├── Server/
|
│ │ ├── Server/
|
||||||
│ │ ├── Security/
|
│ │ ├── Security/
|
||||||
│ │ └── Transport/
|
│ │ └── Transport/
|
||||||
│ └── OpenHarbor.MCP.Integration.Tests/
|
│ └── Svrnty.MCP.Integration.Tests/
|
||||||
│ ├── EndToEnd/
|
│ ├── EndToEnd/
|
||||||
│ └── Scenarios/
|
│ └── Scenarios/
|
||||||
│
|
│
|
||||||
@ -228,14 +228,14 @@ OpenHarbor.MCP is a **standalone .NET library** implementing the Model Context P
|
|||||||
**TDD:** Not applicable (infrastructure setup)
|
**TDD:** Not applicable (infrastructure setup)
|
||||||
|
|
||||||
**Tasks:**
|
**Tasks:**
|
||||||
- Create solution: `dotnet new sln -n OpenHarbor.MCP`
|
- Create solution: `dotnet new sln -n Svrnty.MCP`
|
||||||
- Create Core project: `dotnet new classlib -n OpenHarbor.MCP.Core --framework net8.0`
|
- Create Core project: `dotnet new classlib -n Svrnty.MCP.Core --framework net8.0`
|
||||||
- Configure: Enable nullable, ImplicitUsings
|
- Configure: Enable nullable, ImplicitUsings
|
||||||
- Add to solution
|
- Add to solution
|
||||||
|
|
||||||
**Deliverables:**
|
**Deliverables:**
|
||||||
- OpenHarbor.MCP.sln
|
- Svrnty.MCP.sln
|
||||||
- OpenHarbor.MCP.Core.csproj
|
- Svrnty.MCP.Core.csproj
|
||||||
- .editorconfig (C# formatting)
|
- .editorconfig (C# formatting)
|
||||||
|
|
||||||
#### Step 1.2: Core Interfaces (2 hours)
|
#### Step 1.2: Core Interfaces (2 hours)
|
||||||
@ -243,7 +243,7 @@ OpenHarbor.MCP is a **standalone .NET library** implementing the Model Context P
|
|||||||
|
|
||||||
**Tests FIRST:**
|
**Tests FIRST:**
|
||||||
```csharp
|
```csharp
|
||||||
// OpenHarbor.MCP.Core.Tests/Abstractions/IMcpServerTests.cs
|
// Svrnty.MCP.Core.Tests/Abstractions/IMcpServerTests.cs
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task RegisterTool_WithValidTool_AddsToRegistry()
|
public async Task RegisterTool_WithValidTool_AddsToRegistry()
|
||||||
{
|
{
|
||||||
@ -261,7 +261,7 @@ public async Task RegisterTool_WithValidTool_AddsToRegistry()
|
|||||||
|
|
||||||
**Implementation:**
|
**Implementation:**
|
||||||
```csharp
|
```csharp
|
||||||
// OpenHarbor.MCP.Core/Abstractions/IMcpServer.cs
|
// Svrnty.MCP.Core/Abstractions/IMcpServer.cs
|
||||||
public interface IMcpServer
|
public interface IMcpServer
|
||||||
{
|
{
|
||||||
Task RegisterTool(IMcpTool tool);
|
Task RegisterTool(IMcpTool tool);
|
||||||
@ -271,7 +271,7 @@ public interface IMcpServer
|
|||||||
Task Stop();
|
Task Stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
// OpenHarbor.MCP.Core/Abstractions/IMcpTool.cs
|
// Svrnty.MCP.Core/Abstractions/IMcpTool.cs
|
||||||
public interface IMcpTool
|
public interface IMcpTool
|
||||||
{
|
{
|
||||||
string Name { get; }
|
string Name { get; }
|
||||||
@ -280,14 +280,14 @@ public interface IMcpTool
|
|||||||
Task<McpResponse> Execute(McpRequest request);
|
Task<McpResponse> Execute(McpRequest request);
|
||||||
}
|
}
|
||||||
|
|
||||||
// OpenHarbor.MCP.Core/Abstractions/IPermissionProvider.cs
|
// Svrnty.MCP.Core/Abstractions/IPermissionProvider.cs
|
||||||
public interface IPermissionProvider
|
public interface IPermissionProvider
|
||||||
{
|
{
|
||||||
Task<bool> HasPermission(string agentId, string action, string? resource = null);
|
Task<bool> HasPermission(string agentId, string action, string? resource = null);
|
||||||
Task<IEnumerable<string>> GetPermissions(string agentId);
|
Task<IEnumerable<string>> GetPermissions(string agentId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// OpenHarbor.MCP.Core/Abstractions/IRateLimiter.cs
|
// Svrnty.MCP.Core/Abstractions/IRateLimiter.cs
|
||||||
public interface IRateLimiter
|
public interface IRateLimiter
|
||||||
{
|
{
|
||||||
Task<bool> TryAcquire(string agentId);
|
Task<bool> TryAcquire(string agentId);
|
||||||
@ -322,7 +322,7 @@ public void McpRequest_WithValidData_Serializes()
|
|||||||
|
|
||||||
**Implementation:**
|
**Implementation:**
|
||||||
```csharp
|
```csharp
|
||||||
// OpenHarbor.MCP.Core/Models/McpRequest.cs
|
// Svrnty.MCP.Core/Models/McpRequest.cs
|
||||||
public record McpRequest
|
public record McpRequest
|
||||||
{
|
{
|
||||||
public string Method { get; init; } = string.Empty;
|
public string Method { get; init; } = string.Empty;
|
||||||
@ -330,7 +330,7 @@ public record McpRequest
|
|||||||
public string? Id { get; init; }
|
public string? Id { get; init; }
|
||||||
}
|
}
|
||||||
|
|
||||||
// OpenHarbor.MCP.Core/Models/McpResponse.cs
|
// Svrnty.MCP.Core/Models/McpResponse.cs
|
||||||
public record McpResponse
|
public record McpResponse
|
||||||
{
|
{
|
||||||
public object? Result { get; init; }
|
public object? Result { get; init; }
|
||||||
@ -338,7 +338,7 @@ public record McpResponse
|
|||||||
public string? Id { get; init; }
|
public string? Id { get; init; }
|
||||||
}
|
}
|
||||||
|
|
||||||
// OpenHarbor.MCP.Core/Models/McpTool.cs
|
// Svrnty.MCP.Core/Models/McpTool.cs
|
||||||
public record McpTool
|
public record McpTool
|
||||||
{
|
{
|
||||||
public string Name { get; init; } = string.Empty;
|
public string Name { get; init; } = string.Empty;
|
||||||
@ -663,15 +663,15 @@ public static IServiceCollection AddMcpServer(
|
|||||||
|
|
||||||
```
|
```
|
||||||
tests/
|
tests/
|
||||||
├── OpenHarbor.MCP.Core.Tests/
|
├── Svrnty.MCP.Core.Tests/
|
||||||
│ ├── Abstractions/ # Interface behavior tests
|
│ ├── Abstractions/ # Interface behavior tests
|
||||||
│ ├── Models/ # Model validation tests
|
│ ├── Models/ # Model validation tests
|
||||||
│ └── Exceptions/ # Exception tests
|
│ └── Exceptions/ # Exception tests
|
||||||
├── OpenHarbor.MCP.Infrastructure.Tests/
|
├── Svrnty.MCP.Infrastructure.Tests/
|
||||||
│ ├── Server/ # Server logic tests
|
│ ├── Server/ # Server logic tests
|
||||||
│ ├── Security/ # Permission & rate limit tests
|
│ ├── Security/ # Permission & rate limit tests
|
||||||
│ └── Transport/ # Transport tests
|
│ └── Transport/ # Transport tests
|
||||||
└── OpenHarbor.MCP.Integration.Tests/
|
└── Svrnty.MCP.Integration.Tests/
|
||||||
└── EndToEnd/ # Full MCP server scenarios
|
└── EndToEnd/ # Full MCP server scenarios
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -694,7 +694,7 @@ tests/
|
|||||||
|
|
||||||
### Purpose
|
### Purpose
|
||||||
|
|
||||||
Enable AI agents to automatically configure OpenHarbor.MCP for any target system by:
|
Enable AI agents to automatically configure Svrnty.MCP for any target system by:
|
||||||
1. Analyzing the system
|
1. Analyzing the system
|
||||||
2. Generating configuration
|
2. Generating configuration
|
||||||
3. Creating sample tools
|
3. Creating sample tools
|
||||||
@ -703,9 +703,9 @@ Enable AI agents to automatically configure OpenHarbor.MCP for any target system
|
|||||||
### Structure
|
### Structure
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
# OpenHarbor.MCP Agent Primer
|
# Svrnty.MCP Agent Primer
|
||||||
|
|
||||||
**For AI Agents:** This file guides automated setup of OpenHarbor.MCP.
|
**For AI Agents:** This file guides automated setup of Svrnty.MCP.
|
||||||
|
|
||||||
## Step 1: System Analysis
|
## Step 1: System Analysis
|
||||||
|
|
||||||
@ -825,12 +825,12 @@ The AGENT-PRIMER.md will include:
|
|||||||
|
|
||||||
**Option 1: NuGet Package (Production)**
|
**Option 1: NuGet Package (Production)**
|
||||||
```bash
|
```bash
|
||||||
dotnet add package OpenHarbor.MCP.AspNetCore
|
dotnet add package Svrnty.MCP.AspNetCore
|
||||||
```
|
```
|
||||||
|
|
||||||
**Option 2: Project Reference (Development)**
|
**Option 2: Project Reference (Development)**
|
||||||
```bash
|
```bash
|
||||||
dotnet add reference ../OpenHarbor.MCP/src/OpenHarbor.MCP.AspNetCore/OpenHarbor.MCP.AspNetCore.csproj
|
dotnet add reference ../Svrnty.MCP/src/Svrnty.MCP.AspNetCore/Svrnty.MCP.AspNetCore.csproj
|
||||||
```
|
```
|
||||||
|
|
||||||
### CODEX MCP Server Structure
|
### CODEX MCP Server Structure
|
||||||
@ -854,7 +854,7 @@ src/Codex.Mcp/
|
|||||||
### Sample Tool Implementation
|
### Sample Tool Implementation
|
||||||
|
|
||||||
```csharp
|
```csharp
|
||||||
using OpenHarbor.MCP.Core.Abstractions;
|
using Svrnty.MCP.Core.Abstractions;
|
||||||
|
|
||||||
public class SearchCodexTool : IMcpTool
|
public class SearchCodexTool : IMcpTool
|
||||||
{
|
{
|
||||||
@ -958,7 +958,7 @@ All new dependencies must be:
|
|||||||
**Documentation:**
|
**Documentation:**
|
||||||
- [x] Updated future-mcp-integration-plan.md
|
- [x] Updated future-mcp-integration-plan.md
|
||||||
- [x] Completion notes in registry.json
|
- [x] Completion notes in registry.json
|
||||||
- [x] CODEX_INDEX.md references OpenHarbor.MCP
|
- [x] CODEX_INDEX.md references Svrnty.MCP
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -988,7 +988,7 @@ All new dependencies must be:
|
|||||||
## Next Steps
|
## Next Steps
|
||||||
|
|
||||||
1. **Get approval for this plan**
|
1. **Get approval for this plan**
|
||||||
2. **Create folder structure:** `/home/svrnty/codex/OpenHarbor.MCP/`
|
2. **Create folder structure:** `/home/svrnty/codex/Svrnty.MCP/`
|
||||||
3. **Write AGENT-PRIMER.md**
|
3. **Write AGENT-PRIMER.md**
|
||||||
4. **Begin Phase 1:** Core abstractions with TDD
|
4. **Begin Phase 1:** Core abstractions with TDD
|
||||||
5. **Track progress:** Use TodoWrite for each phase
|
5. **Track progress:** Use TodoWrite for each phase
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
# OpenHarbor.MCP - Reusable Module Design
|
# Svrnty.MCP - Reusable Module Design
|
||||||
|
|
||||||
**Document Type:** Architecture and Design Specification
|
**Document Type:** Architecture and Design Specification
|
||||||
**Created:** 2025-10-19
|
**Created:** 2025-10-19
|
||||||
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
OpenHarbor.MCP is a **standalone, modular, scalable MCP library** that can be extracted and reused across multiple projects. While CODEX will be the first implementation, the module is designed for general-purpose use.
|
Svrnty.MCP is a **standalone, modular, scalable MCP library** that can be extracted and reused across multiple projects. While CODEX will be the first implementation, the module is designed for general-purpose use.
|
||||||
|
|
||||||
**Key Design Principles:**
|
**Key Design Principles:**
|
||||||
- Zero CODEX dependencies - Pure .NET library
|
- Zero CODEX dependencies - Pure .NET library
|
||||||
@ -24,11 +24,11 @@ OpenHarbor.MCP is a **standalone, modular, scalable MCP library** that can be ex
|
|||||||
|
|
||||||
**Standalone folder (NOT in CODEX codebase):**
|
**Standalone folder (NOT in CODEX codebase):**
|
||||||
```
|
```
|
||||||
/home/svrnty/codex/OpenHarbor.MCP/ # Separate from CODEX
|
/home/svrnty/codex/Svrnty.MCP/ # Separate from CODEX
|
||||||
├── README.md # Usage documentation
|
├── README.md # Usage documentation
|
||||||
├── AGENT-PRIMER.md # AI-automated configuration
|
├── AGENT-PRIMER.md # AI-automated configuration
|
||||||
├── LICENSE # MIT license
|
├── LICENSE # MIT license
|
||||||
├── OpenHarbor.MCP.sln # Solution file
|
├── Svrnty.MCP.sln # Solution file
|
||||||
├── src/ # Source code
|
├── src/ # Source code
|
||||||
├── tests/ # Unit + integration tests
|
├── tests/ # Unit + integration tests
|
||||||
├── samples/CodexMcpServer/ # CODEX example
|
├── samples/CodexMcpServer/ # CODEX example
|
||||||
@ -47,26 +47,26 @@ OpenHarbor.MCP is a **standalone, modular, scalable MCP library** that can be ex
|
|||||||
|
|
||||||
**Clean Architecture Layers:**
|
**Clean Architecture Layers:**
|
||||||
|
|
||||||
### 1. OpenHarbor.MCP.Core - Pure Abstractions
|
### 1. Svrnty.MCP.Core - Pure Abstractions
|
||||||
- `IMcpServer` - Server interface
|
- `IMcpServer` - Server interface
|
||||||
- `IMcpTool` - Tool interface
|
- `IMcpTool` - Tool interface
|
||||||
- `IPermissionProvider` - Permission abstraction
|
- `IPermissionProvider` - Permission abstraction
|
||||||
- `IRateLimiter` - Rate limiting abstraction
|
- `IRateLimiter` - Rate limiting abstraction
|
||||||
- Zero dependencies
|
- Zero dependencies
|
||||||
|
|
||||||
### 2. OpenHarbor.MCP.Infrastructure - Implementation
|
### 2. Svrnty.MCP.Infrastructure - Implementation
|
||||||
- `McpServer` - Server implementation
|
- `McpServer` - Server implementation
|
||||||
- `ToolRegistry` - Dynamic tool registration
|
- `ToolRegistry` - Dynamic tool registration
|
||||||
- `StdioTransport` - Process communication
|
- `StdioTransport` - Process communication
|
||||||
- `PermissionProvider` - Access control
|
- `PermissionProvider` - Access control
|
||||||
- `TokenBucketRateLimiter` - Rate limiting
|
- `TokenBucketRateLimiter` - Rate limiting
|
||||||
|
|
||||||
### 3. OpenHarbor.MCP.AspNetCore - Integration
|
### 3. Svrnty.MCP.AspNetCore - Integration
|
||||||
- ServiceCollectionExtensions - DI
|
- ServiceCollectionExtensions - DI
|
||||||
- McpMiddleware - HTTP transport
|
- McpMiddleware - HTTP transport
|
||||||
- McpOptions - Configuration
|
- McpOptions - Configuration
|
||||||
|
|
||||||
### 4. OpenHarbor.MCP.Cli - CLI Runner
|
### 4. Svrnty.MCP.Cli - CLI Runner
|
||||||
- HTTP transport runner
|
- HTTP transport runner
|
||||||
- Configuration loading
|
- Configuration loading
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ OpenHarbor.MCP is a **standalone, modular, scalable MCP library** that can be ex
|
|||||||
|
|
||||||
**AI Agent Workflow:**
|
**AI Agent Workflow:**
|
||||||
```
|
```
|
||||||
User: "Copy OpenHarbor.MCP to my project"
|
User: "Copy Svrnty.MCP to my project"
|
||||||
↓
|
↓
|
||||||
AI reads AGENT-PRIMER.md
|
AI reads AGENT-PRIMER.md
|
||||||
↓
|
↓
|
||||||
@ -108,17 +108,17 @@ User validates and runs
|
|||||||
|
|
||||||
**Option 1: NuGet Package (Production)**
|
**Option 1: NuGet Package (Production)**
|
||||||
```xml
|
```xml
|
||||||
<PackageReference Include="OpenHarbor.MCP.AspNetCore" Version="1.0.0" />
|
<PackageReference Include="Svrnty.MCP.AspNetCore" Version="1.0.0" />
|
||||||
```
|
```
|
||||||
|
|
||||||
**Option 2: Local Project Reference (Development)**
|
**Option 2: Local Project Reference (Development)**
|
||||||
```xml
|
```xml
|
||||||
<ProjectReference Include="../OpenHarbor.MCP/src/OpenHarbor.MCP.AspNetCore/OpenHarbor.MCP.AspNetCore.csproj" />
|
<ProjectReference Include="../Svrnty.MCP/src/Svrnty.MCP.AspNetCore/Svrnty.MCP.AspNetCore.csproj" />
|
||||||
```
|
```
|
||||||
|
|
||||||
**CODEX MCP Server Location:**
|
**CODEX MCP Server Location:**
|
||||||
```
|
```
|
||||||
src/Codex.Mcp/ # Uses OpenHarbor.MCP library
|
src/Codex.Mcp/ # Uses Svrnty.MCP library
|
||||||
├── Program.cs # CLI entry point
|
├── Program.cs # CLI entry point
|
||||||
├── CodexMcpServer.cs # Server configuration
|
├── CodexMcpServer.cs # Server configuration
|
||||||
├── Tools/
|
├── Tools/
|
||||||
@ -135,7 +135,7 @@ src/Codex.Mcp/ # Uses OpenHarbor.MCP library
|
|||||||
## Implementation Phases
|
## Implementation Phases
|
||||||
|
|
||||||
### Phase 1: Core Module Development (Week 1-2, 6-8 hours)
|
### Phase 1: Core Module Development (Week 1-2, 6-8 hours)
|
||||||
- Location: `/home/svrnty/codex/OpenHarbor.MCP/src/`
|
- Location: `/home/svrnty/codex/Svrnty.MCP/src/`
|
||||||
- Deliverables:
|
- Deliverables:
|
||||||
- Core abstractions (Core project)
|
- Core abstractions (Core project)
|
||||||
- Server implementation (Infrastructure project)
|
- Server implementation (Infrastructure project)
|
||||||
@ -146,7 +146,7 @@ src/Codex.Mcp/ # Uses OpenHarbor.MCP library
|
|||||||
- Testing: TDD approach (tests first, all phases)
|
- Testing: TDD approach (tests first, all phases)
|
||||||
|
|
||||||
### Phase 2: CODEX Integration Example (Week 2-3, 4-6 hours)
|
### Phase 2: CODEX Integration Example (Week 2-3, 4-6 hours)
|
||||||
- Location: `/home/svrnty/codex/OpenHarbor.MCP/samples/CodexMcpServer/`
|
- Location: `/home/svrnty/codex/Svrnty.MCP/samples/CodexMcpServer/`
|
||||||
- Deliverables:
|
- Deliverables:
|
||||||
- Sample implementation with 6 CODEX tools
|
- Sample implementation with 6 CODEX tools
|
||||||
- Permission configuration
|
- Permission configuration
|
||||||
@ -154,7 +154,7 @@ src/Codex.Mcp/ # Uses OpenHarbor.MCP library
|
|||||||
- Integration tests with CODEX API
|
- Integration tests with CODEX API
|
||||||
|
|
||||||
### Phase 3: Documentation & Reusability (Week 3, 4-6 hours)
|
### Phase 3: Documentation & Reusability (Week 3, 4-6 hours)
|
||||||
- Location: `/home/svrnty/codex/OpenHarbor.MCP/docs/`
|
- Location: `/home/svrnty/codex/Svrnty.MCP/docs/`
|
||||||
- Deliverables:
|
- Deliverables:
|
||||||
- Complete README.md
|
- Complete README.md
|
||||||
- Architecture documentation
|
- Architecture documentation
|
||||||
@ -163,7 +163,7 @@ src/Codex.Mcp/ # Uses OpenHarbor.MCP library
|
|||||||
- Migration guide (copy to new projects)
|
- Migration guide (copy to new projects)
|
||||||
|
|
||||||
### Phase 4: CODEX Production Integration (Week 3-4, 2-4 hours)
|
### Phase 4: CODEX Production Integration (Week 3-4, 2-4 hours)
|
||||||
- Location: CODEX references OpenHarbor.MCP
|
- Location: CODEX references Svrnty.MCP
|
||||||
- Deliverables:
|
- Deliverables:
|
||||||
- Update CODEX to use library
|
- Update CODEX to use library
|
||||||
- Production deployment configuration
|
- Production deployment configuration
|
||||||
@ -192,7 +192,7 @@ src/Codex.Mcp/ # Uses OpenHarbor.MCP library
|
|||||||
## Reusability Features
|
## Reusability Features
|
||||||
|
|
||||||
### 1. Folder Portability
|
### 1. Folder Portability
|
||||||
- Copy `/home/svrnty/codex/OpenHarbor.MCP/` to any project
|
- Copy `/home/svrnty/codex/Svrnty.MCP/` to any project
|
||||||
- Self-contained with all documentation
|
- Self-contained with all documentation
|
||||||
- No external CODEX dependencies
|
- No external CODEX dependencies
|
||||||
|
|
||||||
@ -248,7 +248,7 @@ src/Codex.Mcp/ # Uses OpenHarbor.MCP library
|
|||||||
|
|
||||||
## Related Documentation
|
## Related Documentation
|
||||||
|
|
||||||
**OpenHarbor.MCP Documentation:**
|
**Svrnty.MCP Documentation:**
|
||||||
- [README.md](../README.md) - Project overview and quick start
|
- [README.md](../README.md) - Project overview and quick start
|
||||||
- [AGENT-PRIMER.md](../AGENT-PRIMER.md) - AI-automated configuration guide
|
- [AGENT-PRIMER.md](../AGENT-PRIMER.md) - AI-automated configuration guide
|
||||||
- [Implementation Plan](implementation-plan.md) - Detailed TDD implementation strategy
|
- [Implementation Plan](implementation-plan.md) - Detailed TDD implementation strategy
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\src\OpenHarbor.MCP.Core\OpenHarbor.MCP.Core.csproj" />
|
<ProjectReference Include="..\..\src\Svrnty.MCP.Core\Svrnty.MCP.Core.csproj" />
|
||||||
<ProjectReference Include="..\..\src\OpenHarbor.MCP.AspNetCore\OpenHarbor.MCP.AspNetCore.csproj" />
|
<ProjectReference Include="..\..\src\Svrnty.MCP.AspNetCore\Svrnty.MCP.AspNetCore.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
|||||||
@ -5,8 +5,8 @@ using CodexMcpServer.Tools;
|
|||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using OpenHarbor.MCP.AspNetCore.Extensions;
|
using Svrnty.MCP.AspNetCore.Extensions;
|
||||||
using OpenHarbor.MCP.Core;
|
using Svrnty.MCP.Core;
|
||||||
|
|
||||||
namespace CodexMcpServer;
|
namespace CodexMcpServer;
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@ using System;
|
|||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using OpenHarbor.MCP.Core;
|
using Svrnty.MCP.Core;
|
||||||
|
|
||||||
namespace CodexMcpServer.Tools;
|
namespace CodexMcpServer.Tools;
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@ using System;
|
|||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using OpenHarbor.MCP.Core;
|
using Svrnty.MCP.Core;
|
||||||
|
|
||||||
namespace CodexMcpServer.Tools;
|
namespace CodexMcpServer.Tools;
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@ using System.Linq;
|
|||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using OpenHarbor.MCP.Core;
|
using Svrnty.MCP.Core;
|
||||||
|
|
||||||
namespace CodexMcpServer.Tools;
|
namespace CodexMcpServer.Tools;
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@ using System;
|
|||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using OpenHarbor.MCP.Core;
|
using Svrnty.MCP.Core;
|
||||||
|
|
||||||
namespace CodexMcpServer.Tools;
|
namespace CodexMcpServer.Tools;
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@ using System;
|
|||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using OpenHarbor.MCP.Core;
|
using Svrnty.MCP.Core;
|
||||||
|
|
||||||
namespace CodexMcpServer.Tools;
|
namespace CodexMcpServer.Tools;
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@ using System.Net.Http;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using OpenHarbor.MCP.Core;
|
using Svrnty.MCP.Core;
|
||||||
|
|
||||||
namespace CodexMcpServer.Tools;
|
namespace CodexMcpServer.Tools;
|
||||||
|
|
||||||
|
|||||||
@ -5,9 +5,9 @@ using Microsoft.AspNetCore.Builder;
|
|||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Routing;
|
using Microsoft.AspNetCore.Routing;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using OpenHarbor.MCP.Core;
|
using Svrnty.MCP.Core;
|
||||||
|
|
||||||
namespace OpenHarbor.MCP.AspNetCore.Extensions;
|
namespace Svrnty.MCP.AspNetCore.Extensions;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Implements JSON-RPC 2.0 transport over HTTP.
|
/// Implements JSON-RPC 2.0 transport over HTTP.
|
||||||
|
|||||||
@ -11,7 +11,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\OpenHarbor.MCP.Core\OpenHarbor.MCP.Core.csproj" />
|
<ProjectReference Include="..\Svrnty.MCP.Core\Svrnty.MCP.Core.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace OpenHarbor.MCP.Core;
|
namespace Svrnty.MCP.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Core abstraction for an MCP (Model Context Protocol) tool.
|
/// Core abstraction for an MCP (Model Context Protocol) tool.
|
||||||
|
|||||||
@ -3,7 +3,7 @@ using System.Linq;
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace OpenHarbor.MCP.Core;
|
namespace Svrnty.MCP.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// MCP Server that orchestrates tool execution and handles JSON-RPC 2.0 protocol methods.
|
/// MCP Server that orchestrates tool execution and handles JSON-RPC 2.0 protocol methods.
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
namespace OpenHarbor.MCP.Core;
|
namespace Svrnty.MCP.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents a JSON-RPC 2.0 error object.
|
/// Represents a JSON-RPC 2.0 error object.
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
namespace OpenHarbor.MCP.Core;
|
namespace Svrnty.MCP.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents a JSON-RPC 2.0 request from Claude Desktop to MCP Server.
|
/// Represents a JSON-RPC 2.0 request from Claude Desktop to MCP Server.
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
namespace OpenHarbor.MCP.Core;
|
namespace Svrnty.MCP.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents a JSON-RPC 2.0 response from MCP Server to Claude Desktop.
|
/// Represents a JSON-RPC 2.0 response from MCP Server to Claude Desktop.
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
namespace OpenHarbor.MCP.Core.Models;
|
namespace Svrnty.MCP.Core.Models;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Context information for routing decisions.
|
/// Context information for routing decisions.
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
namespace OpenHarbor.MCP.Core.Models;
|
namespace Svrnty.MCP.Core.Models;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Configuration for an MCP server registration.
|
/// Configuration for an MCP server registration.
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
namespace OpenHarbor.MCP.Core.Models;
|
namespace Svrnty.MCP.Core.Models;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents the health status of an MCP server.
|
/// Represents the health status of an MCP server.
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
namespace OpenHarbor.MCP.Core.Models;
|
namespace Svrnty.MCP.Core.Models;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents metadata about a registered MCP server.
|
/// Represents metadata about a registered MCP server.
|
||||||
|
|||||||
@ -4,7 +4,7 @@ using System.Text;
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace OpenHarbor.MCP.Core;
|
namespace Svrnty.MCP.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Implements JSON-RPC 2.0 transport over stdin/stdout.
|
/// Implements JSON-RPC 2.0 transport over stdin/stdout.
|
||||||
|
|||||||
@ -2,7 +2,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
namespace OpenHarbor.MCP.Core;
|
namespace Svrnty.MCP.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Registry for managing MCP tools.
|
/// Registry for managing MCP tools.
|
||||||
|
|||||||
@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\samples\CodexMcpServer\CodexMcpServer.csproj" />
|
<ProjectReference Include="..\..\samples\CodexMcpServer\CodexMcpServer.csproj" />
|
||||||
<ProjectReference Include="..\..\src\OpenHarbor.MCP.Core\OpenHarbor.MCP.Core.csproj" />
|
<ProjectReference Include="..\..\src\Svrnty.MCP.Core\Svrnty.MCP.Core.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@ -6,7 +6,7 @@ using System.Net.Http;
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using OpenHarbor.MCP.Core;
|
using Svrnty.MCP.Core;
|
||||||
using CodexMcpServer.Tools;
|
using CodexMcpServer.Tools;
|
||||||
|
|
||||||
namespace CodexMcpServer.Tests;
|
namespace CodexMcpServer.Tests;
|
||||||
|
|||||||
@ -6,7 +6,7 @@ using System.Net.Http;
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using OpenHarbor.MCP.Core;
|
using Svrnty.MCP.Core;
|
||||||
using CodexMcpServer.Tools;
|
using CodexMcpServer.Tools;
|
||||||
|
|
||||||
namespace CodexMcpServer.Tests;
|
namespace CodexMcpServer.Tests;
|
||||||
|
|||||||
@ -6,7 +6,7 @@ using System.Net.Http;
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using OpenHarbor.MCP.Core;
|
using Svrnty.MCP.Core;
|
||||||
using CodexMcpServer.Tools;
|
using CodexMcpServer.Tools;
|
||||||
|
|
||||||
namespace CodexMcpServer.Tests;
|
namespace CodexMcpServer.Tests;
|
||||||
|
|||||||
@ -6,7 +6,7 @@ using System.Net.Http;
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using OpenHarbor.MCP.Core;
|
using Svrnty.MCP.Core;
|
||||||
using CodexMcpServer.Tools;
|
using CodexMcpServer.Tools;
|
||||||
|
|
||||||
namespace CodexMcpServer.Tests;
|
namespace CodexMcpServer.Tests;
|
||||||
|
|||||||
@ -6,7 +6,7 @@ using System.Net.Http;
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using OpenHarbor.MCP.Core;
|
using Svrnty.MCP.Core;
|
||||||
using CodexMcpServer.Tools;
|
using CodexMcpServer.Tools;
|
||||||
|
|
||||||
namespace CodexMcpServer.Tests;
|
namespace CodexMcpServer.Tests;
|
||||||
|
|||||||
@ -6,7 +6,7 @@ using System.Net.Http;
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using OpenHarbor.MCP.Core;
|
using Svrnty.MCP.Core;
|
||||||
using CodexMcpServer.Tools;
|
using CodexMcpServer.Tools;
|
||||||
|
|
||||||
namespace CodexMcpServer.Tests;
|
namespace CodexMcpServer.Tests;
|
||||||
|
|||||||
@ -4,7 +4,7 @@ using Microsoft.AspNetCore.Hosting;
|
|||||||
using Microsoft.AspNetCore.TestHost;
|
using Microsoft.AspNetCore.TestHost;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using OpenHarbor.MCP.AspNetCore.Extensions;
|
using Svrnty.MCP.AspNetCore.Extensions;
|
||||||
using System;
|
using System;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
@ -12,7 +12,7 @@ using System.Text;
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace OpenHarbor.MCP.Core.Tests;
|
namespace Svrnty.MCP.Core.Tests;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Unit tests for HttpTransport following TDD approach.
|
/// Unit tests for HttpTransport following TDD approach.
|
||||||
|
|||||||
@ -3,7 +3,7 @@ using Moq;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
|
|
||||||
namespace OpenHarbor.MCP.Core.Tests;
|
namespace Svrnty.MCP.Core.Tests;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Unit tests for IMcpTool interface following TDD approach.
|
/// Unit tests for IMcpTool interface following TDD approach.
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
using Xunit;
|
using Xunit;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
|
|
||||||
namespace OpenHarbor.MCP.Core.Tests;
|
namespace Svrnty.MCP.Core.Tests;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Unit tests for MCP request/response models following TDD approach.
|
/// Unit tests for MCP request/response models following TDD approach.
|
||||||
|
|||||||
@ -3,7 +3,7 @@ using Moq;
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace OpenHarbor.MCP.Core.Tests;
|
namespace Svrnty.MCP.Core.Tests;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Unit tests for McpServer following TDD approach.
|
/// Unit tests for McpServer following TDD approach.
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
using Xunit;
|
using Xunit;
|
||||||
using OpenHarbor.MCP.Core.Models;
|
using Svrnty.MCP.Core.Models;
|
||||||
|
|
||||||
namespace OpenHarbor.MCP.Core.Tests.Models;
|
namespace Svrnty.MCP.Core.Tests.Models;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Unit tests for RoutingContext model following TDD approach.
|
/// Unit tests for RoutingContext model following TDD approach.
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
using Xunit;
|
using Xunit;
|
||||||
using OpenHarbor.MCP.Core.Models;
|
using Svrnty.MCP.Core.Models;
|
||||||
|
|
||||||
namespace OpenHarbor.MCP.Core.Tests.Models;
|
namespace Svrnty.MCP.Core.Tests.Models;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Unit tests for ServerConfig model following TDD approach.
|
/// Unit tests for ServerConfig model following TDD approach.
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
using Xunit;
|
using Xunit;
|
||||||
using OpenHarbor.MCP.Core.Models;
|
using Svrnty.MCP.Core.Models;
|
||||||
|
|
||||||
namespace OpenHarbor.MCP.Core.Tests.Models;
|
namespace Svrnty.MCP.Core.Tests.Models;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Unit tests for ServerHealthStatus model following TDD approach.
|
/// Unit tests for ServerHealthStatus model following TDD approach.
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
using Xunit;
|
using Xunit;
|
||||||
using OpenHarbor.MCP.Core.Models;
|
using Svrnty.MCP.Core.Models;
|
||||||
|
|
||||||
namespace OpenHarbor.MCP.Core.Tests.Models;
|
namespace Svrnty.MCP.Core.Tests.Models;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Unit tests for ServerInfo model following TDD approach.
|
/// Unit tests for ServerInfo model following TDD approach.
|
||||||
|
|||||||
@ -6,7 +6,7 @@ using System.Text;
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace OpenHarbor.MCP.Core.Tests;
|
namespace Svrnty.MCP.Core.Tests;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Unit tests for StdioTransport following TDD approach.
|
/// Unit tests for StdioTransport following TDD approach.
|
||||||
|
|||||||
@ -23,8 +23,8 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\src\OpenHarbor.MCP.Core\OpenHarbor.MCP.Core.csproj" />
|
<ProjectReference Include="..\..\src\Svrnty.MCP.Core\Svrnty.MCP.Core.csproj" />
|
||||||
<ProjectReference Include="..\..\src\OpenHarbor.MCP.AspNetCore\OpenHarbor.MCP.AspNetCore.csproj" />
|
<ProjectReference Include="..\..\src\Svrnty.MCP.AspNetCore\Svrnty.MCP.AspNetCore.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@ -4,7 +4,7 @@ using System.Text.Json;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
namespace OpenHarbor.MCP.Core.Tests;
|
namespace Svrnty.MCP.Core.Tests;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Unit tests for ToolRegistry following TDD approach.
|
/// Unit tests for ToolRegistry following TDD approach.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user