mcpField
D
datuma_k

datuma_k

本地服务
github.com开发工具07 周前更新

关于 datuma_k

datuma_k MCP 是面向应用仓库中 Agent 的 stdio MCP 服务,通过已安装的 datuma_k 二进制处理数据契约与模板。它提供查询、校验、预览和生成操作,并附带相关语言文档与提示词。

主要功能

  1. 01列出项目契约与模板路径
  2. 02查询数据契约
  3. 03校验契约与关键字
  4. 04预览生成计划
  5. 05生成代码片段
  6. 06推断模式并提供规则建议

适用场景

  1. 01检查项目中的契约和模板
  2. 02按模型或字段查找契约
  3. 03写入前预览生成结果
  4. 04为新增模型或字段提供指导

MCP 相关

该服务通过 stdio 向 MCP 客户端提供工具、资源和提示词,并调用项目中已安装的 datuma_k 二进制执行部分操作。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"marthvon-datuma-k": {
"command": "npx",
"args": [
"-y",
"@marthvon/datuma-k-mcp"
],
"env": {
"DATUMA_K": "<DATUMA_K>"
}
}
}
}
启动命令npx -y @marthvon/datuma-k-mcp
需要配置的环境变量
DATUMA_KAbsolute path to the datuma_k binary. Omit if datuma_k is already on PATH.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@marthvon/datuma-k-mcp1.0.0

工具

7

收录的工具列表 · 更新于 3 周前

参数类型必填说明
rootstring否项目目录(默认为 MCP 进程的当前工作目录)

详细介绍

datuma_k MCP

供 Agent 在应用仓库中使用已安装的 datuma_k 二进制文件的 stdio MCP 服务。它不会链接编译器 crate。如果 datuma_k 不在 PATH 中,请将 DATUMA_K 设置为该二进制文件的路径。

安装

已发布到 npm,包名为 @marthvon/datuma-k-mcp,并已发布到 MCP Registry,名称为 io.github.marthvon/datuma-k。

Cursor / Claude 示例(mcp.json):

{
  "mcpServers": {
    "datuma_k": {
      "command": "npx",
      "args": ["-y", "@marthvon/datuma-k-mcp"]
    }
  }
}

datuma_k 必须位于 PATH 中。如果不是,请将 DATUMA_K 指向该二进制文件:

{
  "mcpServers": {
    "datuma_k": {
      "command": "npx",
      "args": ["-y", "@marthvon/datuma-k-mcp"],
      "env": {
        "DATUMA_K": "/ABS/PATH/TO/datuma_k/target/release/datuma_k"
      }
    }
  }
}
从源码安装
cd mcp
npm install
npm run build

然后使用 "command": "node" 和 "args": ["/ABS/PATH/TO/datuma_k/mcp/dist/index.js"]。

进程的工作目录应为 datuma_k 项目(包含 .env 的目录),或者在每次工具调用时传入 root。

工具

工具二进制文件说明
list_project(文件 + .env)目录和契约/模板路径
query_contractsdatuma_k catalog可选的 trait / model / field / attribute / type
validatedatuma_k check解析 + 必须包含 data/keywords.md
previewdatuma_k preview生成计划,不写入文件
generatedatuma_k run写入生成的片段
advise_ngin(本地规则)何时使用 ngin,而非手写代码
infer_patternscatalog + keywords.mdtrait、控件、关联审查备注、同步风险、别名

资源

  • datuma://language/dtct
  • datuma://language/ngin
  • datuma://language/standards
  • datuma://docs/keywords
  • datuma://docs/practices
  • datuma://docs/when-ngin

提示词

add-model、add-field、scaffold-ngin、should-use-ngin、infer-contract-patterns

测试

npm test

发布

按以下顺序发布到两个注册表。npm 托管 tarball;MCP Registry 仅托管元数据,并会对照已发布的 npm 包进行验证,因此必须先发布到 npm,否则第二次发布会失败,并提示 Registry validation failed for package。

名称位置设置于
@marthvon/datuma-k-mcpnpm 包package.json 中的 name
io.github.marthvon/datuma-kMCP Registry 服务package.json 中的 mcpName 以及 server.json 中的 name——两者必须一致,否则注册表会拒绝发布

io.github.marthvon/ 前缀并非装饰:GitHub 设备流身份验证只授予该命名空间。若使用其他前缀,则需要 DNS 或 HTTP 身份验证。

一次性设置
brew install mcp-publisher            # or a binary from the registry releases page
npm login                             # npm account, scope @marthvon

npm 发布需要启用双重身份验证。如果账户尚未启用,npm publish 会失败,并提示 403 ... Two-factor authentication or granular access token with bypass 2fa enabled is required,此时甚至还未检查 tarball。使用 npm profile get 检查;使用 npm profile enable-2fa auth-and-writes 或在 npmjs.com 上启用,并妥善保管恢复代码。

发布版本

在三个位置更新版本号——注册表会拒绝已发布过的版本;而 npm 包版本与 server.json 中的 packages[0].version 不一致则会导致验证失败:

  • package.json → version
  • server.json → version
  • server.json → packages[0].version

然后:

npm test                              # tsc + node --test
mcp-publisher validate                # checks server.json against the live registry, publishes nothing
npm publish --otp=123456              # prepublishOnly runs the build; drop --otp to be prompted
mcp-publisher login github            # device code → github.com/login/device
mcp-publisher publish

mcp-publisher login 会保存令牌,因此日常发布只需依次运行 npm publish 和 mcp-publisher publish。

验证:

npm view @marthvon/datuma-k-mcp version
curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.marthvon/datuma-k"
发布内容

package.json 中的 files 将 tarball 限定为 dist、resources 和 README.md。resources/ 是运行时必需的——server.ts 会将其解析为 dist/../resources——因此若从 files 中移除它,虽然包可以正常安装,但每次读取资源都会失败。发布前使用 npm pack --dry-run 确认。

故障排除
错误原因
403 ... Two-factor authentication ... is requirednpm 账户已禁用 2FA。请参阅上文。
403 ... you do not have access@marthvon 作用域属于一个组织;请使用 npm org ls marthvon 确认成员资格。
Registry validation failed for package尚未执行 npm 发布,或者 package.json 中的 mcpName 与 server.json 中的 name 不匹配。
Invalid or expired Registry JWT token重新运行 mcp-publisher login github。
You do not have permission to publish this server服务名称未以 io.github.<your-github-username>/ 开头。
expected length <= 100 on body.descriptionserver.json 中的 description 最多为 100 个字符。npm 的 description 不受此限制。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。