MCP命令行转换工具

将Model Context Protocol (MCP)服务器转换为命令行界面应用的工具,支持自动生成CLI命令并集成MCP服务器的提示、资源和工具。

  • by mongodben
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 mongodben/mcp-2-cli

使用说明

MCP-2 命令行接口(或 MCP-2 CLI)

转换一个 模型上下文协议(MCP) 将服务器连接到CLI(命令行界面)应用程序。

如果你想在MCP客户端之外使用MCP服务器的工具、资源和提示,这会非常有用 mcp-2-cli 该库作为MCP(可能是指某种管理或控制协议)客户端,使用CLI(命令行界面)作为接口。

你可能想在(某个环境中)使用MCP服务器的工具 代理技能 或者在程序脚本中。

特点/特性

  • 根据MCP服务器功能自动生成CLI命令
  • 支持MCP(MCP可能代表某种特定的协议、标准或系统,具体含义需根据上下文确定) 提示, 资源,以及 工具
  • 工具参数的JSON Schema验证
  • 优雅的错误处理,支持JSONRPC错误

支持的服务器类型

目前, mcp-2-cli 仅支持stdio MCP服务器。

支持Streamable HTTP服务器的功能即将推出!

配置

您必须首先创建一个符合以下模式的JSON配置文件:

{
    "command": "<root command>", // Required
    "args": ["--additional", "args"] // Optional
    "transport": "stdio" // Required. currently only "stdio" supported
    "cliName": "<name>" // Optional. defaults to "mcp-cli"
}

例如:

{
  "command": "npx",
  "args": ["-y", "@modelcontextprotocol/server-filesystem", "."],
  "transport": "stdio",
  "cliName": "fs-cli"
}

mcp-2-cli 将首先在环境变量中查找此文件 MCP_2_CLI_CONFIG_PATH。 如果未提供环境变量, mcp-2-cli 会寻找一个 名为(的文件) mcp-2-cli.config.json 在当前目录中。

要运行MCP CLI,您可以使用 npx:

MCP_2_CLI_CONFIG_PATH="path/to/config.json" npx mcp-2-cli <args...>

CLI 命令

一 mcp-2-cli CLI(命令行界面)自动获取所有可用提示、资源和工具的命令。

生成的命令行界面(CLI)遵循了CLI的最佳实践,支持嵌套操作,并且 --help 命令。

CLI 命令采用以下模式:

mcp-cli <action> <name> --arg1 val1 --arg2 val2 ... 

例如,要使用 server-filesystem MCP's(可译为“MCP系列”或根据具体语境翻译为更贴切的表述,如“最小成本路径算法”等,但在此处为保持通用性,采用“MCP系列”作为翻译) read_text_file 工具:

server-filesystem tools read_text_file --path path/to/file.ext

如果某个提示、资源或工具动作类别下没有任何可用动作,那么该动作类别将不会被列出。例如,如果您的服务器仅支持工具,而不支持提示和资源,那么将只列出工具动作类别 mcp-cli tools 将是一个有效的命令。

提示

# List all available prompts
mcp-cli prompts -help

# Get a specific prompt 
mcp-cli prompts <prompt-name>
# Get help with specific prompt
mcp-cli prompts <prompt-name> --help

资源

# List all available resources
mcp-cli resources -help

# Get a specific resource
mcp-cli resources <resource-uri>
# Get help with a specific resource
mcp-cli resources <resource-uri> --help

工具

# List all available tools
mcp-cli tools --help

# Call a tool (with optional arguments as JSON)
mcp-cli tools <tool-name> 
# Get help with a specific tool
mcp-cli tools <tool-name> --help

作为库使用

安装

npm install mcp-2-cli

基本示例

import { createMcpCli } from 'mcp-2-cli';

const config = {
  command: 'npx',
  args: ['-y', '@modelcontextprotocol/server-filesystem', '/tmp'],
  transport: 'stdio',
  name: "filesystem-cli"
};

const cli = await createMcpCli(config);
await cli.parseAsync();