MCP Manager is a dashboard for discovering, installing, and managing Model Context Protocol servers across multiple AI agents.
- Browse and search MCP servers from registries
- One-click server installation and management
- Multi-agent support (Claude Desktop, GitHub Copilot, etc.)
- Unified dashboard for all servers and agents
- Bulk agent management with checkbox selection
- Plugin-based architecture for extensibility
- Docker support for containerized deployment
- Comprehensive unit test coverage
MCP Manager follows Clean Architecture with clear separation of concerns:
McpManager/
├── src/
│ ├── McpManager.Core/ # Domain models and interfaces
│ ├── McpManager.Application/ # Business logic and services
│ ├── McpManager.Infrastructure/ # Agent connectors and registries
│ ├── McpManager.Web/ # Blazor Server web application
│ └── McpManager.Desktop/ # Desktop app using Photino.Blazor
├── tests/
│ └── McpManager.Tests/ # Unit and integration tests
└── docs/ # Documentation
- Dependency Inversion: All dependencies flow inward through interfaces
- Single Responsibility: Each service handles one concern
- Open/Closed: Extensible via
IAgentConnectorinterface - DRY (Don't Repeat Yourself): Shared logic in base classes and services
- .NET 10.0 SDK (for building from source)
- One or more AI agents installed (Claude Desktop, GitHub Copilot, etc.)
Windows may show a security warning when running the desktop app because it's not code-signed. Code signing certificates cost $300-500/year, which isn't practical for this open source project.
To run the app:
- Click "More info"
- Click "Run anyway"
Why it's safe:
- 100% open source - audit the code yourself
- Built by GitHub Actions - reproducible builds
- SHA256 hashes in release notes
- No telemetry or network calls
See SmartScreen Warning Guide for details.
The desktop app runs as a standalone application with no browser required!
Windows:
- Download the latest
mcpmanager-desktop-win-x64.zipfrom Releases - Extract the archive
- Run
McpManager.Desktop.exe - The app opens in its own window!
Linux:
- Download the latest
mcpmanager-desktop-linux-x64.tar.gzfrom Releases - Extract:
tar -xzf mcpmanager-desktop-linux-x64.tar.gz - Make executable:
chmod +x McpManager.Desktop - Run:
./McpManager.Desktop - The app opens in its own window!
If you prefer the traditional server model where you open a browser:
Windows:
- Download the latest
mcpmanager-server-win-x64.zipfrom Releases - Extract the archive
- Run
McpManager.Web.exe - Navigate to http://localhost:5000
Linux:
- Download the latest
mcpmanager-server-linux-x64.tar.gzfrom Releases - Extract:
tar -xzf mcpmanager-server-linux-x64.tar.gz - Make executable:
chmod +x McpManager.Web - Run:
./McpManager.Web - Navigate to http://localhost:5000
# Pull and run the latest image
docker pull ghcr.io/jerrettdavis/mcpmanager:latest
docker run -p 8080:8080 ghcr.io/jerrettdavis/mcpmanager:latest
# Navigate to http://localhost:8080git clone https://github.com/JerrettDavis/McpManager.git
cd McpManager
dotnet restore
dotnet run --project src/McpManager.Web
# Navigate to https://localhost:5001The main dashboard shows installed servers, detected agents, and active installations.
Navigate to Browse Servers to search and install MCP servers from registries.
- Select an agent to view configured servers
- Use checkboxes to enable/disable servers
- Use bulk operations to add/remove servers from multiple agents
- Click Remove to uninstall a server from an agent
dotnet test
dotnet test /p:CollectCoverage=true # with coverage- Claude Desktop
- GitHub Copilot (VS Code)
- Custom agents via
IAgentConnectorinterface
- Create a new class implementing
IAgentConnector:
public class MyAgentConnector : IAgentConnector
{
public AgentType AgentType => AgentType.Other;
public Task<bool> IsAgentInstalledAsync() { /* ... */ }
public Task<string> GetConfigurationPathAsync() { /* ... */ }
// Implement other interface methods
}- Register in
Program.cs:
builder.Services.AddSingleton<IAgentConnector, MyAgentConnector>();Implement IServerRegistry to connect to npm, GitHub, or custom registries:
public class NpmRegistry : IServerRegistry
{
public string Name => "npm MCP Registry";
public Task<IEnumerable<ServerSearchResult>> SearchAsync(string query) { /* ... */ }
// Implement other interface methods
}# Windows
dotnet publish -c Release -r win-x64 --self-contained
# macOS
dotnet publish -c Release -r osx-x64 --self-contained
# Linux
dotnet publish -c Release -r linux-x64 --self-containeddocker build -t mcp-manager:latest .
docker tag mcp-manager:latest your-registry/mcp-manager:latest
docker push your-registry/mcp-manager:latestContributions welcome. Fork the repository, create a feature branch, and submit a pull request.
MIT License - see LICENSE file.
Built with Blazor and Bootstrap. Implements the Model Context Protocol.