Status: Accepted Date: 2025-12-30 Deciders: Ahmed Mustafa
We need to build DotNetDevMCP with comprehensive .NET development capabilities. SharpTools already provides excellent Roslyn-based code intelligence. We evaluated three options:
- Pluggable Integration: Keep SharpTools separate, call it via MCP protocol
- Hybrid: Reference SharpTools.Tools as a library, build our server around it
- Fork & Merge: Fork SharpTools, integrate all code, add our features
Pluggable (Option 1):
- ✅ Separation of concerns
- ✅ Can update SharpTools independently
- ✅ Lighter codebase
- ❌ Inter-MCP communication overhead
- ❌ Two servers to configure/manage
- ❌ Harder to optimize across features
Hybrid (Option 2):
- ✅ Tight integration
- ✅ Single process
- ✅ Can contribute improvements upstream
- ❌ Dependency management complexity
- ❌ Limited by library API boundaries
Fork & Merge (Option 3):
- ✅ Complete control over codebase
- ✅ Single unified tool
- ✅ Can optimize across all features
- ✅ Simpler deployment (one MCP server)
- ❌ Maintenance burden
- ❌ Diverges from upstream
- ✅ Can still contribute improvements back
We will fork SharpTools and merge it into DotNetDevMCP (Option 3).
- User's Vision: "One tool to rule them all" - a single comprehensive MCP server
- Optimization Potential: Can optimize across code intelligence + orchestration
- Simpler UX: Users configure one MCP server, not multiple
- Complete Control: No limitations imposed by library boundaries
- MIT License: Legally permissive, allows forking with attribution
- Clone SharpTools repository
- Integrate into
DotNetDevMCP.CodeIntelligencenamespace - Maintain attribution in LICENSE and documentation
- Refactor to align with our architecture (service layer pattern)
- Extend with concurrent operations support
- Unified Tool: Single MCP server for all .NET development needs
- Deep Integration: Can share Roslyn workspaces across features
- Performance: Eliminate MCP protocol overhead for internal calls
- Customization: Full control to optimize for our use cases
- Simplified Deployment: One server to install and configure
- Maintenance Responsibility: We own all the code, including SharpTools portions
- Upstream Divergence: May drift from original SharpTools over time
- Attribution Required: Must properly credit SharpTools in all materials
- Larger Codebase: More code to understand and maintain
- Maintain Attribution: LICENSE file clearly credits кɵɵѕнī
- Document Origin: Mark SharpTools-derived code with comments
- Consider Contributions: If we make improvements to core intelligence, consider contributing back
- Modular Design: Keep code intelligence in separate projects for clarity
- SharpTools GitHub Repository
- MIT License
- User requirements discussion (2025-12-30)
SharpTools creator welcomes contributions and stated "I intend to maintain and improve it for as long as I am using it." While we're forking, we can still contribute improvements back if beneficial to both projects.