Token导航 LogoToken导航TokenDH.com
MCP This logo
安全风控stdio官方级别未说明来源级核验

MCP This

MCP Server

Create an MCP server for any command

工具数

6

提示词数

0

GitHub Stars

18

资源数

0
安全命令行工具PythonClaude开发工具Claude DesktopClaude

安装说明

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

作者 / 组织

shane-kercheval

提供方

shane-kercheval

最后核验

2026/5/18 04:07

运行时

Python

快速接入

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

命令预览

uvx mcp-this --config-path ./my-tools.yaml

详细介绍

mcp-this

一个MCP服务器,通过YAML配置文件动态公开CLI/bash命令作为工具和提示模板。

mcp-this 允许您将任何命令行工具转换为MCP工具,并创建任何MCP客户端(例如Claude Desktop)都可以使用的结构化提示模板。您只需在YAML文件中定义命令、提示及其参数,而不是编写代码,MCP服务器就可以将它们提供给像Claude Desktop这样的MCP客户端。

核心价值观: 将CLI命令转换为MCP工具,并使用简单的YAML配置创建可重用的提示模板。

______________________________________________________________________

运作原理

定义 工具 (CLI命令)和 鼓励 YAML中的(AI模板):

tools:
  get-current-time:
    description: |
      Display the current date and time in various formats.
      
      Examples:
      - get_current_time(format="iso") → 2025-05-18T17:17:39Z
      - get_current_time(format="readable") → Friday, May 18, 2025 5:17 PM
    execution:
      command: >-
        if [ ">" = "iso" ]; then 
          date -u +"%Y-%m-%dT%H:%M:%SZ"; 
        elif [ ">" = "readable" ]; then 
          date "+%A, %B %d, %Y %I:%M %p"; 
        else 
          echo "ISO: $(date -u +"%Y-%m-%dT%H:%M:%SZ")"; 
          echo "Readable: $(date "+%A, %B %d, %Y %I:%M %p")"; 
        fi
    parameters:
      format:
        description: "Time format: iso, readable, or empty for both"
        required: false

  system-info:
    description: Get basic system information
    execution:
      command: uname -a && echo "CPU: $(nproc) cores"
    parameters: {}

prompts:
  code-reviewer:
    description: Perform a thorough code review with best practices focus
    template: |
      Please review the following code with a focus on:
      - Code quality and best practices
      - Security vulnerabilities
      - Performance considerations
      {{#if focus_area}}- Special attention to: {{focus_area}}{{/if}}
      
      Code to review:
      {{code}}
      
      {{#if context}}Additional context: {{context}}{{/if}}
    arguments:
      code:
        description: Code to review
        required: true
      focus_area:
        description: Specific area to focus on (e.g., security, performance)
        required: false
      context:
        description: Additional context about the code
        required: false

在Claude Desktop中使用:

{
  "mcpServers": {
    "mcp-this-custom": {
      "command": "uvx",
      "args": ["mcp-this", "--config-path", "/path/to/your-tools.yaml"]
    }
  }
}

就是这样!克劳德现在可以:

  • 执行自定义CLI工具 (获取当前时间、系统信息)
  • 使用结构化提示模板 (带引导参数的代码审阅者)

______________________________________________________________________

快速开始

1.安装uvx

# Install uv (includes uvx)
curl -LsSf https://astral.sh/uv/install.sh | sh

2.创建你的第一个工具

创建 my-tools.yaml:

tools:
  web-scraper:
    description: Fetch a webpage and convert it to clean, readable text
    execution:
      command: curl -s '>' | lynx -dump -stdin
    parameters:
      url:
        description: URL of the webpage to fetch
        required: true

  find-large-files:
    description: Find files larger than specified size in a directory
    execution:
      command: find '>' -type f -size +> -exec ls -lh {} \;
    parameters:
      directory:
        description: Directory to search
        required: true
      size:
        description: Minimum file size (e.g., 100M, 1G)
        required: true

2.1.添加AI提示模板(可选)

增强您的 my-tools.yaml 使用结构化提示模板:

tools:
  # ... your tools above ...

prompts:
  summarize-webpage:
    description: Generate a structured summary of webpage content
    template: |
      Please analyze the following webpage content and provide:
      
      1. **Main Topic**: What is this page about?
      2. **Key Points**: {{num_points}} most important points
      3. **Target Audience**: Who is this content for?
      {{#if focus}}4. **{{focus}} Analysis**: Specific insights about {{focus}}{{/if}}
      
      Content:
      {{content}}
    arguments:
      content:
        description: Webpage content to summarize
        required: true
      num_points:
        description: Number of key points to extract (default 5)
        required: false
      focus:
        description: Specific aspect to focus on (e.g., technical, business, educational)
        required: false

  file-analysis:
    description: Analyze files for specific purposes
    template: |
      Analyze the following files for {{analysis_type}}:
      
      {{#if criteria}}Focus on: {{criteria}}{{/if}}
      
      {{files}}
      
      Please provide:
      - Summary of findings
      - Recommendations
      - {{#if format}}Output in {{format}} format{{/if}}
    arguments:
      files:
        description: File contents or paths to analyze
        required: true
      analysis_type:
        description: Type of analysis (security, performance, quality, etc.)
        required: true
      criteria:
        description: Specific criteria or standards to check against
        required: false
      format:
        description: Output format (markdown, JSON, report, etc.)
        required: false

在Claude Desktop中使用提示:

  1. 点击 + 消息输入中的图标
  2. 选择“从mcp添加此自定义项”
  3. 选择您的提示(例如,“摘要网页”)
  4. 填写参数-Claude将指导您完成必填和可选字段

3.配置克劳德桌面

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "my-tools": {
      "command": "uvx",
      "args": ["mcp-this", "--config-path", "/path/to/my-tools.yaml"]
    }
  }
}

4.重新启动克劳德桌面

您的工具和提示现在可用!克劳德可以:

  • 获取web内容并查找大文件 使用自定义CLI工具
  • 使用结构化提示模板 用于指导分析和总结

______________________________________________________________________

配置格式

工具定义

tools:
  tool-name:
    description: "Description with usage examples"
    execution:
      command: "command-template  >"
    parameters:
      parameter1:
        description: "Parameter description"
        required: true
      optional_param:
        description: "Optional parameter description"  
        required: false

要点:

  • 使用 `` 命令中的占位符
  • 标记的参数 required: false 如果没有提供,则从命令中删除
  • 使用 command: >- 对于多行命令(不是 command: |)

快速定义

prompts:
  prompt-name:
    description: "Prompt description"
    template: |
      Template with {{argument}} placeholders.
      {{#if optional_arg}}Conditional: {{optional_arg}}{{/if}}
    arguments:
      argument:
        description: "Argument description"
        required: true
      optional_arg:
        description: "Optional argument"
        required: false

提示与工具:

  • 工具 执行命令并使用 `` 语法
  • 提示 生成文本模板并使用 {{argument}} 使用Handlebars的语法

______________________________________________________________________

配置方法

方法用法示例
YAML文件`--config-path
`--config-path ./my-tools.yaml
JSON字符串--config-value --config-value '{"tools":{...}}'
环境变量MCP_THIS_CONFIG_PATHexport MCP_THIS_CONFIG_PATH=./tools.yaml
内置预设--preset --preset default

预构建工具和提示集合(预设)

为了方便起见, mcp-this 包括现成的工具和提示集合:

  • default -安全的只读工具(文件探索、网络抓取)
  • editing -文件操作工具(创建、编辑、删除)
  • github -GitHub集成工具(PR分析、存储库操作)+专业提示(代码审查、创建PR描述)

快速使用:

{
  "mcpServers": {
    "mcp-this": {
      "command": "uvx", 
      "args": ["mcp-this", "--preset", "default"]
    }
  }
}
README_PRESETS.md 获取完整的预设文档、工具列表、依赖关系和高级设置。

______________________________________________________________________

真实世界的例子

开发工作流工具

tools:
  git-status-summary:
    description: Get a concise overview of git repository status
    execution:
      command: >-
        echo "=== Branch ===" && git branch --show-current &&
        echo "=== Status ===" && git status --porcelain &&
        echo "=== Recent Commits ===" && git log --oneline -5
    parameters: {}

  test-runner:
    description: Run tests with optional pattern matching
    execution:
      command: >-
        if [ -n "" ]; then
          npm test -- --grep ""
        else
          npm test
        fi
    parameters:
      pattern:
        description: Test pattern to match (optional)
        required: false

  docker-container-logs:
    description: Get logs from a Docker container
    execution:
      command: docker logs > --tail 
    parameters:
      container_name:
        description: Name or ID of the Docker container
        required: true
      lines:
        description: Number of log lines to show (default 100)
        required: false
        default: "100"

AI驱动的工作流提示

prompts:
  refactor-code:
    description: Guide code refactoring with specific goals and constraints
    template: |
      Please refactor the following code with these objectives:
      {{#if goals}}
      **Goals:**
      {{goals}}
      {{/if}}
      
      **Constraints:**
      - Maintain existing functionality
      - {{#if language}}Follow {{language}} best practices{{/if}}
      - {{#if performance}}Optimize for {{performance}}{{/if}}
      {{#if additional_constraints}}
      - {{additional_constraints}}
      {{/if}}
      
      **Code to refactor:**

{{code}}

      
      Please provide:
      1. Refactored code with explanations
      2. Summary of changes made
      3. Potential risks or considerations
    arguments:
      code:
        description: Code to refactor
        required: true
      goals:
        description: Specific refactoring goals (e.g., improve readability, reduce complexity)
        required: false
      language:
        description: Programming language for best practices
        required: false
      performance:
        description: Performance optimization target (speed, memory, etc.)
        required: false
      additional_constraints:
        description: Any additional constraints or requirements
        required: false

  technical-documentation:
    description: Generate comprehensive technical documentation
    template: |
      Create {{doc_type}} documentation for:
      
      {{content}}
      
      **Requirements:**
      - Target audience: {{audience}}
      {{#if style}}- Documentation style: {{style}}{{/if}}
      {{#if sections}}- Include sections: {{sections}}{{/if}}
      - {{#if detail_level}}Detail level: {{detail_level}}{{/if}}
      
      {{#if examples}}**Include examples:** {{examples}}{{/if}}
      
      Please structure the documentation with clear headings, examples, and actionable information.
    arguments:
      content:
        description: Code, API, or system to document
        required: true
      doc_type:
        description: Type of documentation (API, user guide, technical spec, etc.)
        required: true
      audience:
        description: Target audience (developers, end-users, administrators, etc.)
        required: true
      style:
        description: Documentation style (formal, conversational, tutorial, reference)
        required: false
      sections:
        description: Specific sections to include
        required: false
      detail_level:
        description: Level of detail (high-level, detailed, comprehensive)
        required: false
      examples:
        description: Types of examples to include
        required: false

系统管理工具

tools:
  port-checker:
    description: Check what process is using a specific port
    execution:
      command: lsof -i :
    parameters:
      port:
        description: Port number to check
        required: true

  service-status:
    description: Check the status of a system service
    execution:
      command: systemctl status >
    parameters:
      service_name:
        description: Name of the service to check
        required: true

  disk-usage-analyzer:
    description: Analyze disk usage and find largest directories
    execution:
      command: >-
        echo "=== Disk Usage Summary ===" &&
        df -h  &&
        echo "=== Largest Directories ===" &&
        du -h  | sort -hr | head -10
    parameters:
      path:
        description: Path to analyze (default current directory)
        required: false
        default: "."

______________________________________________________________________

Python API用法

from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

# Using custom configuration
server_params = StdioServerParameters(
    command='uvx',
    args=['mcp-this', '--config-path', '/path/to/tools.yaml'],
)

async with stdio_client(server_params) as (read, write):
    async with ClientSession(read, write) as session:
        await session.initialize()
        
        # List available tools
        tools = await session.list_tools()
        print([tool.name for tool in tools.tools])
        
        # Use a tool
        result = await session.call_tool(
            'git-status-summary',
            {}
        )
        print(result.content[0].text)

______________________________________________________________________

安装选项

通过uvx(推荐)

# No installation needed - uvx runs tools in isolated environments
uvx mcp-this --config-path ./my-tools.yaml

通过pip

pip install mcp-this
mcp-this --config-path ./my-tools.yaml

来源

git clone https://github.com/your-username/mcp-this.git
cd mcp-this
uv sync
python -m mcp_this --config-path ./my-tools.yaml

______________________________________________________________________

安全考虑

⚠️ 重要提示: mcp-this 根据您的配置执行shell命令。始终:

  • 仅使用受信任的配置文件
  • 验证生产环境中的用户输入
  • 以最低限度的必要权限运行
  • 考虑集装箱化以提高安全性
  • 审查危险操作的命令

请参阅 安全部分 详细的安全指导。

______________________________________________________________________

发展

设置

git clone https://github.com/your-username/mcp-this.git
cd mcp-this
uv sync

测试

make tests         # Run all tests
make unittests     # Unit tests only
make linting       # Linting only
make open_coverage # View coverage report

建筑

make package-build    # Build package
make package-publish  # Publish (requires UV_PUBLISH_TOKEN)

______________________________________________________________________

许可证

Apache许可证2.0

目录标签

目录标签

安全命令行工具PythonClaude开发工具securitymcp-thismcp-servercli-toolsCLI工具本地部署自动化YAML配置提示模板

支持客户端

Claude DesktopClaude

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP