工具
模型上下文协议(MCP)服务器、Typer CLI和Visual Studio代码任务合二为一,提供了一种在项目中配置自己的DevTools的简单方法。
安装
要开始使用Toolit,请通过pip安装该软件包:
pip install toolit如果你想要mcp服务器支持,你可以安装可选的依赖关系:
pip install toolit[mcp]注意:python 3.9不支持MCP,因为它不受支持 mcp 包裹。
用法
添加一个名为的文件夹 devtools 到你的项目根。在这个文件夹中创建python模块,你决定它的名称。将工具装饰器添加到要作为命令公开的函数中。
# devtools/my_commands.py
from toolit import tool
@tool
def my_command(to_print: str = "Hello, World!") -> None:
"""This is a command that can be run from the CLI."""
print(to_print)Toolit将自动发现这些模块,并将其作为命令提供。
现在,您可以从命令行运行命令:
toolit --help # To see available commands
toolit my-command --to_print "Hello, Toolit!" # To run your command您可以将带有参数的命令行命令添加为devtool,它将作为命令在CLI和生成的 tasks.json Visual Studio代码的文件。您可以通过以下方式完成此操作:
# devtools/my_cli_commands.py
from toolit import clitool
@clitool
def execute_cli_command(to_print: str = "Hello, World!") -> str:
"""This is a command that can be run from the CLI."""
return "python -c 'print(\"" + to_print + "\")'"当此命令从CLI或生成的VS Code任务运行时,Toolit会在shell中执行返回的字符串。
自定义DevTools文件夹
默认情况下,Toolit会查找名为的文件夹 devtools 在项目根中。您可以通过创建 toolit.ini 或使用您的 pyproject.toml 包含以下内容的项目根目录中的文件:
[toolit]
tools_folder = "tools"创建VS代码tasks.json文件
您可以自动创建 tasks.json Visual Studio代码的文件,以便直接从编辑器运行ToolIt命令。这对于将开发工具集成到工作流程中非常有用。
要创建 .vscode/tasks.json file,在终端中运行以下命令:
toolit create-vscode-tasks-json注意:这将覆盖您现有的 .vscode/tasks.json 文件(如果存在)!
列出VS Code任务中的参数输入
VS Code任务输入不支持本机列表选择器。对于键入为的工具参数 list[str], list[int],或 list[Enum],Toolit生成 promptString 输入并需要逗号分隔的值。
示例:
list[str]:alice, bob, charlielist[int]:1, 2, 3list[MyEnum]:接受枚举名称和枚举值,例如OPTION_A, Option b
链接命令
您可以使用 @sequential_group_of_tools 和 @parallel_group_of_tools 装饰器创建更复杂的工作流程。用这些装饰器装饰的函数应该总是返回一个可调用函数的列表。
from toolit import tool, sequential_group_of_tools, parallel_group_of_tools
from typing import Callable
@tool
def first_command() -> None:
print("First command executed.")
@tool
def second_command() -> None:
print("Second command executed.")
@sequential_group_of_tools
def my_sequential_commands() -> list[Callable]:
return [first_command, second_command]
@parallel_group_of_tools
def my_parallel_commands() -> list[Callable]:
return [first_command, second_command]这将在 tasks.json 可以顺序或并行执行的文件。
创建插件
Toolit支持一个插件系统,允许您创建和共享自己的工具作为单独的包。这使得跨不同项目重用工具变得容易,而不需要跨多个代码库复制和更新工具。
要创建插件,请执行以下步骤:
- 为你的插件创建一个新的Python包。你可以使用以下工具
setuptools,poetry或uv设置您的包结构。 - 在包中,创建一个或多个模块,在其中使用
@tool装饰师。 - 您可以包含自己的用户配置,并使用
get_config_value功能从toolit.config模块。 - 确保包括
toolit作为包中的依赖项setup.py或pyproject.toml. - 通过在Toolit中添加入口点来注册您的插件
setup.py或pyproject.toml,因此Toolit可以在安装软件包时发现您的工具。入口点被称为toolit_plugins. - 将您的包发布到PyPI,或从需要的git存储库安装。
请在此处查看示例插件: toolit azure devops基于主干的分支
贡献
我们欢迎对Toolit的贡献!如果您对新功能、改进或错误修复有想法,请在我们的GitHub存储库上打开问题或提交拉取请求。我们感谢您的反馈和支持,让Toolit为社区变得更好。
