GITHUB_ISSUE_MCP_ENHANCEMENTS.mdโข10.8 kB
# GitHub Issue: Implement Additional MCP Protocol Features
**Issue Type:** Enhancement
**Priority:** High
**Milestone:** v2.0.0
---
## Summary
Implement missing Model Context Protocol (MCP) features to enhance the Cisco Support MCP Server with Resources, Sampling, Progress Notifications, Logging, Roots, and Cancellation support.
See full proposal: [MCP Enhancement Proposal](./MCP_ENHANCEMENT_PROPOSAL.md)
---
## Background
The Cisco Support MCP Server currently implements:
- โ
Tools (30+ tools)
- โ
Prompts (11 workflow prompts)
- โ
ElicitationRequest
Missing features from the full MCP specification:
- โ Resources
- โ Sampling
- โ Roots
- โ Progress Notifications
- โ MCP-compliant Logging
- โ Cancellation
---
## Proposed Implementation
### Phase 1: High-Impact Features (Weeks 1-2) ๐
#### 1. Resources Feature
**Priority:** HIGH | **Effort:** Medium (2-3 days) | **Impact:** High
Implement MCP Resources to expose:
- Bug reports: `cisco://bugs/{bug_id}`
- Product info: `cisco://products/{product_id}/specifications`
- Security advisories: `cisco://security/advisories/{advisory_id}`
- Cached searches: `cisco://cache/search/{search_id}`
**Benefits:**
- 50% reduction in repeated API calls
- Direct access to bug reports without tool calls
- Real-time data subscriptions
- Improved user experience
**Tasks:**
- [ ] Add resource handlers to mcp-server.ts
- [ ] Implement resource URI routing
- [ ] Add caching layer for resources
- [ ] Create resource templates for dynamic URIs
- [ ] Write unit tests for resource handlers
- [ ] Update documentation with resource URIs
- [ ] Test with MCP Inspector
**Files to modify:**
- `src/mcp-server.ts` - Add resource handlers
- `src/types.ts` - Define resource types
- `src/utils/cache.ts` - New caching utility
- `tests/resources.test.ts` - New test file
- `CLAUDE.md` - Documentation updates
---
#### 2. Progress Notifications
**Priority:** HIGH | **Effort:** Low-Medium (1-2 days) | **Impact:** High
Add real-time progress updates for:
- Multi-severity searches
- Bulk product analysis
- Comprehensive analysis workflows
**Benefits:**
- Better UX for long-running operations
- User visibility into operation status
- Improved perceived performance
**Tasks:**
- [ ] Add progress notification support to server
- [ ] Update multi_severity_search with progress
- [ ] Update comprehensive_analysis with progress
- [ ] Add progress to bulk operations
- [ ] Test progress with MCP Inspector
- [ ] Document progress usage patterns
**Files to modify:**
- `src/mcp-server.ts` - Progress notification support
- `src/apis/enhanced-analysis-api.ts` - Add progress calls
- `src/apis/bug-api.ts` - Add progress to multi-step ops
- `tests/progress.test.ts` - New test file
---
### Phase 2: AI Enhancement (Week 3) ๐ค
#### 3. Sampling Support
**Priority:** MEDIUM | **Effort:** Medium (2-3 days) | **Impact:** Medium-High
Enable server-initiated LLM requests for:
- Intelligent bug categorization
- Smart product name resolution
- Upgrade risk analysis
- Natural language query translation
**Benefits:**
- No server API keys required
- Intelligent server-side processing
- Advanced query understanding
- Better user experience
**Tasks:**
- [ ] Add sampling request handlers
- [ ] Implement intelligent product resolution
- [ ] Add bug categorization with sampling
- [ ] Create upgrade risk analyzer
- [ ] Add query translation helper
- [ ] Write sampling tests with mocks
- [ ] Document sampling use cases
**Files to modify:**
- `src/mcp-server.ts` - Sampling support
- `src/utils/sampling.ts` - New sampling utilities
- `src/apis/enhanced-analysis-api.ts` - Use sampling
- `tests/sampling.test.ts` - New test file
---
### Phase 3: Developer Experience (Week 4) ๐ ๏ธ
#### 4. MCP Logging
**Priority:** MEDIUM | **Effort:** Low (1 day) | **Impact:** Medium
Implement structured MCP-compliant logging:
- API call logging
- Search strategy logging
- Performance monitoring
- Error tracking
**Tasks:**
- [ ] Add MCP logging notification support
- [ ] Update logger.ts with MCP logging
- [ ] Add log levels (debug, info, warning, error)
- [ ] Integrate logging throughout codebase
- [ ] Test log filtering and display
- [ ] Document logging categories
**Files to modify:**
- `src/utils/logger.ts` - Add MCP logging
- `src/mcp-server.ts` - Logging support
- All API files - Add logging calls
---
#### 5. Roots Support
**Priority:** LOW | **Effort:** Low (1 day) | **Impact:** Low
Declare workspace contexts:
- Configuration directories
- Report output directories
- Cache directories
**Tasks:**
- [ ] Add roots handler to server
- [ ] Define default root locations
- [ ] Make roots configurable via env vars
- [ ] Test roots with MCP Inspector
- [ ] Document roots usage
**Files to modify:**
- `src/mcp-server.ts` - Roots handler
- `.env.example` - Root path configuration
---
#### 6. Cancellation Support
**Priority:** LOW | **Effort:** Medium (2 days) | **Impact:** Low
Add operation cancellation:
- Multi-API search cancellation
- Bulk operation abort
- Graceful cleanup
**Tasks:**
- [ ] Add cancellation token support
- [ ] Update long-running operations
- [ ] Implement graceful cleanup
- [ ] Test cancellation scenarios
- [ ] Document cancellation patterns
**Files to modify:**
- `src/mcp-server.ts` - Cancellation support
- `src/apis/enhanced-analysis-api.ts` - Cancellable ops
- `tests/cancellation.test.ts` - New test file
---
## Testing Requirements
### Unit Tests
- [ ] Resources: URI parsing, data retrieval, caching
- [ ] Progress: Notification timing, progress tokens
- [ ] Sampling: Request handling, mock responses
- [ ] Logging: Message formatting, level filtering
- [ ] Roots: Path validation, configuration
- [ ] Cancellation: Token propagation, cleanup
### Integration Tests
- [ ] Test all features with MCP Inspector
- [ ] Test with Claude Desktop
- [ ] Test resource subscriptions
- [ ] Test progress in slow networks
- [ ] Test sampling with real LLM
- [ ] Test cancellation edge cases
### Performance Tests
- [ ] Resource caching effectiveness
- [ ] Progress overhead measurement
- [ ] Sampling latency impact
- [ ] Logging performance impact
---
## Documentation Updates
- [ ] Update CLAUDE.md with all new features
- [ ] Add resource URI reference
- [ ] Document sampling patterns
- [ ] Add progress examples
- [ ] Update MCP Inspector guide
- [ ] Create migration guide
- [ ] Update API reference
---
## Success Criteria
1. **Resources**: 50% reduction in duplicate API calls
2. **Progress**: All long operations (>3s) show progress
3. **Sampling**: Enable 3+ new intelligent features
4. **Logging**: Complete operation visibility
5. **Coverage**: 100% backward compatibility
6. **Tests**: 90%+ code coverage for new features
---
## Technical Design
### Architecture Changes
```
Current:
โโโโโโโโโโโโโโโ
โ MCP Client โ
โโโโโโโโฌโโโโโโโ
โ Tools, Prompts, ElicitationRequest
โโโโโโโโผโโโโโโโโโโโโโโโ
โ MCP Server โ
โ - Tools (30+) โ
โ - Prompts (11) โ
โ - Elicitation โ
โโโโโโโโฌโโโโโโโโโโโโโโโ
โ
โโโโโโโโผโโโโโโโโโโโ
โ Cisco APIs โ
โโโโโโโโโโโโโโโโโโโ
Proposed:
โโโโโโโโโโโโโโโ
โ MCP Client โ
โโโโโโโโฌโโโโโโโ
โ Full MCP Protocol
โ โโ Tools
โ โโ Prompts
โ โโ Resources โญ NEW
โ โโ Sampling โญ NEW
โ โโ Progress โญ NEW
โ โโ Logging โญ NEW
โ โโ Roots โญ NEW
โ โโ Cancellation โญ NEW
โโโโโโโโผโโโโโโโโโโโโโโโ
โ MCP Server โ
โ - Resources Layer โ
โ - Caching Layer โ
โ - Sampling Engine โ
โ - Progress Manager โ
โ - Log Aggregator โ
โโโโโโโโฌโโโโโโโโโโโโโโโ
โ
โโโโโโโโผโโโโโโโโโโโ
โ Cisco APIs โ
โโโโโโโโโโโโโโโโโโโ
```
---
## Dependencies
**New npm packages required:**
- None (all features in @modelcontextprotocol/sdk v1.12.1+)
**SDK Version:**
- Current: `@modelcontextprotocol/sdk@1.12.1`
- Required: Same (no upgrade needed)
---
## Risks and Mitigation
| Risk | Impact | Mitigation |
|------|--------|------------|
| Breaking changes | High | Maintain backward compatibility |
| Performance degradation | Medium | Add performance benchmarks |
| Increased complexity | Medium | Comprehensive documentation |
| Cache invalidation bugs | Low | Thorough testing |
| Sampling quota limits | Low | Rate limiting, fallbacks |
---
## Timeline
- **Week 1:** Resources implementation
- **Week 2:** Progress notifications
- **Week 3:** Sampling support
- **Week 4:** Logging, Roots, Cancellation
- **Week 5:** Testing, documentation, release
**Target Release:** v2.0.0 in 5 weeks
---
## Implementation Checklist
### Phase 1 (High Priority)
- [ ] Resources
- [ ] Bug report resources
- [ ] Product info resources
- [ ] Security advisory resources
- [ ] Cache resources
- [ ] Progress Notifications
- [ ] Multi-severity search progress
- [ ] Bulk operations progress
- [ ] Comprehensive analysis progress
### Phase 2 (Medium Priority)
- [ ] Sampling
- [ ] Product resolution
- [ ] Bug categorization
- [ ] Risk analysis
- [ ] Query translation
### Phase 3 (Lower Priority)
- [ ] MCP Logging
- [ ] Roots Support
- [ ] Cancellation
### Testing & Documentation
- [ ] All unit tests pass
- [ ] All integration tests pass
- [ ] Performance benchmarks meet targets
- [ ] Documentation complete
- [ ] Migration guide published
---
## Related Issues
- None yet (this is the first proposal)
## Related PRs
- Will be created as implementation progresses
---
## Questions for Discussion
1. Should resources be cached permanently or with TTL?
2. What sampling use cases are highest priority?
3. Should logging be opt-in or always enabled?
4. Are there specific root directories users need?
5. Should cancellation auto-rollback partial operations?
---
## Additional Context
This enhancement aligns with:
- MCP Specification 2025-03-26
- Industry best practices (OpenAI, Google DeepMind adoption)
- VS Code full MCP spec support
- MCP Inspector v0.14.0+ features
**Reference Implementation:**
This will make Cisco Support MCP Server one of the most complete MCP server implementations, suitable as a reference for other MCP server developers.
---
## Labels
`enhancement` `mcp` `high-priority` `v2.0` `breaking-change` `documentation`