MCP server for OpenAPI/Swagger specification management with version control, LLM-driven editing, and a beautiful web UI.
- 10 MCP Tools for complete OpenAPI management
- Multi-Workspace Organization with folder-based spec management
- Version Control with diff tracking and breaking change detection
- Audit Trail with LLM reasoning capture
- Validation with Spectral and SwaggerParser
- Storage Abstraction for easy backend switching
- REST API for UI integration
- π Dashboard with Apache ECharts visualizations
- π Multi-Workspace Management with folder organization
- π Specs List with search and filters
- π OpenAPI Viewer with endpoint rendering
- π Version History with change tracking
- π Audit Log with advanced filtering
- πΎ LocalStorage Persistence for workspace preferences
- π¨ Voicenter Red Branding throughout
- Node.js >= 20.0.0
- npm or yarn
# Install backend dependencies
npm install
# Install UI dependencies
cd ui && npm install && cd ..# Run backend only (API server on port 3001)
npm run dev
# Run UI only (dev server on port 3000)
npm run dev:ui
# Run both backend and UI concurrently
npm run dev:allVisit:
# Build everything
npm run build:all
# Start production server
npm startThe production server serves both API and UI on the same port (default: 3001).
openapi-control-plane-mcp/
βββ src/ # Backend source
β βββ config/ # Configuration
β βββ services/ # Core services
β β βββ folder-manager.ts # Workspace/folder management
β β βββ spec-manager.ts # Spec CRUD operations
β β βββ version-manager.ts # Version control
β βββ storage/ # Storage layer
β βββ tools/ # MCP tools (10 tools)
β βββ types/ # TypeScript types
β β βββ metadata.ts # Including FolderMetadata
β βββ utils/ # Utilities
β βββ migrate-to-folders.ts # Migration utility
βββ ui/ # Frontend Nuxt.js app
β βββ assets/ # CSS and theme
β βββ components/ # Vue components
β β βββ FolderSidebar.vue # Workspace navigation
β β βββ FolderCreateModal.vue # Create workspace dialog
β β βββ SpecMoveDialog.vue # Move spec dialog
β βββ composables/ # Data fetching
β β βββ useFolders.ts # Workspace management
β β βββ useSpecs.ts # Spec management
β βββ layouts/ # Page layouts
β βββ pages/ # 5 main pages
β βββ public/ # Static assets
β βββ types/ # Frontend types
β βββ api.ts # Including FolderMetadata
βββ tests/ # Backend tests (434 passing!)
βββ docs/ # Documentation
Organize your API specifications into workspaces/folders for better project management:
- Default Workspaces: "Active Projects" and "Recycle Bin"
- Custom Workspaces: Create unlimited custom workspaces with titles, descriptions, colors, and icons
- Spec Migration: Move specs between workspaces with full version history preservation
- UI Integration: Sidebar navigation with visual workspace indicators
- LocalStorage Persistence: Remembers your last viewed workspace across sessions
- Create/read/update/delete workspaces via MCP tools or UI
- Move specs between workspaces while preserving all version history
- Filter specs by workspace for focused development
- Visual workspace indicators with custom colors and icons
- Automatic migration of existing specs to default "active" workspace
- spec_read - Read OpenAPI specs with custom extensions
- spec_validate - Validate with Spectral
- metadata_update - Update spec metadata
- schema_manage - Manage schemas (add/update/delete)
- endpoint_manage - Manage endpoints
- version_control - Version management and diffing
- parameters_configure - Configure parameters
- responses_configure - Configure responses
- security_configure - Configure security
- references_manage - Manage $refs
- Dashboard (
/) - Stats and charts with ECharts - Specs List (
/specs) - Browse all API specs - OpenAPI Viewer (
/specs/:apiId) - View spec details - Versions (
/specs/:apiId/versions) - Version history - Audit Log (
/audit) - Full audit trail
# Backend
PORT=3001
HOST=0.0.0.0
DATA_DIR=./
LOG_LEVEL=info
NODE_ENV=development
# Custom x- attributes
X_ATTRIBUTE_ENDPOINT_LOGO=Logo URL for endpoint
X_ATTRIBUTE_ENDPOINT_DEPRECATED_REASON=Deprecation reasonThe UI uses official Voicenter brand colors:
- Primary Red:
#F52222(hsl(0, 85%, 50%)) - Light Red:
#FABDBD(hsl(0, 85%, 85%)) - Dark Red:
#750B0B(hsl(0, 85%, 25%))
See docs/voicenter-brand-colors.md for details.
GET /api/folders- List all foldersPOST /api/folders- Create new folderGET /api/folders/:folderName- Get folder metadataPUT /api/folders/:folderName- Update folder metadataDELETE /api/folders/:folderName- Delete empty folderGET /api/folders/:folderName/specs- List specs in folderPOST /api/folders/:folderName/move-spec- Move spec to different folder
GET /api/specs- List all specs (across all folders)GET /api/specs/:apiId?folder=name- Get spec detailsGET /api/specs/:apiId/versions?folder=name- List versionsGET /api/specs/:apiId/versions/:version?folder=name- Get specific versionPUT /api/specs/:apiId- Update specDELETE /api/specs/:apiId?folder=name- Delete spec
GET /api/audit- Get audit logGET /api/audit/:apiId- Get API-specific audit logGET /api/stats- Dashboard statistics
GET /health- Health checkGET /tools- List MCP toolsPOST /tools/:toolName- Execute toolGET /mcp/sse- SSE connectionPOST /mcp/sse- MCP protocol messages
# Run all tests
npm test
# Watch mode
npm run test:watch
# Coverage
npm run test:coverage
# Integration tests only
npm run test:integrationCurrent Status: 434 tests passing! π
# Build
npm run docker:build
# Run
npm run docker:run
# Stop
npm run docker:stop
# Logs
npm run docker:logs- AGENTS.md - Developer guide
- Tool Documentation - Each tool documented
- Architecture - System design
- Voicenter Branding - Brand colors
- Read docs/AGENTS.md
- Follow Uncle Bob's principles
- Add JSDoc with humor
- Write tests (maintain 80%+ coverage)
- Use conventional commit messages
MIT
- 10 MCP tools complete
- SSE/HTTP transport
- Beautiful Nuxt.js UI with Voicenter branding
- Dashboard with ECharts
- OpenAPI viewer
- Version history
- Audit log
- Multi-workspace/folder organization
- LocalStorage workspace persistence
- Authentication
- Multi-user support
- S3 storage backend
- Redis caching
- Kubernetes deployment
Built with:
- Fastify - Fast backend framework
- Nuxt.js - Vue 3 framework
- Apache ECharts - Data visualization
- @nuxt/ui - TailwindCSS components
- MCP SDK - Model Context Protocol
Voicenter - VoIP/Telecom Platform Branding
Made with β€οΈ and lots of β