Skill Wiki v0.1.0

文档 / extending / domain-mcp

本页目录

领域 MCP wrapper

核心 MCP server 是领域无关的。多数 agentic 工作流都需要一个领域定制的 wrapper —— 在它之上加一批专为这个领域准备的工具。 参考 frontend Prime 自带这样一个 wrapper。

Wrapper 多加了什么

  • 领域命名的工具 —— 比如 frontend_color_checkfrontend_layout_resolve,而不是泛化的 prime_query
  • 预置的标签包 —— wrapper 自己知道一次 query 该挂哪几个 axes,agent 不必操心。
  • 领域 L5 validator —— 进程内注册的 checker,domain.yaml 直接引用。
  • 品牌 —— wrapper 有自己的 npm 包名和版本号。

骨架

// packages/mcp-server-frontend/src/index.ts
import { createCoreServer } from "@skill-wiki/mcp-server-core";

const core = await createCoreServer({ primeDir: process.env.PRIME_DIR });

// Add domain tools.
core.registerTool("frontend_color_check", {
  description: "Check generated CSS for color-token compliance.",
  inputSchema: {
    type: "object",
    properties: {
      css: { type: "string" },
    },
  },
  handler: async (args) => {
    const verdict = await checkColorTokens(args.css);
    return { ok: verdict.ok, fixes: verdict.fixes };
  },
});

// Register domain L5 validators referenced from domain.yaml.
core.registerValidator("color-token", colorTokenValidator);

await core.serve();

命名约定

约定
包名@skill-wiki/mcp-server-<domain>
工具前缀<domain>_<verb>,比如 frontend_color_check
是否带核心 5 工具带 —— 是包装,不是替换。
版本Semver;跟 mcp-server-core 上游走。

分发

把 wrapper 发到自己的 npm scope 下。使用方接入它的方式跟核心 server 完全一样:

{
  "mcpServers": {
    "frontend-design": {
      "command": "bunx",
      "args": ["@skill-wiki/mcp-server-frontend"],
      "env": {
        "PRIME_DIR": "/abs/path/to/frontend-design/compiled"
      }
    }
  }
}

参考实现

skill-wiki/prime-corpus-frontend 里的 packages/mcp-server-frontend/。 它在核心 5 工具基础上额外注册了 4 个 frontend 专用工具,并自带 color-token 与 a11y-audit 两个 validator。