Project file map generator for AI-assisted development. Exposes AITree's core functionality as MCP tools so AI assistants (Claude, Cursor, etc.) can call them directly without a shell.
AITree exposes 4 well-named, read-only tools with clear descriptions and complete input schemas. Tool names follow verb_noun convention (aitree_get_tree, aitree_read_file, aitree_get_stats, aitree_get_changed). Descriptions are detailed (150 - 250 chars) and explain WHAT, WHEN, and prerequisites. All parameters have type annotations and descriptions. However, output schemas are not formally documented, responses are returned as strings (JSON-serialized or plain text) without explicit schema declarations. Error handling is present but minimal; some errors return JSON objects while others return plain strings, creating inconsistency. Security is strong (path traversal checks, no secrets in params). Composition is clean, each tool has one responsibility. Missing: pagination guidance, structured output schema documentation, and actionable error recovery hints.
List git-changed and untracked files in a repository. Returns a JSON array of relative file paths that are staged, unstaged, or untracked. Requires gitpython ('pip install paracci-aitree[git]').
Return file/directory statistics as JSON. Includes total file count, directory count, total size, and a breakdown of file types (extension → count + size), sorted by frequency. Useful for understanding the shape of a codebase at a glance.
Generate an annotated file-tree map for a local directory or a GitHub repository. Accepts either: - A local path (absolute or relative) - A GitHub URL (https://github.com/owner/repo or .../tree/branch/sub/path) Returns a text/json/markdown snapshot of the project structure, suitable for pasting into an AI chat or feeding into another tool. Respects .gitignore and .aitreeignore by default for local paths. For private GitHub repos, supply a personal access token via the `token` parameter or the GITHUB_TOKEN environment variable.
Reads the content of a file in the project directory. Typical usage: 1. Get project tree with aitree_get_tree 2. Read interested files using aitree_read_file This allows reading only the necessary files instead of sending the entire codebase. Security: path traversal access outside the root path is blocked.
Output schemas not formally documented. Tools return JSON strings or plain text without explicit schema declarations. LLMs cannot reliably parse or plan downstream calls without knowing the structure of returned fields.
Error handling inconsistent and non-actionable. Some errors return JSON objects, others plain strings. No recovery guidance, e.g., 'Path not found' does not suggest checking the path or listing available directories.
No pagination or result-limiting guidance. aitree_get_tree and aitree_get_stats can return unbounded results for large codebases, risking context window exhaustion. No limit parameter or documentation of expected result size.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
aitree_read_file returns JSON with 'content' field but no explicit schema. LLMs must infer that 'content' contains the file text; no documentation of max file size, encoding handling, or truncation behavior.
aitree_get_changed requires optional gitpython dependency but does not validate its presence at tool invocation time. Calling the tool without the dependency installed will fail with an unclear error.