Specification Version Control MCP Server
Enables managing technical specifications with version control, search, and comparison features, deployed as a secure Auth0-authenticated Cloudflare Worker.
README
Specification Version Control MCP Server
An Auth0-authenticated Model Context Protocol (MCP) server for managing technical specifications with version control capabilities, deployed on Cloudflare Workers. Uses HTTP Streamable transport for efficient bidirectional communication.
š Quick Start
# Clone the repository
git clone https://github.com/your-repo/specification-cloudflare-mcp.git
cd specification-cloudflare-mcp
# Install dependencies
npm install
# Deploy to production
npm run deploy:auth0
Example endpoint: https://specification-mcp-auth0.<your-subdomain>.workers.dev/mcp
š Documentation
Core Documentation
- š Project Overview - Complete project overview and features
- š§ Development Setup - Local development environment setup
- š”ļø Security Guidelines - Security architecture and best practices
- š API Documentation - Comprehensive API reference
- š Deployment Guide - Production deployment instructions
Legacy Documentation
- ā” Migration Summary - HTTP Streamable migration details
- š Auth0 Setup - Auth0 configuration guide
- š Implementation Summary - Technical implementation details
- š MCP Usage Guide - MCP tools usage examples
⨠Features
š Security & Authentication
- Auth0 OAuth 2.0 with PKCE - Industry-standard authentication
- User Data Isolation - Private workspace for each user
- JWT Token Validation - Secure token-based authentication
- Manual Logout - Explicit authentication state clearing
- Short-lived Tokens - 15-minute access tokens, 1-hour refresh tokens
š Specification Management
- Full CRUD Operations - Create, read, update, delete specifications
- Version Control - Track specification versions and changes
- Advanced Search - Search by title, content, or tags
- Comparison Tools - Compare different specification versions
- Monthly Reports - Activity and usage analytics
- Tag-based Organization - Categorize specifications
šļø Technical Architecture
- HTTP Streamable Transport - Modern MCP protocol implementation
- Cloudflare Workers - Serverless edge computing
- D1 Database - SQLite-compatible database
- KV Storage - Session and OAuth state management
- TypeScript - Type-safe development with Zod validation
š ļø Available Tools
| Tool | Description | Parameters |
|---|---|---|
create_specification |
Create new specification | title, content, version, tags |
list_specifications |
List user's specifications | limit, offset |
get_specification |
Get specific specification | id |
update_specification |
Update existing specification | id, title, content, version, tags |
delete_specification |
Delete specification | id |
search_specifications |
Search specifications | query, limit |
compare_specifications |
Compare two specifications | id1, id2 |
monthly_specification_report |
Generate activity report | month (YYYY-MM) |
logout |
Clear authentication state | None |
š§ Configuration
Claude Desktop Integration
{
"mcpServers": {
"specification-server": {
"command": "npx",
"args": [
"mcp-remote",
"https://specification-mcp-auth0.<your-subdomain>.workers.dev/mcp"
]
}
}
}
Production Configuration
- Database: Cloudflare D1 (
specifications-prod) - Authentication: Auth0 (
YOUR_TENANT.auth0.com) - Transport: HTTP Streamable (port
/mcp) - Storage: Cloudflare KV for OAuth state
šļø Project Structure
specification-cloudflare-mcp/
āāā src/
ā āāā index-auth0-streamable.ts # Main MCP server
ā āāā auth.ts # OAuth authentication logic
ā āāā types.ts # TypeScript definitions
ā āāā param-utils.ts # Parameter validation
āāā migrations/ # Database schema migrations
āāā documentation/ # Project documentation
ā āāā PROJECT_OVERVIEW.md
ā āāā DEVELOPMENT_SETUP.md
ā āāā SECURITY.md
ā āāā API_DOCUMENTATION.md
ā āāā DEPLOYMENT_GUIDE.md
āāā wrangler-auth0.toml # Cloudflare configuration
āāā wrangler-auth0.jsonc # Cloudflare configuration (with comments)
āāā deploy-auth0.sh # Deployment script
āāā package.json # Dependencies and scripts
š Deployment Status
Example Deployment
- Environment: Production
- URL:
https://specification-mcp-auth0.<your-subdomain>.workers.dev/mcp - Transport: HTTP Streamable
- Database:
specifications-prod - Auth0 Domain:
YOUR_TENANT.auth0.com - OAuth Flow: PKCE with state protection
š Usage
Authentication Flow
- User accesses MCP tool ā Redirected to Auth0 consent screen
- User approves permissions ā Auth0 redirects with authorization code
- Server exchanges code for JWT tokens ā User can access tools
Example Usage
# Create a specification
curl -X POST https://specification-mcp-auth0.<your-subdomain>.workers.dev/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "create_specification",
"params": {
"title": "API Specification",
"content": "# API Spec\n\nThis is an API specification.",
"version": "1.0.0",
"tags": ["api", "backend"]
},
"id": "1"
}'
# List specifications
curl -X POST https://specification-mcp-auth0.<your-subdomain>.workers.dev/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "list_specifications",
"params": {"limit": 10},
"id": "2"
}'
š Development
Local Development
# Install dependencies
npm install
# Start development server
wrangler dev -c wrangler-auth0.toml --port 8787
# Run tests
npm test
# Deploy to production
npm run deploy:auth0
Key Files
- Entry Point:
src/index-auth0-streamable.ts - Authentication:
src/auth.ts - Configuration:
wrangler-auth0.toml - Database:
migrations/
š Monitoring
Performance Metrics
- Request Latency: < 100ms average
- Authentication Success Rate: > 99.5%
- Database Query Time: < 50ms average
- Error Rate: < 0.1%
Security Monitoring
- Token Validation: All requests validated
- User Isolation: 100% enforced
- Failed Auth Attempts: Logged and monitored
- Rate Limiting: 100 requests/minute per user
š¤ Contributing
- Setup: Follow the Development Setup Guide
- Security: Review Security Guidelines
- API: Reference API Documentation
- Deploy: Use Deployment Guide
Code Standards
- TypeScript: Strict mode with Zod validation
- Authentication: Always check
this.props?.claims?.sub - Database: Always filter by
user_id - Error Handling: Use structured error responses
- Security: Log all authentication events
š Support
Documentation
- Project Overview: PROJECT_OVERVIEW.md
- Development: DEVELOPMENT_SETUP.md
- Security: SECURITY.md
- API Reference: API_DOCUMENTATION.md
- Deployment: DEPLOYMENT_GUIDE.md
Community
- GitHub Issues: Report issues
- Email: api-support@yourcompany.com
- Discord: Join our community
š License
This project is open source under the MIT License. See LICENSE.
Last Updated: August 2025
MCP Protocol: HTTP Streamable
Auth Provider: Auth0 OAuth 2.0
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.