PlateerLab/Toolint
Structural linter for MCP-compatible, zero-dependency Python agent tool packages
Platform-specific configuration:
{
"mcpServers": {
"Toolint": {
"command": "npx",
"args": [
"-y",
"Toolint"
]
}
}
}Add the config above to .claude/settings.json under the mcpServers key.
[](https://github.com/PlateerLab/Toolint/actions/workflows/ci.yml) [](https://pypi.org/project/toolint/) [](https://pypi.org/project/toolint/) [](https://opensource.org/licenses/MIT)
Structural linter for Python agent tool packages.
Ensures your package works as a library, CLI, and MCP server simultaneously — with zero-dependency core and proper facade separation.
AI agent tools need to work in multiple contexts at once:
# As a library
from my_tool import MyTool
tool = MyTool()
tool.search("query")# As a CLI
my-tool search "query"
# As an MCP server
my-tool serve --source spec.jsonGetting this right requires strict architectural discipline. Without it:
core/ imports numpy → users get ImportError just from import my_tool__version__ doesn't match pyproject.toml → PyPI shows wrong versionToolint catches all of these statically, before they reach users.
pip install toolint
# or run without installing
uvx toolint check .# Lint a project
toolint check .
# Select specific rules
toolint check . --select ATL101,ATL201
# Ignore rules
toolint check . --ignore ATL105,ATL501
# JSON output for CI
toolint check . --format json
# List all rules
toolint rulesRunning toolint against graph-tool-call (graph-based tool retrieval engine for LLM agents):
graph_tool_call/core/graph.py:9:4 ALoading reviews...