The search and structure tools are the useful core — they let an agent locate a symbol and read a file's shape without loading the tree into context. update_with_architecture is different in kind: it calls a model and edits a file on disk, so it wants a key and a moment's thought before you point it anywhere.
A code-analysis server in three groups: file access, regex search across the tree, and structural analysis of a single file.
- read_file returns a file's contents; list_files lists a directory with glob matching and optional recursion; file_info reports size, type and line count
- search_code runs a regex over the tree, filtered by file pattern and optionally case-insensitive
- find_definition locates where a function, class or variable is declared, with a language hint for Python or JavaScript
- analyze_structure reports a file's imports, classes and functions, optionally including docstrings
- update_with_architecture compares an old and a new version of a module and rewrites the new one to match, taking a backup first
- Parsing covers Python, JavaScript and TypeScript, Java, C and C++, Go, Rust and Ruby among others
- File access is restricted against directory traversal and search results are capped, so one bad query cannot flood the context
Python with the project's dependencies installed, run as a local process. The rewrite tool calls out to a model and needs a key for either OpenAI or Anthropic, chosen by configuration; everything else runs offline.
