使用说明
项目简介
'click-mcp' 是一个Python库,旨在帮助开发者将现有的Click命令行工具快速转换为MCP服务器,以便AI智能体能够通过MCP协议调用和使用这些工具。通过简单的装饰器,开发者可以轻松地将Click命令暴露为标准化的MCP工具,实现AI智能体与命令行应用的无缝集成。
主要功能点
- Click命令转MCP工具: 使用 '@click_mcp' 装饰器,即可将Click定义的命令行工具快速转换为MCP协议兼容的工具。
- 自动化工具发现: 自动扫描和注册Click应用中的所有命令(包括子命令组),无需手动配置工具列表。
- 参数类型映射: 自动将Click命令的参数类型(如字符串、整数、布尔值等)映射到MCP工具的输入Schema,方便AI智能体理解和调用。
- 错误处理: 当命令执行出错时,能够将错误信息以MCP标准格式返回给客户端,便于AI智能体进行错误处理。
- Stdio传输: 默认使用标准输入输出 (Stdio) 作为MCP服务器的传输协议,易于集成和部署。
- 自定义配置: 支持自定义MCP服务器的名称和启动命令,以适应不同的应用场景和集成需求。
安装步骤
使用pip即可轻松安装 'click-mcp' 库:
pip install click-mcp
服务器配置
要让MCP客户端连接到 'click-mcp' 服务器,您需要提供以下配置信息。这些信息通常配置在MCP客户端的应用设置中,用于指定如何启动和连接MCP服务器。
{ "serverName": "my-cli-app", // MCP 服务器名称,默认为 click-mcp,可以在 @click_mcp 装饰器中通过 server_name 参数自定义,例如 @click_mcp(server_name="my-custom-tool") "command": "python", // 启动 MCP 服务器的命令,通常为 python 或 python3 "args": ["my_app.py", "mcp"] // 启动命令的参数,第一个参数是你的 Click 应用脚本路径,第二个参数是启动 MCP 服务器的子命令,默认为 mcp,可以在 @click_mcp 装饰器中通过 command_name 参数自定义,例如 @click_mcp(command_name="start-mcp"),则 args 应为 ["my_app.py", "start-mcp"] }
请注意:
- '"serverName"' 是MCP服务器的唯一标识符,客户端可以通过此名称识别服务器。
- '"command"' 指定了运行您的Click应用的Python解释器。
- '"args"' 是一个字符串数组,包含了运行Click应用所需的命令行参数。您需要将 '"my_app.py"' 替换为您的Click应用脚本的实际文件名。 '"mcp"' 是默认的启动MCP服务器的子命令,这个命令是由 '@click_mcp' 装饰器自动添加的。
基本使用方法
-
引入装饰器: 在您的Click应用中,从 'click_mcp' 库导入 'click_mcp' 装饰器。
from click_mcp import click_mcp -
装饰根Group: 在您的根 'click.group()' 函数上使用 '@click_mcp' 装饰器。您可以自定义 'server_name' 和 'command_name' 参数。
import click from click_mcp import click_mcp @click_mcp(server_name="my-cli-app") @click.group() def cli(): """My CLI application.""" pass @cli.command() @click.option('--name', required=True, help='Your name') def greet(name): """Greets you.""" click.echo(f"Hello, {name}!") if __name__ == '__main__': cli() -
启动MCP服务器: 在命令行中,使用 'mcp' 子命令(或您自定义的 'command_name')启动您的Click应用,即可同时启动MCP服务器。
python my_app.py mcp这将启动一个基于Stdio的MCP服务器,监听标准输入输出,等待MCP客户端的连接和请求。
-
AI智能体调用: 配置您的MCP客户端,使其连接到运行中的 'click-mcp' 服务器。客户端可以通过 'list_tools' 请求获取所有可用的工具列表,并使用 'call_tool' 请求调用特定的Click命令。例如,调用 'greet' 命令的MCP请求可能如下所示:
{ "type": "invoke", "tool": "greet", "parameters": { "name": "AI Agent" } }
通过以上步骤,您就可以将现有的Click命令行工具快速集成到MCP生态系统中,为AI智能体提供强大的工具支持。
信息
分类
开发者工具