Provides comprehensive database introspection tools for Cloudflare D1 databases, enabling schema analysis, relationship mapping, validation, and optimization recommendations across development, staging, and production environments.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Semantic D1 MCPanalyze the development database schema with sample data"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Semantic D1 MCP
Reference implementation of Semantic Intent as Single Source of Truth patterns
A Model Context Protocol (MCP) server for Cloudflare D1 database introspection, demonstrating semantic anchoring, observable properties, and domain-driven design for AI-assisted database development.
π Table of Contents
π― What Makes This Different
This isn't just another database introspection toolβit's a reference implementation of proven semantic intent patterns:
β Semantic Anchoring: Schema analysis based on meaning (table purpose, relationships), not technical metrics (row counts, sizes)
β Observable Properties: Decisions anchored to directly observable schema markers (foreign keys, indexes, constraints)
β Intent Preservation: Database semantics maintained through all transformations (development β staging β production)
β Domain Boundaries: Clear semantic ownership (Schema Domain β Query Optimization Domain β MCP Protocol Domain)
Built on research from Semantic Intent as Single Source of Truth, this implementation demonstrates how to build maintainable, AI-friendly database tools that preserve intent.
π Quick Start
Prerequisites
Node.js 20.x or higher
Cloudflare account with D1 databases
Cloudflare API token with D1 access
Installation
Clone the repository
git clone https://github.com/semanticintent/semantic-d1-mcp.git cd semantic-d1-mcpInstall dependencies
npm installConfigure environment
Copy the example configuration:
cp .env.example .envUpdate
.envwith your Cloudflare credentials:# Cloudflare Configuration CLOUDFLARE_ACCOUNT_ID=your_cloudflare_account_id CLOUDFLARE_API_TOKEN=your_cloudflare_api_token # D1 Database Configuration - Development D1_DEV_DATABASE_ID=your_dev_database_id D1_DEV_DATABASE_NAME=your_dev_database_name # D1 Database Configuration - Staging (Optional) D1_STAGING_DATABASE_ID=your_staging_database_id D1_STAGING_DATABASE_NAME=your_staging_database_name # D1 Database Configuration - Production (Optional) D1_PROD_DATABASE_ID=your_prod_database_id D1_PROD_DATABASE_NAME=your_prod_database_nameNote: At least one database environment must be configured.
Build the server
npm run buildStart the MCP server
npm startOr use the provided shell script:
./start-d1-mcp.sh
Get Cloudflare API Token
Go to Cloudflare Dashboard
Navigate to My Profile β API Tokens
Click Create Token
Use the Edit Cloudflare Workers template
Add D1 permissions:
D1:ReadCopy the token to your
.envfile
Get D1 Database IDs
Copy the database IDs to your .env file.
π οΈ MCP Tools
This server provides 4 comprehensive MCP tools for D1 database introspection:
1. analyze_database_schema
Analyze complete database schema structure with metadata and optional sample data.
Parameters:
environment(required):"development"|"staging"|"production"includeSamples(optional, default:true): Include sample data from tablesmaxSampleRows(optional, default:5): Maximum rows per table sample
Returns:
Complete schema analysis
Table structures with columns, types, constraints
Indexes and foreign keys
Sample data from each table (if enabled)
Schema metadata and statistics
Example:
2. get_table_relationships
Extract and analyze foreign key relationships between tables.
Parameters:
environment(required): Database environmenttableName(optional): Filter relationships for specific table
Returns:
Foreign key relationships with cardinality (one-to-many, many-to-one)
Referential integrity rules (CASCADE, SET NULL, etc.)
Relationship metadata and statistics
Example:
3. validate_database_schema
Validate database schema for common issues and anti-patterns.
Parameters:
environment(required): Database environment
Returns:
Schema validation results
Missing primary keys
Foreign keys without indexes
Naming convention violations
Tables without relationships
Example:
4. suggest_database_optimizations
Generate schema optimization recommendations based on structure analysis.
Parameters:
environment(required): Database environment
Returns:
Prioritized optimization suggestions (high/medium/low)
Missing index recommendations
Primary key suggestions
Schema improvement opportunities
Performance optimization tips
Example:
π Connect to Claude Desktop
Connect this MCP server to Claude Desktop for AI-assisted database development.
Configuration
Edit Claude Desktop config - Go to Settings β Developer β Edit Config
Add MCP server configuration:
Restart Claude Desktop
Verify tools are available - You should see 4 D1 tools in Claude's tool list
Usage Example
In Claude Desktop:
"Analyze my production database schema and suggest optimizations for tables with foreign keys"
Claude will use the analyze_database_schema and suggest_database_optimizations tools automatically.
ποΈ Architecture
This project demonstrates Domain-Driven Hexagonal Architecture with clean separation of concerns:
Implementation Status
Status: β Hexagonal architecture refactoring complete
Current Structure:
See ARCHITECTURE.md for detailed design documentation.
Layer Responsibilities
Domain Layer:
Database schema entities (Schema, Table, Relationship, Index)
Schema analysis business logic
Relationship extraction logic
Optimization recommendation rules
Application Layer:
Orchestrate domain services
Execute use cases (AnalyzeSchema, GetRelationships, etc.)
Coordinate infrastructure adapters
Infrastructure Layer:
Cloudflare D1 REST API integration
HTTP client for API calls
Cache provider (in-memory)
Presentation Layer:
MCP server initialization
Tool registration and routing
Request/response formatting
Semantic Intent Principles
This codebase follows strict semantic anchoring rules:
Semantic Over Structural
// β SEMANTIC: Based on observable schema properties const needsIndex = table.hasForeignKey() && !table.hasIndexOnForeignKey() // β STRUCTURAL: Based on technical metrics const needsIndex = table.rowCount > 10000 && table.queryCount > 100Intent Preservation
// β Environment semantics preserved through transformations const schema = await fetchSchema(Environment.PRODUCTION) // Schema analysis preserves "production" intent - no overridesObservable Anchoring
// β Based on directly observable properties const relationships = extractForeignKeys(sqliteMaster) // β Based on inferred behavior const relationships = inferFromQueryPatterns(logs)
See SEMANTIC_ANCHORING_GOVERNANCE.md for complete governance rules.
π§ͺ Testing
Status: β Comprehensive test suite with 398 tests passing
Test Coverage
β Domain Layer: 212 tests (entities, services, validation)
β Infrastructure Layer: 64 tests (D1 adapter, API client, config)
β Application Layer: 35 tests (use cases, orchestration)
β Presentation Layer: 13 tests (MCP server, tool routing)
β Integration: 15 tests (end-to-end flows)
β Value Objects: 59 tests (Environment, immutability)
Total: 398 tests (all passing β )
Running Tests
Test Framework
Vitest: Fast unit testing framework
@vitest/coverage-v8: Code coverage reports
Mock Strategy: Mock Cloudflare D1 API responses via interface implementations
π Learning from This Implementation
This codebase serves as a reference implementation for semantic intent patterns in database tooling.
Key Files to Study
Hexagonal Architecture Implementation:
src/index.ts - Composition root with dependency injection
src/domain/entities/ - Domain entities with semantic validation
src/domain/services/ - Pure business logic services
src/application/use-cases/ - Orchestration layer
src/infrastructure/adapters/ - External adapters
src/presentation/mcp/ - MCP protocol layer
Reference Documentation:
D1_MCP_REFACTORING_PLAN.md - Complete refactoring plan
SEMANTIC_ANCHORING_GOVERNANCE.md - Governance rules
ARCHITECTURE.md - Architecture details
Related Projects
semantic-context-mcp - Sibling reference implementation for context management
π€ Contributing
We welcome contributions! This is a reference implementation, so contributions should maintain semantic intent principles.
How to Contribute
Read the guidelines: CONTRIBUTING.md
Check refactoring plan: D1_MCP_REFACTORING_PLAN.md
Follow the architecture: Maintain layer boundaries and semantic anchoring
Add tests: All changes need comprehensive test coverage
Document intent: Explain WHY, not just WHAT
Contribution Standards
β Follow semantic intent patterns
β Maintain hexagonal architecture (post-refactoring)
β Add comprehensive tests (90%+ coverage target)
β Include semantic documentation
β Pass all CI checks
Quick Links:
Contributing Guide - Detailed guidelines
Code of Conduct - Community standards
Architecture Guide - Design principles
Security Policy - Report vulnerabilities
Community
π¬ Discussions - Ask questions
π Issues - Report bugs
π Security - Report vulnerabilities privately
π Security
Security is a top priority. Please review our Security Policy for:
API token management best practices
What to commit / what to exclude
Reporting security vulnerabilities
Security checklist for deployment
Found a vulnerability? Email: security@semanticintent.dev
π¬ Research Foundation
This implementation is based on the research paper "Semantic Intent as Single Source of Truth: Immutable Governance for AI-Assisted Development".
Core Principles Applied
Semantic Over Structural - Schema analysis based on meaning, not metrics
Intent Preservation - Environment semantics maintained through transformations
Observable Anchoring - Decisions based on directly observable schema properties
Immutable Governance - Protect semantic integrity at runtime
Related Resources
Research Paper (coming soon)
semanticintent.dev (coming soon)
π Project Roadmap
β Phase 0: Initial Implementation (Complete)
Monolithic MCP server with 6 tools
D1 REST API integration
Basic schema analysis
β Phase 1: Domain Layer (Complete)
10 domain entities with semantic validation
3 domain services (SchemaAnalyzer, RelationshipAnalyzer, OptimizationService)
212 passing tests
β Phase 2: Infrastructure Layer (Complete)
CloudflareD1Repository adapter
CloudflareAPIClient HTTP client
InMemoryCacheProvider
64 passing tests
β Phase 3: Application Layer (Complete)
4 use cases (AnalyzeSchema, GetRelationships, ValidateSchema, SuggestOptimizations)
Port interfaces (ICloudflareD1Repository, ICacheProvider)
35 passing tests
β Phase 4: Presentation Layer (Complete)
D1DatabaseMCPServer with 4 MCP tools
Request/response DTOs
13 passing tests
β Phase 5: Integration & Composition Root (Complete)
Dependency injection in index.ts
Environment configuration
15 integration tests
β Phase 6: CI/CD & Documentation (Complete)
TypeScript build verification
README updated
398 total tests passing
π― Phase 7: Production Readiness (Planned)
GitHub Actions CI/CD workflow
Dependabot automation
Security scanning
GitHub repository setup
See D1_MCP_REFACTORING_PLAN.md for detailed roadmap.
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgments
Built on Model Context Protocol by Anthropic
Inspired by Hexagonal Architecture (Alistair Cockburn)
Based on Domain-Driven Design principles (Eric Evans)
Part of the Semantic Intent research initiative
This is a reference implementation demonstrating semantic intent patterns for database introspection. Study the code, learn the patterns, and apply them to your own projects. ποΈ