Skip to main content
Glama
ruchit-p

Specification Version Control MCP Server

by ruchit-p

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

Related MCP server: MCP Knowledge Base Server

πŸ“š Documentation

Core Documentation

Legacy Documentation

✨ 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

  1. User accesses MCP tool β†’ Redirected to Auth0 consent screen

  2. User approves permissions β†’ Auth0 redirects with authorization code

  3. 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

  1. Setup: Follow the Development Setup Guide

  2. Security: Review Security Guidelines

  3. API: Reference API Documentation

  4. 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

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables semantic search and management of development knowledge including global rules, project documentation, and references through vector-based search using libSQL. Features Tailscale-secured access control and tools for searching, browsing, and organizing development resources across multiple channels.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables semantic search and document management with support for text, PDF, and image uploads using your own Supabase database and OpenAI API keys. Supports multi-tenant deployment on Cloudflare Workers or local hosting.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    A Cloudflare-native MCP server for a consolidated knowledge base, enabling CRUD operations, search, and namespace management with versioning and audit logs.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ruchit-p/specification-cloudflare-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server