Token导航 LogoToken导航TokenDH.com
Semantic D1 MCP logo
数据服务未说明官方级别未说明来源级核验

Semantic D1 MCP

MCP Server

一个基于语义意图的Cloudflare D1数据库内省工具,提供模式分析、关系提取、验证和优化建议功能。

工具数

4

提示词数

0

GitHub Stars

2

资源数

0
TypeScriptClaude数据分析Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

semanticintent

提供方

semanticintent

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

](https://mseep.ai/app/semanticintent-semantic-d1-mcp)

语义D1 MCP(注:D1和MCP在此处可能代表特定的技术或概念,但根据上下文无法确定具体含义,因此直接保留原英文缩写。在实际应用中,应根据具体领域或上下文给出准确解释。)

![License: MIT](https://opensource.org/licenses/MIT) ![CI](https://github.com/semanticintent/semantic-d1-mcp/actions/workflows/ci.yml) ![TypeScript](https://www.typescriptlang.org/) ](https://nodejs.org/) ![Tests](https://github.com/semanticintent/semantic-d1-mcp)

![Semantic Intent](https://github.com/semanticintent) ![Hexagonal Architecture](ARCHITECTURE.md) ![PRs Welcome](CONTRIBUTING.md)

语义意图作为单一真实来源模式的参考实现 一个用于Cloudflare D1数据库内省的模型上下文协议(MCP)服务器,展示了语义锚定、可观察属性以及面向领域驱动设计的AI辅助数据库开发。

📚 目录

🎯 何以与众不同

这不仅仅是一个数据库内省工具——它是一个 参考实现 已证实的语义意图模式:

  • 语义锚定基于意义的模式分析(表格目的、关系),而非技术指标(行数、大小)
  • 可观察属性基于可直接观察的模式标记(外键、索引、约束)的决策
  • 意图保持(或意图保留)数据库语义在所有转换过程中(开发→预生产→生产)均得到维护
  • 领域边界明确的语义归属(模式域 ≠ 查询优化域 ≠ MCP协议域)

基于(某机构/某人的)研究成果构建 语义意图作为唯一真相来源这一实现展示了如何构建可维护、对AI友好的数据库工具,同时保持设计意图。

______________________________________________________________________

🚀 快速入门

先决条件

  • Node.js 20.x 或更高版本
  • 拥有D1数据库的Cloudflare账户
  • Cloudflare API令牌,具有D1访问权限

安装

  1. 克隆仓库
   git clone https://github.com/semanticintent/semantic-d1-mcp.git
   cd semantic-d1-mcp
  1. 安装依赖项
   npm install
  1. 配置环境

复制示例配置:

   cp .env.example .env

更新 .env 使用您的Cloudflare凭据:

   # 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_name

必须至少配置一个数据库环境。

  1. 构建服务器
   npm run build
  1. 启动MCP服务器
   npm start

或者使用提供的shell脚本:

   ./start-d1-mcp.sh

获取Cloudflare API令牌

  1. 首选 Cloudflare 控制面板
  2. 导航至 我的个人资料API令牌
  3. 点击 创建代币
  4. 使用 编辑 Cloudflare Workers 模板
  5. 添加 D1 权限: D1:Read
  6. 将令牌复制到您的 .env 文件

获取D1数据库ID

# List all your D1 databases
wrangler d1 list

# Get specific database info
wrangler d1 info 

将数据库ID复制到您的(相应位置) .env 文件。

______________________________________________________________________

🛠️ MCP 工具

这台服务器提供 4款全面的MCP工具 用于D1数据库的内省(或自省):

1. 分析数据库架构

分析完整的数据库模式结构,包括元数据和可选的样本数据。

参数:

  • environment (必填): "development" | "staging" | "production"
  • includeSamples (可选,默认: true): 包括表格中的示例数据
  • maxSampleRows (可选,默认: 5): 每个表样本的最大行数

返回值:

  • 完整的模式分析
  • 带有列、类型和约束的表结构
  • 索引和外键
  • 每个表中的示例数据(如果已启用)
  • 模式元数据和统计信息

示例:

{
  "name": "analyze_database_schema",
  "arguments": {
    "environment": "development",
    "includeSamples": true,
    "maxSampleRows": 5
  }
}

2. 获取表关系

提取并分析表之间的外键关系。

参数:

  • environment (必需):数据库环境
  • tableName (可选):为特定表过滤关系

返回值:

  • 具有基数(一对多、多对一)的外键关系
  • 引用完整性规则(级联、设为NULL等)
  • 关系元数据和统计信息

示例:

{
  "name": "get_table_relationships",
  "arguments": {
    "environment": "production",
    "tableName": "users"
  }
}

3. 验证数据库模式

验证数据库模式是否存在常见问题和反模式。

参数:

  • environment (必需):数据库环境

返回值:

  • 模式验证结果
  • 缺少主键
  • 没有索引的外键
  • 命名规范违规
  • 没有关系的表

示例:

{
  "name": "validate_database_schema",
  "arguments": {
    "environment": "production"
  }
}

4. 建议数据库优化

基于结构分析生成模式优化建议。

参数:

  • environment (必需):数据库环境

返回值:

  • 优先级优化建议(高/中/低)
  • 缺失的索引建议
  • 主键建议
  • 模式改进机会
  • 性能优化技巧

示例:

{
  "name": "suggest_database_optimizations",
  "arguments": {
    "environment": "production"
  }
}

______________________________________________________________________

🔌 连接到Claude桌面版

将此MCP服务器连接到Claude桌面,以进行AI辅助的数据库开发。

配置

  1. 编辑Claude桌面配置 - 进入设置 → 开发者 → 编辑配置
  1. 添加MCP服务器配置
{
  "mcpServers": {
    "semantic-d1": {
      "command": "node",
      "args": [
        "/absolute/path/to/semantic-d1-mcp/dist/index.js"
      ],
      "env": {
        "CLOUDFLARE_ACCOUNT_ID": "your_account_id",
        "CLOUDFLARE_API_TOKEN": "your_api_token",
        "D1_DEV_DATABASE_ID": "your_dev_db_id",
        "D1_DEV_DATABASE_NAME": "your_dev_db_name",
        "D1_STAGING_DATABASE_ID": "your_staging_db_id",
        "D1_STAGING_DATABASE_NAME": "your_staging_db_name",
        "D1_PROD_DATABASE_ID": "your_prod_db_id",
        "D1_PROD_DATABASE_NAME": "your_prod_db_name"
      }
    }
  }
}
  1. 重启Claude桌面版
  1. 验证工具是否可用 - 你应该在克劳德的工具列表中看到4个D1工具

使用示例

在Claude桌面版中:

“分析我的生产数据库架构,并为包含外键的表提出优化建议”

克劳德将使用 analyze_database_schema 并且 suggest_database_optimizations 自动工具。

______________________________________________________________________

🏗️ 建筑学

这个项目展示了 领域驱动六边形架构 具有清晰的职责分离:

┌─────────────────────────────────────────────────────────┐
│                   Presentation Layer                     │
│              (MCP Server - Protocol Handling)            │
└────────────────────┬────────────────────────────────────┘
                     │
┌────────────────────▼────────────────────────────────────┐
│                  Application Layer                       │
│        (Use Cases - Schema Analysis Orchestration)      │
└────────────────────┬────────────────────────────────────┘
                     │
┌────────────────────▼────────────────────────────────────┐
│                    Domain Layer                          │
│     (Schema Entities, Relationship Logic, Services)     │
│              Pure Business Logic                         │
└────────────────────┬────────────────────────────────────┘
                     │
┌────────────────────▼────────────────────────────────────┐
│                Infrastructure Layer                      │
│       (Cloudflare D1 REST API, HTTP Client)             │
│           Technical Adapters                             │
└─────────────────────────────────────────────────────────┘

实施状态

状态✅ 六边形架构重构完成

当前结构:

src/
├── domain/              # Business logic (entities, services)
│   ├── entities/        # DatabaseSchema, TableInfo, Column, etc.
│   ├── services/        # SchemaAnalyzer, RelationshipAnalyzer, etc.
│   ├── repositories/    # Port interfaces
│   └── value-objects/   # Environment enum
├── application/         # Use cases and orchestration
│   ├── use-cases/       # AnalyzeSchema, GetRelationships, etc.
│   └── ports/           # Cache provider interface
├── infrastructure/      # External adapters
│   ├── adapters/        # CloudflareD1Repository, Cache
│   ├── config/          # CloudflareConfig, DatabaseConfig
│   └── http/            # CloudflareAPIClient
├── presentation/        # MCP protocol layer
│   └── mcp/             # D1DatabaseMCPServer
└── index.ts             # Composition root (DI)

ARCHITECTURE.md(文件名可译为“架构.md”,其中“.md”表示Markdown格式文件) 用于详细设计文档。

层职责

领域层

  • 数据库模式实体(模式、表、关系、索引)
  • 模式分析业务逻辑
  • 关系抽取逻辑
  • 优化推荐规则

应用层

  • 协调领域服务
  • 执行用例(分析模式、获取关系等)
  • 协调基础设施适配器

基础设施层

  • Cloudflare D1 REST API 集成
  • API调用的HTTP客户端
  • 缓存提供程序(内存中)

表示层

  • MCP服务器初始化
  • 工具注册和路由
  • 请求/响应格式化

语义意图原则

这个代码库遵循严格的语义锚定规则:

  1. “Semantic Over Structural”可以翻译为“语义优于结构”或“结构之上重语义”。这里,“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 > 100
  1. 意图保持(或意图保留)
   // ✅ Environment semantics preserved through transformations
   const schema = await fetchSchema(Environment.PRODUCTION)
   // Schema analysis preserves "production" intent - no overrides
  1. 可观察锚定
   // ✅ Based on directly observable properties
   const relationships = extractForeignKeys(sqliteMaster)

   // ❌ Based on inferred behavior
   const relationships = inferFromQueryPatterns(logs)

《语义锚定治理.md》 以形成完整的治理规则。

______________________________________________________________________

🧪 测试

状态✅ 全面的测试套件,398项测试通过

测试覆盖率

  • 领域层212项测试(实体、服务、验证)
  • 基础设施层64项测试(D1适配器、API客户端、配置)
  • 应用层35项测试(用例、编排)
  • 表示层(或称展示层)13项测试(MCP服务器,工具路由)
  • 整合15项测试(端到端流程)
  • 值对象59项测试(环境、不可变性)

总计398项测试(全部通过 ✅)

运行测试

# Run all tests
npm test

# Watch mode
npm run test:watch

# With UI
npm run test:ui

# Coverage report
npm run test:coverage

测试框架

  • Vitest快速单元测试框架
  • @vitest/coverage-v8(可译为:“用于Vitest的V8覆盖率工具”或保持原样,因为这是特定于项目或库的名称,直接翻译可能失去其原始含义)代码覆盖率报告
  • 模拟策略通过接口实现模拟Cloudflare D1 API的响应

______________________________________________________________________

📖 从这次实施中学习

这个代码库作为 参考实现 用于数据库工具中的语义意图模式。

需研究的关键文件

六边形架构的实现:

参考文档

相关项目

______________________________________________________________________

🤝 贡献(或“参与贡献”)

我们欢迎投稿!这是一个 参考实现因此,贡献应遵循语义意图原则。

如何贡献(或:如何参与贡献)

  1. 阅读指南CONTRIBUTING.md 翻译为中文是:“贡献指南文件(或:贡献说明文件)”。这个文件通常用于说明如何为某个项目或组织做出贡献,包括提交代码、报告问题、参与讨论等指南
  2. 检查重构计划D1_MCP重构计划.md
  3. 遵循架构保持层边界和语义锚定
  4. 添加测试所有更改都需要全面的测试覆盖
  5. 文档意图解释“为什么”,而不仅仅是“是什么”

贡献标准

  • ✅ 遵循语义意图模式
  • ✅ 保持六边形架构(重构后)
  • ✅ 添加全面测试(目标覆盖率90%以上)
  • ✅ 包含语义文档
  • ✅ 通过所有持续集成(CI)检查

快速链接:

社区

  • 💬 讨论 - 提问
  • 🐛(这个符号在中文里通常被用作表示“虫子”或“小错误”的表情符号,直接翻译可能无实际意义,但可理解为“小虫子”或“小错误”的意象) 问题 - 报告错误
  • 🔒(锁形符号,常用于表示安全、保密或锁定状态) 安全 - 私下报告漏洞

______________________________________________________________________

🔒 安全

安全是首要任务。请查阅我们的 安全政策 for:(在中文中,这个短语通常不单独翻译,因为它是一个介词短语的一部分,需要结合上下文来理解。但如果是直接翻译“for”这个单词,可以翻译为“为了”或“对于”,具体取决于上下文。)

  • API令牌管理最佳实践
  • 要提交什么/要排除什么
  • 报告安全漏洞
  • 部署安全检查清单

发现漏洞了吗? 电子邮箱:security@semanticintent.dev

______________________________________________________________________

🔬 研究基金会

这个实现是基于一篇研究论文的 “语义意图作为唯一真相来源:为AI辅助开发提供不可变治理”

应用核心原则

  1. “Semantic Over Structural”可以翻译为“语义优先于结构”或“结构之上是语义”。这里,“Semantic”指的是语义,即信息的内容和意义;“Structural”指的是结构,即信息的组织和排列方式。整个短语强调了在考虑信息或系统时,语义的重要性高于结构 - 基于意义而非指标的模式分析
  2. 意图保持(或:意图保留) - 通过转换维护的环境语义
  3. 可观察锚定 - 基于直接可观察模式属性的决策
  4. 不可变治理 - 在运行时保护语义完整性

相关资源

______________________________________________________________________

📊 项目路线图

✅ 阶段0:初步实施(已完成)

  • 集成了6种工具的单片式MCP服务器
  • D1 REST API 集成
  • 基本模式分析

✅ 第一阶段:领域层(已完成)

  • 10个具有语义验证的领域实体
  • 3个领域服务(SchemaAnalyzer,RelationshipAnalyzer,OptimizationService)
  • 212项测试通过

✅ 第二阶段:基础设施层(已完成)

  • Cloudflare D1 数据库适配器
  • Cloudflare API 客户端 HTTP 客户端
  • 内存缓存提供程序
  • 64项测试通过

✅ 第三阶段:应用层(已完成)

  • 4个用例(分析模式、获取关系、验证模式、建议优化)
  • 端口接口(ICloudflareD1Repository,ICacheProvider)
  • 35项测试通过

✅ 第四阶段:表示层(已完成)

  • 带有4个MCP工具的D1DatabaseMCPServer
  • 请求/响应数据传输对象(DTOs)
  • 13项测试通过

✅ 第五阶段:集成与组合根(完成)

  • 在index.ts中的依赖注入
  • 环境配置
  • 15项集成测试

✅ 第六阶段:持续集成/持续交付(CI/CD)与文档编写(已完成)

  • TypeScript 构建验证
  • README已更新
  • 398项总测试通过

🎯 第七阶段:生产准备(计划中)

  • GitHub Actions 持续集成/持续部署 (CI/CD) 工作流
  • Dependabot 自动化
  • 安全扫描
  • GitHub仓库设置

D1_MCP重构计划.md 以获取详细路线图。

______________________________________________________________________

📄 许可证

这个项目采用MIT许可证授权——详见 许可证 详情请查阅文件。

______________________________________________________________________

🙏 致谢

______________________________________________________________________

这是一个参考实现,展示了数据库内省的语义意图模式。研究这段代码,学习这些模式,并将它们应用到你自己的项目中。 🏗️ 翻译成中文是“建筑工地”或“正在建造”。这个表情符号通常用来表示与建筑、施工或建造相关的场景或活动。

目录标签

目录标签

TypeScriptClaude数据分析数据库分析本地部署语义意图CloudflareD1模式验证优化建议

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明noneremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP