跳到主要内容
知仓学习社ZHICANG

mcp-capability-declarator

Generate MCP capability declarations from tool and resource inventory with proper versioning and feature flags.

不碰外部(只输出文字)无严重或高危命中a5c-ai/babysitter

它会碰到什么

扫了多少2 个文本文件,6 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

MCP Capability Declarator

Generate MCP capability declarations from tool/resource inventory.

Capabilities

  • Generate capability declarations from inventory
  • Create initialization options
  • Set up feature flags
  • Implement capability negotiation
  • Document server capabilities
  • Generate capability tests

Usage

Invoke this skill when you need to:

  • Declare MCP server capabilities
  • Generate initialization options
  • Document supported features
  • Implement capability negotiation

Inputs

| Parameter | Type | Required | Description |

|-----------|------|----------|-------------|

| serverName | string | Yes | Server name |

| version | string | Yes | Server version |

| tools | array | No | Tool capabilities |

| resources | array | No | Resource capabilities |

| prompts | array | No | Prompt capabilities |

Generated Patterns

TypeScript Capability Declaration

import { ServerCapabilities, InitializationOptions } from '@modelcontextprotocol/sdk/types.js';

// Server metadata
export const SERVER_INFO = {
  name: 'my-mcp-server',
  version: '1.0.0',
} as const;

// Capability declarations
export const CAPABILITIES: ServerCapabilities = {
  tools: {
    // Tool capabilities
    listChanged: true,
  },
  resources: {
    // Resource capabilities
    subscribe: true,
    listChanged: true,
  },
  prompts: {
    // Prompt capabilities
    listChanged: true,
  },
  logging: {},
};

// Tool definitions
export const TOOL_DEFINITIONS = [
  {
    name: 'search_files',
    description: 'Search for files matching a pattern',
    inputSchema: {
      type: 'object',
      properties: {
        pattern: { type: 'string', description: 'Glob pattern' },
        path: { type: 'string', description: 'Base path' },
      },
      required: ['pattern'],
    },
  },
  {
    name: 'read_file',
    description: 'Read contents of a file',
    inputSchema: {
      type: 'object',
      properties: {
        path: { type: 'string', description: 'File path' },
      },
      required: ['path'],
    },
  },
] as const;

// Resource templates
export const RESOURCE_TEMPLATES = [
  {
    uriTemplate: 'file:///{path}',
    name: 'File',
    description: 'Access file contents',
    mimeType: 'text/plain',
  },
] as const;

// Create initialization options
export function createInitializationOptions(): InitializationOptions {
  return {
    serverInfo: SERVER_INFO,
    capabilities: CAPABILITIES,
  };
}

// Capability documentation
export const CAPABILITY_DOCS = `
# ${SERVER_INFO.name} v${SERVER_INFO.version}

## Supported Capabilities

### Tools
${TOOL_DEFINITIONS.map(t => `- **${t.name}**: ${t.description}`).join('\n')}

### Resources
- File access via \`file:///\` URI scheme
- Resource subscription support
- List change notifications

### Prompts
- Dynamic prompt templates
- List change notifications

## Feature Flags
- Tool list change notifications: enabled
- Resource subscriptions: enabled
`;

Python Capability Declaration

from dataclasses import dataclass
from typing import List, Dict, Any

@dataclass
class ServerInfo:
    name: str = "my-mcp-server"
    version: str = "1.0.0"

@dataclass
class ToolDefinition:
    name: str
    description: str
    input_schema: Dict[str, Any]

TOOL_DEFINITIONS: List[ToolDefinition] = [
    ToolDefinition(
        name="search_files",
        description="Search for files matching a pattern",
        input_schema={
            "type": "object",
            "properties": {
                "pattern": {"type": "string"},
                "path": {"type": "string"},
            },
            "required": ["pattern"],
        },
    ),
]

CAPABILITIES = {
    "tools": {"listChanged": True},
    "resources": {"subscribe": True, "listChanged": True},
    "prompts": {"listChanged": True},
    "logging": {},
}

def create_initialization_options() -> dict:
    return {
        "serverInfo": {
            "name": ServerInfo.name,
            "version": ServerInfo.version,
        },
        "capabilities": CAPABILITIES,
    }

Workflow

  1. Inventory tools - List all tools
  2. Inventory resources - List all resources
  3. Define capabilities - Feature flags
  4. Generate declarations - Capability objects
  5. Create init options - Initialization
  6. Document capabilities - API docs

Target Processes

  • mcp-server-bootstrap
  • mcp-tool-implementation
  • mcp-tool-documentation

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

它属于哪个仓库

星标★ 1,796
本站分层T1
该仓技能数2115
原文件路径library/specializations/cli-mcp-development/skills/mcp-capability-declarator/SKILL.md

同一个仓库里的其他技能

看这个仓库的全部 2115 个技能