Zum Hauptinhalt springen

MCP (Model Context Protocol) Services — Entwicklung

Dieser Abschnitt richtet sich an Entwickler, die an den MCP (Model Context Protocol) Services selbst arbeiten — die Services aus dem Quellcode bauen, sie gegen einen lokalen OctoMesh-Stack betreiben und die Konfigurationsoberfläche verstehen. Endanwender-Dokumentation (Registrierung der gehosteten Endpunkte bei Claude Code, verfügbare Tools, Fehlerbehebung) finden Sie unter MCP Services im Tech Guide.

Repository​

Die Implementierung liegt im Repository octo-mcp-service:

octo-mcp-service/
├── src/McpServices/ # ASP.NET host + tool classes
├── tests/McpServices.Tests/ # 400+ unit tests
├── docs/ # Internal concepts (risk classification sweep, etc.)
├── Dockerfile
├── azure-pipelines.yml
├── Octo.McpServices.sln
├── README.md # User-facing README — duplicates parts of this doc set
└── CLAUDE.md # Coding conventions for AI assistants editing the repo

Die maßgebliche Quelle für Konventionen auf Code-Ebene ist CLAUDE.md im Repository — sie beschreibt das verpflichtende Tool-Class-Muster, das Response-Envelope, das optimistische Locking, die File-Transfer-Architektur, den Aggregation-Mapper und den Aufbau der Test-Suite.

Drei Tool-Familien​

FamiliePfad durch den StackVerwendet von
Platform-Admin-Tools (~140)HTTP zu den Backend-Services über OctoServiceClientFactory + *ClientContext-Helfer — derselbe Code-Pfad, den die CLI nutztocto-cli-Paritäts-Tools (tenant, identity, blueprint, communication, time-series, reporting, file I/O)
Generische CK-CRUD- + Schema-Tools (~13)Direkt an ITenantRepository (MongoDB) — kein HTTP-Overheadquery_entities, create_entity, get_type_schema, etc.
Aggregations- + Stream-Data-Abfrage-Tools (~10)Direkt an die Engine über ITenantRepository / ITenantContext.GetStreamDataRepository(), mit dem kleingeschriebenen AggregationFunctionDto-Enum und AggregationMapperquery_entities_aggregation, query_stream_data_downsampling, Persisted-Query-Replay

Diese sind bewusst getrennt gehalten — die Begründung finden Sie in CLAUDE.md § Background. Versuchen Sie nicht, sie zusammenzuführen.

Was dieser Abschnitt enthält​

  • Lokale Entwicklung — Bauen, Betrieb gegen Start-Octo, Registrierung eines lokalen Servers bei Claude Code, Port-Layout.
  • Konfiguration — appsettings.json, Umgebungsvariablen, Backend-Service-URLs, File-Transfer-Limits, Caching, Health-Probes.

Bauen & Testen (Spickzettel)​

# Build the MCP server
dotnet build src/McpServices/McpServices.csproj -c DebugL

# Build the entire solution (server + tests + resources)
dotnet build Octo.McpServices.sln -c DebugL

# Run all tests (~400 tests, ~250 ms)
dotnet test Octo.McpServices.sln -c DebugL

# Filter tests by class
dotnet test --filter "FullyQualifiedName~TenantManagementToolsTests"

# Run dev server (binds to 5016 HTTP / 5017 HTTPS)
cd src/McpServices && dotnet run --environment Development

Build-Konfigurationen: Debug, Release, DebugL (lokale Entwicklung mit OctoVersion=999.0.0, verwendet lokale NuGet-Pakete aus ../nuget/).

TreatWarningsAsErrors ist aktiviert. CS1591 (fehlende XML-Doku) bricht den Build für jedes öffentliche Member von McpServices — jeder öffentliche Typ, jede Eigenschaft und jede Methode einer neuen Tool-Klasse benötigt eine XML-Doc-Zusammenfassung.