CyberdyneDevelopment.DeveloperTools.McpServer
0.1.0-preview.5
dotnet add package CyberdyneDevelopment.DeveloperTools.McpServer --version 0.1.0-preview.5
NuGet\Install-Package CyberdyneDevelopment.DeveloperTools.McpServer -Version 0.1.0-preview.5
<PackageReference Include="CyberdyneDevelopment.DeveloperTools.McpServer" Version="0.1.0-preview.5" />
<PackageVersion Include="CyberdyneDevelopment.DeveloperTools.McpServer" Version="0.1.0-preview.5" />
<PackageReference Include="CyberdyneDevelopment.DeveloperTools.McpServer" />
paket add CyberdyneDevelopment.DeveloperTools.McpServer --version 0.1.0-preview.5
#r "nuget: CyberdyneDevelopment.DeveloperTools.McpServer, 0.1.0-preview.5"
#:package CyberdyneDevelopment.DeveloperTools.McpServer@0.1.0-preview.5
#addin nuget:?package=CyberdyneDevelopment.DeveloperTools.McpServer&version=0.1.0-preview.5&prerelease
#tool nuget:?package=CyberdyneDevelopment.DeveloperTools.McpServer&version=0.1.0-preview.5&prerelease
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 solutionResumeSession- Resume an existing sessionListSessions- List all sessions (active and persisted)SaveSession- Persist current session stateCloseSession- Close a sessionUpdateSession- Update session metadata
Roslyn Navigation
FindDefinition- Go to definitionFindReferences- Find all referencesFindImplementations- Find interface implementationsFindDerivedTypes- Find derived classesFindCallers/FindCallees- Call hierarchy
Roslyn Analysis
GetDiagnostics- Get compiler diagnosticsAnalyzeComplexity- Cyclomatic complexity analysisAnalyzeCoupling- Coupling metricsFindUnusedCode- Dead code detectionAnalyzeNullability- Nullable reference analysis
Roslyn Refactoring
Rename- Rename symbolExtractMethod- Extract code to methodExtractVariable- Extract expression to variableEncapsulateField- Create property for fieldInlineVariable/InlineMethod- Inline refactoring
Roslyn Generation
GenerateConstructor- Generate constructorGenerateProperty- Generate propertyImplementInterface- Implement interface membersGenerateEquality- 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
CreateSessiontool
"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
SaveSessiontool 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 | Versions 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. |
-
net10.0
- CyberdyneDevelopment.DeveloperTools.Analysis (>= 0.1.0-preview.5)
- CyberdyneDevelopment.DeveloperTools.Compilation (>= 0.1.0-preview.5)
- CyberdyneDevelopment.DeveloperTools.Conventions (>= 0.1.0-preview.5)
- CyberdyneDevelopment.DeveloperTools.Formatting (>= 0.1.0-preview.5)
- CyberdyneDevelopment.DeveloperTools.Generation (>= 0.1.0-preview.5)
- CyberdyneDevelopment.DeveloperTools.Navigation (>= 0.1.0-preview.5)
- CyberdyneDevelopment.DeveloperTools.Project (>= 0.1.0-preview.5)
- CyberdyneDevelopment.DeveloperTools.ProjectManagement (>= 0.1.0-preview.5)
- CyberdyneDevelopment.DeveloperTools.Refactoring (>= 0.1.0-preview.5)
- CyberdyneDevelopment.DeveloperTools.Search (>= 0.1.0-preview.5)
- CyberdyneDevelopment.DeveloperTools.SourceControl (>= 0.1.0-preview.5)
- CyberdyneDevelopment.DeveloperTools.Workspace (>= 0.1.0-preview.5)
- CyberdyneDevelopment.Mc3Po.Protocols (>= 0.1.0-preview.4)
- CyberdyneDevelopment.Mc3Po.Protocols.AzureDevOps (>= 0.1.0-preview.4)
- CyberdyneDevelopment.Mc3Po.Protocols.GitHub (>= 0.1.0-preview.4)
- CyberdyneDevelopment.Mc3Po.Protocols.GitLab (>= 0.1.0-preview.4)
- CyberdyneDevelopment.Mc3Po.Protocols.Plane (>= 0.1.0-preview.4)
- CyberdyneDevelopment.Mc3Po.Tools.Providers.Mcp (>= 0.1.0-preview.4)
- FractalDataWorks.Roslyn.Commands (>= 0.1.0-preview.1)
- FractalDataWorks.Workspace.Roslyn (>= 0.1.0-preview.1)
- Microsoft.Extensions.Hosting (>= 10.0.1)
- Microsoft.Extensions.Logging.Console (>= 10.0.1)
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 |