{"id":31751416,"url":"https://github.com/semanticintent/semantic-d1-mcp","last_synced_at":"2026-05-08T06:47:57.787Z","repository":{"id":318595309,"uuid":"1071943356","full_name":"semanticintent/semantic-d1-mcp","owner":"semanticintent","description":"Reference implementation of Semantic Intent patterns for Cloudflare D1 database introspection via MCP. Hexagonal architecture with 398 tests demonstrating semantic anchoring, observable properties, and domain-driven design.","archived":false,"fork":false,"pushed_at":"2025-10-08T03:53:20.000Z","size":250,"stargazers_count":1,"open_issues_count":4,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-08T05:42:08.167Z","etag":null,"topics":["cloudflare","cloudflare-d1","database-introspection","domain-driven-design","hexagonal-architecture","intent-preservation","mcp","model-context-protocol","reference-implementation","schema-analysis","semantic-anchoring","semantic-intent","typescript"],"latest_commit_sha":null,"homepage":"https://github.com/semanticintent/semantic-d1-mcp","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/semanticintent.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-08T03:28:46.000Z","updated_at":"2025-10-08T03:53:23.000Z","dependencies_parsed_at":"2025-10-08T05:42:12.336Z","dependency_job_id":"3b4b1173-b6fb-414a-8979-3e0246156863","html_url":"https://github.com/semanticintent/semantic-d1-mcp","commit_stats":null,"previous_names":["semanticintent/semantic-d1-mcp"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/semanticintent/semantic-d1-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semanticintent%2Fsemantic-d1-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semanticintent%2Fsemantic-d1-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semanticintent%2Fsemantic-d1-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semanticintent%2Fsemantic-d1-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/semanticintent","download_url":"https://codeload.github.com/semanticintent/semantic-d1-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semanticintent%2Fsemantic-d1-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001767,"owners_count":26083171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudflare","cloudflare-d1","database-introspection","domain-driven-design","hexagonal-architecture","intent-preservation","mcp","model-context-protocol","reference-implementation","schema-analysis","semantic-anchoring","semantic-intent","typescript"],"created_at":"2025-10-09T16:22:50.101Z","updated_at":"2025-10-09T16:22:54.040Z","avatar_url":"https://github.com/semanticintent.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![MseeP.ai Security Assessment Badge](https://mseep.net/pr/semanticintent-semantic-d1-mcp-badge.png)](https://mseep.ai/app/semanticintent-semantic-d1-mcp)\n\n# Semantic D1 MCP\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![CI](https://github.com/semanticintent/semantic-d1-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/semanticintent/semantic-d1-mcp/actions/workflows/ci.yml)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.9-blue.svg)](https://www.typescriptlang.org/)\n[![Node.js](https://img.shields.io/badge/Node.js-20.x+-green.svg)](https://nodejs.org/)\n[![Tests](https://img.shields.io/badge/tests-398%20passing-brightgreen.svg)](https://github.com/semanticintent/semantic-d1-mcp)\n\n[![Semantic Intent](https://img.shields.io/badge/Pattern-Semantic%20Intent-blue.svg)](https://github.com/semanticintent)\n[![Hexagonal Architecture](https://img.shields.io/badge/Architecture-Hexagonal-purple.svg)](ARCHITECTURE.md)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)\n\n\u003e **Reference implementation of Semantic Intent as Single Source of Truth patterns**\n\u003e\n\u003e 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.\n\n## 📚 Table of Contents\n\n- [What Makes This Different](#-what-makes-this-different)\n- [Quick Start](#-quick-start)\n- [MCP Tools](#-mcp-tools)\n- [Architecture](#-architecture)\n- [Testing](#-testing)\n- [Contributing](#-contributing)\n- [Security](#-security)\n- [License](#license)\n\n## 🎯 What Makes This Different\n\nThis isn't just another database introspection tool—it's a **reference implementation** of proven semantic intent patterns:\n\n- ✅ **Semantic Anchoring**: Schema analysis based on meaning (table purpose, relationships), not technical metrics (row counts, sizes)\n- ✅ **Observable Properties**: Decisions anchored to directly observable schema markers (foreign keys, indexes, constraints)\n- ✅ **Intent Preservation**: Database semantics maintained through all transformations (development → staging → production)\n- ✅ **Domain Boundaries**: Clear semantic ownership (Schema Domain ≠ Query Optimization Domain ≠ MCP Protocol Domain)\n\nBuilt on research from [Semantic Intent as Single Source of Truth](https://github.com/semanticintent), this implementation demonstrates how to build maintainable, AI-friendly database tools that preserve intent.\n\n---\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- Node.js 20.x or higher\n- Cloudflare account with D1 databases\n- Cloudflare API token with D1 access\n\n### Installation\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/semanticintent/semantic-d1-mcp.git\n   cd semantic-d1-mcp\n   ```\n\n2. **Install dependencies**\n   ```bash\n   npm install\n   ```\n\n3. **Configure environment**\n\n   Copy the example configuration:\n   ```bash\n   cp .env.example .env\n   ```\n\n   Update `.env` with your Cloudflare credentials:\n   ```bash\n   # Cloudflare Configuration\n   CLOUDFLARE_ACCOUNT_ID=your_cloudflare_account_id\n   CLOUDFLARE_API_TOKEN=your_cloudflare_api_token\n\n   # D1 Database Configuration - Development\n   D1_DEV_DATABASE_ID=your_dev_database_id\n   D1_DEV_DATABASE_NAME=your_dev_database_name\n\n   # D1 Database Configuration - Staging (Optional)\n   D1_STAGING_DATABASE_ID=your_staging_database_id\n   D1_STAGING_DATABASE_NAME=your_staging_database_name\n\n   # D1 Database Configuration - Production (Optional)\n   D1_PROD_DATABASE_ID=your_prod_database_id\n   D1_PROD_DATABASE_NAME=your_prod_database_name\n   ```\n\n   **Note**: At least one database environment must be configured.\n\n4. **Build the server**\n   ```bash\n   npm run build\n   ```\n\n5. **Start the MCP server**\n   ```bash\n   npm start\n   ```\n\n   Or use the provided shell script:\n   ```bash\n   ./start-d1-mcp.sh\n   ```\n\n### Get Cloudflare API Token\n\n1. Go to [Cloudflare Dashboard](https://dash.cloudflare.com/)\n2. Navigate to **My Profile** → **API Tokens**\n3. Click **Create Token**\n4. Use the **Edit Cloudflare Workers** template\n5. Add **D1** permissions: `D1:Read`\n6. Copy the token to your `.env` file\n\n### Get D1 Database IDs\n\n```bash\n# List all your D1 databases\nwrangler d1 list\n\n# Get specific database info\nwrangler d1 info \u003cdatabase-name\u003e\n```\n\nCopy the database IDs to your `.env` file.\n\n---\n\n## 🛠️ MCP Tools\n\nThis server provides **4 comprehensive MCP tools** for D1 database introspection:\n\n### 1. **analyze_database_schema**\nAnalyze complete database schema structure with metadata and optional sample data.\n\n**Parameters:**\n- `environment` (required): `\"development\"` | `\"staging\"` | `\"production\"`\n- `includeSamples` (optional, default: `true`): Include sample data from tables\n- `maxSampleRows` (optional, default: `5`): Maximum rows per table sample\n\n**Returns:**\n- Complete schema analysis\n- Table structures with columns, types, constraints\n- Indexes and foreign keys\n- Sample data from each table (if enabled)\n- Schema metadata and statistics\n\n**Example:**\n```json\n{\n  \"name\": \"analyze_database_schema\",\n  \"arguments\": {\n    \"environment\": \"development\",\n    \"includeSamples\": true,\n    \"maxSampleRows\": 5\n  }\n}\n```\n\n### 2. **get_table_relationships**\nExtract and analyze foreign key relationships between tables.\n\n**Parameters:**\n- `environment` (required): Database environment\n- `tableName` (optional): Filter relationships for specific table\n\n**Returns:**\n- Foreign key relationships with cardinality (one-to-many, many-to-one)\n- Referential integrity rules (CASCADE, SET NULL, etc.)\n- Relationship metadata and statistics\n\n**Example:**\n```json\n{\n  \"name\": \"get_table_relationships\",\n  \"arguments\": {\n    \"environment\": \"production\",\n    \"tableName\": \"users\"\n  }\n}\n```\n\n### 3. **validate_database_schema**\nValidate database schema for common issues and anti-patterns.\n\n**Parameters:**\n- `environment` (required): Database environment\n\n**Returns:**\n- Schema validation results\n- Missing primary keys\n- Foreign keys without indexes\n- Naming convention violations\n- Tables without relationships\n\n**Example:**\n```json\n{\n  \"name\": \"validate_database_schema\",\n  \"arguments\": {\n    \"environment\": \"production\"\n  }\n}\n```\n\n### 4. **suggest_database_optimizations**\nGenerate schema optimization recommendations based on structure analysis.\n\n**Parameters:**\n- `environment` (required): Database environment\n\n**Returns:**\n- Prioritized optimization suggestions (high/medium/low)\n- Missing index recommendations\n- Primary key suggestions\n- Schema improvement opportunities\n- Performance optimization tips\n\n**Example:**\n```json\n{\n  \"name\": \"suggest_database_optimizations\",\n  \"arguments\": {\n    \"environment\": \"production\"\n  }\n}\n```\n\n---\n\n## 🔌 Connect to Claude Desktop\n\nConnect this MCP server to Claude Desktop for AI-assisted database development.\n\n### Configuration\n\n1. **Edit Claude Desktop config** - Go to Settings → Developer → Edit Config\n\n2. **Add MCP server configuration**:\n\n```json\n{\n  \"mcpServers\": {\n    \"semantic-d1\": {\n      \"command\": \"node\",\n      \"args\": [\n        \"/absolute/path/to/semantic-d1-mcp/dist/index.js\"\n      ],\n      \"env\": {\n        \"CLOUDFLARE_ACCOUNT_ID\": \"your_account_id\",\n        \"CLOUDFLARE_API_TOKEN\": \"your_api_token\",\n        \"D1_DEV_DATABASE_ID\": \"your_dev_db_id\",\n        \"D1_DEV_DATABASE_NAME\": \"your_dev_db_name\",\n        \"D1_STAGING_DATABASE_ID\": \"your_staging_db_id\",\n        \"D1_STAGING_DATABASE_NAME\": \"your_staging_db_name\",\n        \"D1_PROD_DATABASE_ID\": \"your_prod_db_id\",\n        \"D1_PROD_DATABASE_NAME\": \"your_prod_db_name\"\n      }\n    }\n  }\n}\n```\n\n3. **Restart Claude Desktop**\n\n4. **Verify tools are available** - You should see 4 D1 tools in Claude's tool list\n\n### Usage Example\n\nIn Claude Desktop:\n\u003e \"Analyze my production database schema and suggest optimizations for tables with foreign keys\"\n\nClaude will use the `analyze_database_schema` and `suggest_database_optimizations` tools automatically.\n\n---\n\n## 🏗️ Architecture\n\nThis project demonstrates **Domain-Driven Hexagonal Architecture** with clean separation of concerns:\n\n```\n┌─────────────────────────────────────────────────────────┐\n│                   Presentation Layer                     │\n│              (MCP Server - Protocol Handling)            │\n└────────────────────┬────────────────────────────────────┘\n                     │\n┌────────────────────▼────────────────────────────────────┐\n│                  Application Layer                       │\n│        (Use Cases - Schema Analysis Orchestration)      │\n└────────────────────┬────────────────────────────────────┘\n                     │\n┌────────────────────▼────────────────────────────────────┐\n│                    Domain Layer                          │\n│     (Schema Entities, Relationship Logic, Services)     │\n│              Pure Business Logic                         │\n└────────────────────┬────────────────────────────────────┘\n                     │\n┌────────────────────▼────────────────────────────────────┐\n│                Infrastructure Layer                      │\n│       (Cloudflare D1 REST API, HTTP Client)             │\n│           Technical Adapters                             │\n└─────────────────────────────────────────────────────────┘\n```\n\n### Implementation Status\n\n**Status**: ✅ Hexagonal architecture refactoring complete\n\n**Current Structure**:\n```\nsrc/\n├── domain/              # Business logic (entities, services)\n│   ├── entities/        # DatabaseSchema, TableInfo, Column, etc.\n│   ├── services/        # SchemaAnalyzer, RelationshipAnalyzer, etc.\n│   ├── repositories/    # Port interfaces\n│   └── value-objects/   # Environment enum\n├── application/         # Use cases and orchestration\n│   ├── use-cases/       # AnalyzeSchema, GetRelationships, etc.\n│   └── ports/           # Cache provider interface\n├── infrastructure/      # External adapters\n│   ├── adapters/        # CloudflareD1Repository, Cache\n│   ├── config/          # CloudflareConfig, DatabaseConfig\n│   └── http/            # CloudflareAPIClient\n├── presentation/        # MCP protocol layer\n│   └── mcp/             # D1DatabaseMCPServer\n└── index.ts             # Composition root (DI)\n```\n\nSee [ARCHITECTURE.md](ARCHITECTURE.md) for detailed design documentation.\n\n### Layer Responsibilities\n\n**Domain Layer**:\n- Database schema entities (Schema, Table, Relationship, Index)\n- Schema analysis business logic\n- Relationship extraction logic\n- Optimization recommendation rules\n\n**Application Layer**:\n- Orchestrate domain services\n- Execute use cases (AnalyzeSchema, GetRelationships, etc.)\n- Coordinate infrastructure adapters\n\n**Infrastructure Layer**:\n- Cloudflare D1 REST API integration\n- HTTP client for API calls\n- Cache provider (in-memory)\n\n**Presentation Layer**:\n- MCP server initialization\n- Tool registration and routing\n- Request/response formatting\n\n### Semantic Intent Principles\n\nThis codebase follows strict semantic anchoring rules:\n\n1. **Semantic Over Structural**\n   ```typescript\n   // ✅ SEMANTIC: Based on observable schema properties\n   const needsIndex = table.hasForeignKey() \u0026\u0026 !table.hasIndexOnForeignKey()\n\n   // ❌ STRUCTURAL: Based on technical metrics\n   const needsIndex = table.rowCount \u003e 10000 \u0026\u0026 table.queryCount \u003e 100\n   ```\n\n2. **Intent Preservation**\n   ```typescript\n   // ✅ Environment semantics preserved through transformations\n   const schema = await fetchSchema(Environment.PRODUCTION)\n   // Schema analysis preserves \"production\" intent - no overrides\n   ```\n\n3. **Observable Anchoring**\n   ```typescript\n   // ✅ Based on directly observable properties\n   const relationships = extractForeignKeys(sqliteMaster)\n\n   // ❌ Based on inferred behavior\n   const relationships = inferFromQueryPatterns(logs)\n   ```\n\nSee [SEMANTIC_ANCHORING_GOVERNANCE.md](SEMANTIC_ANCHORING_GOVERNANCE.md) for complete governance rules.\n\n---\n\n## 🧪 Testing\n\n**Status**: ✅ Comprehensive test suite with 398 tests passing\n\n### Test Coverage\n\n- ✅ **Domain Layer**: 212 tests (entities, services, validation)\n- ✅ **Infrastructure Layer**: 64 tests (D1 adapter, API client, config)\n- ✅ **Application Layer**: 35 tests (use cases, orchestration)\n- ✅ **Presentation Layer**: 13 tests (MCP server, tool routing)\n- ✅ **Integration**: 15 tests (end-to-end flows)\n- ✅ **Value Objects**: 59 tests (Environment, immutability)\n\n**Total**: 398 tests (all passing ✅)\n\n### Running Tests\n\n```bash\n# Run all tests\nnpm test\n\n# Watch mode\nnpm run test:watch\n\n# With UI\nnpm run test:ui\n\n# Coverage report\nnpm run test:coverage\n```\n\n### Test Framework\n\n- **Vitest**: Fast unit testing framework\n- **@vitest/coverage-v8**: Code coverage reports\n- **Mock Strategy**: Mock Cloudflare D1 API responses via interface implementations\n\n---\n\n## 📖 Learning from This Implementation\n\nThis codebase serves as a **reference implementation** for semantic intent patterns in database tooling.\n\n### Key Files to Study\n\n**Hexagonal Architecture Implementation**:\n- [src/index.ts](src/index.ts) - Composition root with dependency injection\n- [src/domain/entities/](src/domain/entities/) - Domain entities with semantic validation\n- [src/domain/services/](src/domain/services/) - Pure business logic services\n- [src/application/use-cases/](src/application/use-cases/) - Orchestration layer\n- [src/infrastructure/adapters/](src/infrastructure/adapters/) - External adapters\n- [src/presentation/mcp/](src/presentation/mcp/) - MCP protocol layer\n\n**Reference Documentation**:\n- [D1_MCP_REFACTORING_PLAN.md](D1_MCP_REFACTORING_PLAN.md) - Complete refactoring plan\n- [SEMANTIC_ANCHORING_GOVERNANCE.md](SEMANTIC_ANCHORING_GOVERNANCE.md) - Governance rules\n- [ARCHITECTURE.md](ARCHITECTURE.md) - Architecture details\n\n### Related Projects\n\n- [semantic-context-mcp](https://github.com/semanticintent/semantic-context-mcp) - Sibling reference implementation for context management\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions! This is a **reference implementation**, so contributions should maintain semantic intent principles.\n\n### How to Contribute\n\n1. **Read the guidelines**: [CONTRIBUTING.md](CONTRIBUTING.md)\n2. **Check refactoring plan**: [D1_MCP_REFACTORING_PLAN.md](D1_MCP_REFACTORING_PLAN.md)\n3. **Follow the architecture**: Maintain layer boundaries and semantic anchoring\n4. **Add tests**: All changes need comprehensive test coverage\n5. **Document intent**: Explain WHY, not just WHAT\n\n### Contribution Standards\n\n- ✅ Follow semantic intent patterns\n- ✅ Maintain hexagonal architecture (post-refactoring)\n- ✅ Add comprehensive tests (90%+ coverage target)\n- ✅ Include semantic documentation\n- ✅ Pass all CI checks\n\n**Quick Links:**\n- [Contributing Guide](CONTRIBUTING.md) - Detailed guidelines\n- [Code of Conduct](CODE_OF_CONDUCT.md) - Community standards\n- [Architecture Guide](ARCHITECTURE.md) - Design principles\n- [Security Policy](SECURITY.md) - Report vulnerabilities\n\n### Community\n\n- 💬 [Discussions](https://github.com/semanticintent/semantic-d1-mcp/discussions) - Ask questions\n- 🐛 [Issues](https://github.com/semanticintent/semantic-d1-mcp/issues) - Report bugs\n- 🔒 [Security](SECURITY.md) - Report vulnerabilities privately\n\n---\n\n## 🔒 Security\n\nSecurity is a top priority. Please review our [Security Policy](SECURITY.md) for:\n\n- API token management best practices\n- What to commit / what to exclude\n- Reporting security vulnerabilities\n- Security checklist for deployment\n\n**Found a vulnerability?** Email: security@semanticintent.dev\n\n---\n\n## 🔬 Research Foundation\n\nThis implementation is based on the research paper **\"Semantic Intent as Single Source of Truth: Immutable Governance for AI-Assisted Development\"**.\n\n### Core Principles Applied\n\n1. **Semantic Over Structural** - Schema analysis based on meaning, not metrics\n2. **Intent Preservation** - Environment semantics maintained through transformations\n3. **Observable Anchoring** - Decisions based on directly observable schema properties\n4. **Immutable Governance** - Protect semantic integrity at runtime\n\n### Related Resources\n\n- [Research Paper](https://github.com/semanticintent) (coming soon)\n- [Semantic Anchoring Governance](SEMANTIC_ANCHORING_GOVERNANCE.md)\n- [semanticintent.dev](https://semanticintent.dev) (coming soon)\n\n---\n\n## 📊 Project Roadmap\n\n### ✅ Phase 0: Initial Implementation (Complete)\n- Monolithic MCP server with 6 tools\n- D1 REST API integration\n- Basic schema analysis\n\n### ✅ Phase 1: Domain Layer (Complete)\n- 10 domain entities with semantic validation\n- 3 domain services (SchemaAnalyzer, RelationshipAnalyzer, OptimizationService)\n- 212 passing tests\n\n### ✅ Phase 2: Infrastructure Layer (Complete)\n- CloudflareD1Repository adapter\n- CloudflareAPIClient HTTP client\n- InMemoryCacheProvider\n- 64 passing tests\n\n### ✅ Phase 3: Application Layer (Complete)\n- 4 use cases (AnalyzeSchema, GetRelationships, ValidateSchema, SuggestOptimizations)\n- Port interfaces (ICloudflareD1Repository, ICacheProvider)\n- 35 passing tests\n\n### ✅ Phase 4: Presentation Layer (Complete)\n- D1DatabaseMCPServer with 4 MCP tools\n- Request/response DTOs\n- 13 passing tests\n\n### ✅ Phase 5: Integration \u0026 Composition Root (Complete)\n- Dependency injection in index.ts\n- Environment configuration\n- 15 integration tests\n\n### ✅ Phase 6: CI/CD \u0026 Documentation (Complete)\n- TypeScript build verification\n- README updated\n- 398 total tests passing\n\n### 🎯 Phase 7: Production Readiness (Planned)\n- GitHub Actions CI/CD workflow\n- Dependabot automation\n- Security scanning\n- GitHub repository setup\n\nSee [D1_MCP_REFACTORING_PLAN.md](D1_MCP_REFACTORING_PLAN.md) for detailed roadmap.\n\n---\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## 🙏 Acknowledgments\n\n- Built on [Model Context Protocol](https://modelcontextprotocol.io) by Anthropic\n- Inspired by [Hexagonal Architecture](https://alistair.cockburn.us/hexagonal-architecture/) (Alistair Cockburn)\n- Based on [Domain-Driven Design](https://www.domainlanguage.com/ddd/) principles (Eric Evans)\n- Part of the [Semantic Intent](https://github.com/semanticintent) research initiative\n\n---\n\n**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.** 🏗️\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemanticintent%2Fsemantic-d1-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsemanticintent%2Fsemantic-d1-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemanticintent%2Fsemantic-d1-mcp/lists"}