CLI工具目录服务

一个将本地CLI工具发布为MCP工具定义的服务,使LLM能够发现并高效使用这些工具。

  • by abcpro1
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 abcpro1/mcp-cli-catalog

使用说明

mcp-cli目录

在您的计算机上发布CLI工具的MCP服务器。编码代理已经具有shell访问权限,并且擅长使用管道和过滤器生成复杂的命令。这只是告诉他们什么是可用的,这样他们就可以更有效地使用MCP工具。

为什么

  • LLM编码代理可以有效地将shell命令与管道链接起来,以过滤和重塑复杂的数据。
  • 将CLI工具声明为MCP工具使LLM可以发现它们。

运作原理

  • 此服务器将您的CLI工具作为MCP工具定义公开,以便LLM知道可用的内容。
  • 目录中定义的MCP工具仅指示LLM使用外壳;他们自己不执行任何工具。
  • 代理需要Shell访问权限才能实际运行命令。

安装

将服务器添加到MCP配置中(例如用于Claude Code):

{
  "mcpServers": {
    "cli-catalog": {
      "command": "npx",
      "args": ["mcp-cli-catalog"]
    }
  }
}

或者使用自定义目录路径:

{
  "mcpServers": {
    "cli-catalog": {
      "command": "npx",
      "args": ["mcp-cli-catalog", "--config", "./tools.json"]
    }
  }
}

配置工具

添加JSON目录文件(默认值: ~/.mcp-cli-catalog.json)使用您想要发现的CLI工具:

{
  // JSON Comments are allowed.
  "tools": [
    {
      "name": "knowledge-base-search",
      "description": "Search full text across the knowledge base",
      "usage": "knowledge-base-search 'pattern' | head"
    },
    {
      "name": "knowledge-base-get",
      "description": "Get a knowledge base file",
      "usage": "knowledge-base-get path/to/file.md | sed -n '100,200p'\nknowledge-base-get path/to/file.md | rg 'TODO'"
    }
  ]
}
  • name 和 description 是必需的。
  • usage (可选)在响应中显示为提示。
  • command (可选)是要运行的确切字符串。如果你跳过它,工具 name 使用。
  • 指向另一个目录 --config <path> 或 MCP_CLI_CATALOG_FILE=<path>.

测试

使用MCP检查器测试您的服务器设置:

npx @modelcontextprotocol/inspector npx mcp-cli-catalog

或者使用自定义目录:

npx @modelcontextprotocol/inspector npx mcp-cli-catalog --config ./tools.json

发展

  • npm run dev:直接从运行 src/index.js
  • npm run build:编译为 dist/index.js 并修复权限
  • npm start:从以下位置运行构建的服务器 dist/index.js

替代方法

Cloudflare的“代码模式”1 Anthropic的代码执行与MCP帖子2 探索解决MCP工具挑战的不同方法。他们的方法通过SDK向LLM提供MCP工具,LLM编写代码来调用和处理这些工具。这个项目采取了一条更简单的路径:构建CLI工具,并通过MCP工具目录使其可被发现。


  1. Cloudflare,“代码模式”,2025年。
  2. Anthropic,“使用MCP执行代码”,2025年。