CyberdyneDevelopment.DeveloperTools.McpServer 0.1.0-preview.5

This is a prerelease version of CyberdyneDevelopment.DeveloperTools.McpServer.
dotnet add package CyberdyneDevelopment.DeveloperTools.McpServer --version 0.1.0-preview.5
                    
NuGet\Install-Package CyberdyneDevelopment.DeveloperTools.McpServer -Version 0.1.0-preview.5
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CyberdyneDevelopment.DeveloperTools.McpServer" Version="0.1.0-preview.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CyberdyneDevelopment.DeveloperTools.McpServer" Version="0.1.0-preview.5" />
                    
Directory.Packages.props
<PackageReference Include="CyberdyneDevelopment.DeveloperTools.McpServer" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CyberdyneDevelopment.DeveloperTools.McpServer --version 0.1.0-preview.5
                    
#r "nuget: CyberdyneDevelopment.DeveloperTools.McpServer, 0.1.0-preview.5"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package CyberdyneDevelopment.DeveloperTools.McpServer@0.1.0-preview.5
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=CyberdyneDevelopment.DeveloperTools.McpServer&version=0.1.0-preview.5&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=CyberdyneDevelopment.DeveloperTools.McpServer&version=0.1.0-preview.5&prerelease
                    
Install as a Cake Tool

McpHub

A Model Context Protocol (MCP) server that provides development tools for .NET projects, including Roslyn code analysis, project management integrations, and agent-to-agent (A2A) protocol support.

Features

  • Roslyn Tools: Code navigation, analysis, refactoring, and generation
  • Project Management: Plane, GitLab, GitHub, Azure DevOps integrations
  • A2A Protocol: Spawn and manage AI agents (Claude CLI, Ollama)
  • Session Management: Persistent workspace sessions with auto-resume

Installation

Prerequisites

  • .NET 10.0 SDK
  • Local clones of dependencies:
    • mc3-po (sibling directory)
    • mcp (FractalDataWorks, sibling directory)

Build and Publish

# From the developer-tools repository root
cd /path/to/developer-tools

# Publish to local bin directory
dotnet publish public/src/McpHub/McpHub.csproj -c Release -o ~/.local/bin/mcp-hub

# Or publish to a custom location
dotnet publish public/src/McpHub/McpHub.csproj -c Release -o /path/to/install/mcp-hub

Verify Installation

~/.local/bin/mcp-hub/McpHub --version
~/.local/bin/mcp-hub/McpHub --help

Configuration

Claude Code Settings

Add McpHub to your Claude Code MCP servers configuration in ~/.claude/settings.json:

{
  "mcpServers": {
    "mcp-hub": {
      "command": "/home/YOUR_USERNAME/.local/bin/mcp-hub/McpHub",
      "args": []
    }
  }
}

Or with a specific solution:

{
  "mcpServers": {
    "mcp-hub": {
      "command": "/home/YOUR_USERNAME/.local/bin/mcp-hub/McpHub",
      "args": ["/path/to/your/solution.slnx"]
    }
  }
}

Application Settings

McpHub uses appsettings.json for configuration. The file is located in the publish directory alongside the executable.

MCP Server Connections (for tool forwarding)
{
  "McpServerConnections": {
    "Servers": {
      "external-server": {
        "Command": "/path/to/other-mcp-server",
        "Args": ["--arg1", "value1"],
        "WorkingDirectory": "/path/to/working/dir"
      }
    }
  }
}
Hierarchical Protocol Configuration

McpHub uses a hierarchical configuration system that merges user-level and project-level settings.

User Config (Windows: %APPDATA%\mcp-hub\config.json, Linux: ~/.config/mcp-hub/config.json):

{
  "projectManagement": {
    "default": "azure-devops",
    "configurations": {
      "azure-devops": {
        "protocolType": "AzureDevOps",
        "organizationUrl": "https://dev.azure.com/my-org",
        "authenticationType": "InteractiveBrowser",
        "enablePersistentTokenCache": true,
        "tokenRefreshHours": 24,
        "enabled": true
      },
      "plane": {
        "protocolType": "Plane",
        "baseUrl": "https://plane.example.com",
        "workspaceSlug": "my-workspace",
        "secretManagerName": "environment",
        "secretKeyName": "PLANE_TOKEN"
      }
    }
  },
  "sourceControl": {
    "default": "azure-devops",
    "configurations": {
      "azure-devops": {
        "protocolType": "AzureDevOps",
        "organizationUrl": "https://dev.azure.com/my-org",
        "authenticationType": "InteractiveBrowser",
        "enablePersistentTokenCache": true,
        "tokenRefreshHours": 24,
        "enabled": true
      },
      "gitlab": {
        "protocolType": "GitLab",
        "baseUrl": "https://gitlab.example.com",
        "secretManagerName": "environment",
        "secretKeyName": "GITLAB_TOKEN"
      }
    }
  },
  "secretManagers": {
    "environment": { "secretManagerType": "EnvironmentVariable" }
  }
}

Note: Project management and source control can use the same configuration name (e.g., "azure-devops") - they are stored in separate namespaces internally.

Project Override (<project>/.claude/mcp-hub.json):

{
  "projectManagement": {
    "configurations": {
      "plane": {
        "defaultProjectId": "project-specific-id"
      }
    }
  }
}

Project config merges over user config - only include settings you want to override.

See example configs in Configuration/examples/.

Environment Variables

Variable Description
PLANE_TOKEN API token for Plane project management
GITLAB_TOKEN Personal access token for GitLab
GITHUB_TOKEN Personal access token for GitHub

Usage

Command Line

# Start with no solution (use CreateSession tool later)
McpHub

# Start with a specific solution
McpHub /path/to/MySolution.sln

# Resume a previous session
McpHub --session=12345678-1234-1234-1234-123456789abc

Available Tools

Session Management
  • CreateSession - Create a new session for a solution
  • ResumeSession - Resume an existing session
  • ListSessions - List all sessions (active and persisted)
  • SaveSession - Persist current session state
  • CloseSession - Close a session
  • UpdateSession - Update session metadata
Roslyn Navigation
  • FindDefinition - Go to definition
  • FindReferences - Find all references
  • FindImplementations - Find interface implementations
  • FindDerivedTypes - Find derived classes
  • FindCallers / FindCallees - Call hierarchy
Roslyn Analysis
  • GetDiagnostics - Get compiler diagnostics
  • AnalyzeComplexity - Cyclomatic complexity analysis
  • AnalyzeCoupling - Coupling metrics
  • FindUnusedCode - Dead code detection
  • AnalyzeNullability - Nullable reference analysis
Roslyn Refactoring
  • Rename - Rename symbol
  • ExtractMethod - Extract code to method
  • ExtractVariable - Extract expression to variable
  • EncapsulateField - Create property for field
  • InlineVariable / InlineMethod - Inline refactoring
Roslyn Generation
  • GenerateConstructor - Generate constructor
  • GenerateProperty - Generate property
  • ImplementInterface - Implement interface members
  • GenerateEquality - Generate Equals/GetHashCode
Project Management
  • Plane, GitLab, GitHub, Azure DevOps issue and project tools

Session Storage

Session data is stored in:

  • Linux: ~/.local/share/mcp-hub/sessions/
  • macOS: ~/Library/Application Support/mcp-hub/sessions/
  • Windows: %LOCALAPPDATA%/mcp-hub/sessions/

Project session index is stored in:

  • <project>/.claude/roslyn.sessions

Claude Code Integration

McpHub is designed to work with Claude Code using a Tech Lead + Specialists model.

Setup Prompts

Use these prompts to configure Claude Code:

Prompt Purpose
docs/prompts/user-level-claude-md.md User-level Tech Lead config
docs/prompts/project-level-claude-md.md FDW project specialists
docs/prompts/specialists/ Individual specialist definitions

Specialists

Specialist Skills
fdw-service-specialist /create-service-domain, /create-factory, /create-provider
fdw-configuration-specialist /create-configuration, /generate-ddl, /bind-configuration
type-collection-specialist /create-type-collection, /create-service-type
fdw-expert /review-patterns, /check-results, /check-logging
mc3po-specialist /create-protocol, /create-tool, /wire-mcp
test-engineer /create-tests, /test-strategy, /verify-coverage

Development

Building from Source

cd developer-tools
dotnet build public/src/McpHub/McpHub.csproj

Running Tests

dotnet test tests/McpHub.Tests/McpHub.Tests.csproj

Project Structure

public/src/McpHub/
├── Configuration/          # Configuration classes
├── McpHub.csproj          # Project file
├── Program.cs             # Entry point and DI setup
├── ToolRegistration.cs    # Tool discovery and registration
├── SessionStateResource.cs # Session state MCP resource
├── WorkspaceStateResource.cs # Workspace state MCP resource
└── appsettings.json       # Default configuration

Troubleshooting

Common Issues

"No session or solution specified"

  • Start McpHub with a solution path, or use the CreateSession tool

"Failed to load solution"

  • Ensure the solution file exists and is valid
  • Check that all project references are resolvable

Session not persisting

  • Verify write permissions to the session storage directory
  • Use SaveSession tool to manually persist

Tools not appearing

  • Check that all dependencies are properly referenced
  • Verify the MCP server is connecting (check Claude Code logs)

Logs

McpHub writes logs to stderr. In Claude Code, these appear in the MCP server output panel.

To increase verbosity, set the logging level in appsettings.json:

{
  "Logging": {
    "LogLevel": {
      "Default": "Debug"
    }
  }
}

License

Proprietary - Cyberdyne Development

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-preview.5 49 1/7/2026