Token导航 LogoToken导航TokenDH.com
Dynamic Skills logo
开发工具stdio官方级别未说明来源级核验

Dynamic Skills

MCP Server

dsm

Dynamic Skill Manager (DSM) 是一个CLI工具,用于将来自多个来源(MCP、Vercel Skills和Native)的技能集成到Claude Code生态系统中,提供统一的接口来发现、安装和管理跨不同技能生态系统的AI辅助开发工具。

工具数

0

提示词数

0

GitHub Stars

2

资源数

0
命令行工具技能管理TypeScriptClaudeClaude

安装说明

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

作者 / 组织

devkade

提供方

devkade

最后核验

2026/5/17 20:19

运行时

Node.js

快速接入

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

命令预览

npx dsm <command>

详细介绍

动态技能经理(DSM)

动态技能经理 是一个CLI工具,用于将来自多个来源(MCP、Vercel skills和Native)的技能集成到Claude Code生态系统中。DSM提供了一个统一的界面,用于在不同的技能生态系统中发现、安装和管理人工智能辅助开发工具。

概述

DSM弥合了不同技能生态系统之间的差距,实现了以下方面的无缝集成:

  • MCP(模型上下文协议) 技能—来自MCP服务器的工具、资源和提示
  • Vercel技能 -Vercel生态系统的AI助手功能
  • 本地(OMC)技能 -哦,我的克劳德本地技能集成

主要特点

  • 统一技能界面:单身 UnifiedSkill 类型抽象了技能来源之间的差异
  • 适配器模式:用于添加新技能源的可扩展架构
  • 执行上下文检测:自动检测全局、本地、npx和Node.js API模式
  • 技能评分与分析:基于意图的任务分析和关键字评分
  • 基于范围的安装:在全球范围内、每个项目或每个会话中安装技能
  • 全面的错误处理:20多种错误类型,包括类别和严重程度

安装

全球安装

在全球范围内安装DSM以实现系统范围内的可用性:

npm install -g dsm

本地安装

在项目中安装DSM:

npm install dsm

NPX使用

使用npx在不安装的情况下运行DSM:

npx dsm 

需求

  • Node.js>=18.0.0
  • npm>=10.0.0

用法

命令参考

状态

显示DSM状态、执行上下文和已安装的技能计数:

dsm status
# or
dsm st

输出:

DSM Status
  Execution Context: local
  Storage Path: /project/.dsm
  Ephemeral Mode: No

Installed Skills: 3/3
  - mcp: 2
  - vercel: 1

列表

列出已安装的技能(可选筛选):

# List all installed skills
dsm list
# or
dsm ls

# Filter by source
dsm list --source mcp
dsm list --source vercel

# Filter by status
dsm list --status installed
dsm list --status enabled

# JSON output
dsm list --json

添加/安装

安装具有可选范围的技能:

# Install with default (session) scope
dsm add mcp/github

# Install with specific scope
dsm add vercel/retry --scope project
dsm add mcp/postgres --scope global

# Force reinstall
dsm add mcp/github --force

# Alternate command
dsm install mcp/github

范围:

  • global -适用于所有项目(存储在 ~/.dsm/)
  • project -在当前项目中可用(存储在 ./.dsm/)
  • session -仅适用于当前会话

删除/卸载

删除已安装的技能:

dsm remove mcp/github
# or
dsm rm mcp/github
# or
dsm uninstall mcp/github

搜索

搜索可用技能:

# General search
dsm search react
dsm search database

# Filter by source
dsm search api --source mcp

# JSON output
dsm search testing --json

MCP服务器管理

管理MCP服务器连接:

# List configured MCP servers
dsm mcp list

# Connect to an MCP server
dsm mcp connect my-server http://localhost:3000

# Disconnect from an MCP server
dsm mcp disconnect my-server

分析

分析任务并建议相关技能:

dsm analyze "build a REST API for user management"
dsm analyse "create a React component for data visualization"

捆绑

管理技能包:

# List saved bundles
dsm bundle list

# Show bundle details
dsm bundle show fullstack

# Remove a bundle
dsm bundle remove fullstack

初始化

初始化DSM配置:

dsm init

这将创建:

  • 配置文件: dsm.config.json
  • 存储目录: .dsm/

版本

显示DSM版本:

dsm version
# or
dsm v

全局选项

选项描述
--json输出为JSON
--compact紧凑型输出(无ANSI颜色)
--verbose详细输出

建筑

项目结构

src/
├── core/
│   ├── types.ts          # Type definitions (UnifiedSkill, Task, etc.)
│   ├── errors.ts         # DSMError class with 20+ error subclasses
│   └── execution-context.ts  # Execution context detection
├── adapters/
│   ├── base-adapter.ts   # BaseAdapter abstract class
│   ├── mcp-adapter.ts    # MCP server adapter (JSON-RPC over HTTP/stdio)
│   ├── vercel-adapter.ts # Vercel Skills adapter (SKILL.md parsing)
│   └── omc-adapter.ts    # OMC native skills adapter (.claude/skills parsing)
├── registry/
│   ├── skill-registry.ts # Skill registry with adapter management
│   └── bundle-storage.ts # Skill bundle persistence (bundles.json)
├── analyzer/
│   └── task-analyzer.ts  # Task analysis and skill scoring
├── cli/
│   └── index.ts          # Commander.js CLI with all commands
└── index.ts              # Main entry point

适配器模式

所有技能来源均采用 SkillAdapter 接口:

interface SkillAdapter {
  readonly source: SkillSource;
  discover(): Promise;
  install(skillId: string, options?: InstallOptions): Promise;
  uninstall(skillId: string): Promise;
  isAvailable(skillId: string): Promise;
}

支持的适配器:

适配器来源用途
MCPAdaptermcp通过JSON-RPC连接到MCP服务器
VercelAdaptervercel从Vercel技能库解析SKILL.md
BaseAdapteromc自定义技能实现的基类

统一技能模型

UnifiedSkill 界面标准化了所有来源的技能:

interface UnifiedSkill {
  id: string;              // "source/id" format
  name: string;            // Human-readable name
  description: string;     // Skill description
  source: SkillSource;     // 'mcp' | 'vercel' | 'omc'
  version: string;         // Semantic version
  capabilities: Capability[];
  triggers: Trigger[];
  adapter: string;
  config: Record;
  status: SkillStatus;
  scope: SkillScope;
  metadata: SkillMetadata;
}

能力类型

类型描述
tool可执行工具/功能
resource可访问的数据资源
prompt提示模板
native本地OMC功能

意图分类

TaskAnalyzer 将任务分为9种意图类型:

意图描述
code-generation创建新代码/组件/API
refactoring重组或优化代码
testing编写或运行测试
debugging解决问题或调查问题
documentation编写文档或解释代码
analysis性能分析、代码审查
deployment发布或部署到生产环境
research查找信息或最佳实践
unknown无法分类

配置

配置文件

DSM使用 dsm.config.json 配置:

{
  "outputFormat": "table",
  "defaultScope": "session",
  "autoEnable": true,
  "telemetryEnabled": false,
  "mcpServers": {
    "my-server": {
      "endpoint": "http://localhost:3000",
      "enabled": true
    }
  }
}

配置选项

选项类型默认值描述
outputFormat字符串tabletable, json,或 compact
defaultScope字符串sessionglobal, project,或 session
autoEnable布尔值true安装后自动启用技能
telemetryEnabled布尔值false启用遥测
mcpServers对象{}MCP服务器配置

DSM_HOME

您可以设置自定义DSM主目录:

export DSM_HOME=/custom/path/to/dsm

执行上下文

DSM自动检测执行上下文:

上下文指标存储位置短暂
npx通过npx运行项目本地 .dsm/是的
globalDSM_HOME 在npm/全局路径中~/.dsm/没有
local默认项目本地 .dsm/没有
node-apiDSM_API_MODE=true项目本地 .dsm/没有

程序化使用

您可以将DSM用作Node.js库:

import { SkillRegistry, MCPAdapter, VercelAdapter } from 'dynamic-skills';

// Create registry
const registry = new SkillRegistry();

// Register adapters
registry.registerAdapter('mcp', new MCPAdapter());
registry.registerAdapter('vercel', new VercelAdapter());

// Initialize
await registry.initialize();

// Search skills
const results = await registry.search({
  query: 'api',
  filters: { sources: ['mcp'] }
});

// Install a skill
const result = await registry.install('mcp/github', {
  scope: 'project'
});

// List installed skills
const skills = registry.getAll();

任务分析

import { TaskAnalyzer } from 'dynamic-skills';

const analyzer = new TaskAnalyzer(registry);
const task = {
  id: 'task-1',
  input: 'Build a REST API for user management',
  context: { projectType: 'nodejs' }
};

const analysis = await analyzer.analyze(task);

console.log('Intent:', analysis.intent.intentType);
console.log('Confidence:', analysis.confidence);
console.log('Suggested skills:', analysis.suggestedSkills);

错误处理

DSM提供20多种错误类型的全面错误处理:

类别错误
验证ValidationError, InvalidSkillIdError, InvalidSchemaError
安装InstallationError, SkillNotFoundError, DuplicateSkillError
执行ExecutionError, SkillExecutionTimeoutError, SkillInvocationError
存储StorageError, StorageReadError, StorageWriteError
网络NetworkError, RegistryConnectionError, RegistryTimeoutError
协议MCPProtocolError, MCPConnectionError, VercelSkillsError
配置ConfigurationError, MissingConfigError, InvalidConfigError
安全SecurityError, SkillValidationError, DangerousCapabilityError
兼容性CompatibilityError, VersionMismatchError, UnsupportedPlatformError

错误格式

{
  code: string;           // Error code (e.g., 'SKILL_NOT_FOUND')
  message: string;        // Human-readable message
  severity: ErrorSeverity; // 'critical' | 'high' | 'medium' | 'low'
  category: ErrorCategory; // Error category
  timestamp: Date;        // When the error occurred
  context?: ErrorContext; // Additional context
  cause?: string;         // Root cause message
}

发展

构建命令

# Compile TypeScript
npm run build

# Watch mode
npm run build:watch

# Run CLI directly with ts-node
npm run dev

# Lint code
npm run lint

# Format code
npm run format

# Run tests
npm run test

# Run tests in watch mode
npm run test:watch

# Generate coverage report
npm run test:coverage

# Clean build artifacts
npm run clean

依赖项

对等依赖关系:

  • @anthropic-ai/sdk >= 0.26.0

生产依赖性:

  • chalk -终端造型
  • cli-table3 -表格格式
  • commander -CLI框架
  • conf -配置管理
  • figlet -ASCII艺术标题
  • inquirer -交互式提示
  • js-yaml -YAML解析
  • ora -加载旋转器
  • zod -运行时验证

贡献

欢迎投稿!请遵循以下指南:

  1. 克隆该仓库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 通过适当的测试进行更改
  4. npm run lintnpm run test 验证
  5. 提交您的更改(git commit -m 'Add amazing feature')
  6. 推到分支(git push origin feature/amazing-feature)
  7. 打开拉取请求

添加新适配器

要添加对新技能源的支持,请执行以下操作:

  1. 创建新的适配器扩展 BaseAdapter
  2. 实施 SkillAdapter 接口
  3. 在CLI中注册适配器
  4. 为新适配器添加测试
// src/adapters/my-adapter.ts
import { BaseAdapter } from './base-adapter.js';

export class MyAdapter extends BaseAdapter implements SkillAdapter {
  readonly type = 'my-source' as const;
  readonly name = 'My Adapter';
  readonly source = 'omc' as const;

  async discover(): Promise {
    // Discovery logic
  }

  async install(skillId: string, options?: InstallOptions): Promise {
    // Installation logic
  }

  async uninstall(skillId: string): Promise {
    // Uninstallation logic
  }

  async isAvailable(skillId: string): Promise {
    // Availability check
  }
}

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

链接

  • 仓库: https://github.com/example/dynamic-skills
  • 问题: https://github.com/example/dynamic-skills/issues
  • MCP规范: https://github.com/modelcontextprotocol
  • Vercel技能: https://vercel.com/docs/skills

目录标签

目录标签

命令行工具技能管理TypeScriptClaudeCLI工具本地部署AI辅助开发统一接口跨生态系统

支持客户端

Claude

接入字段

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

stdio

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

session

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

dsm

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiosession部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP