
TokenScope
STDIOToken-aware directory explorer for LLMs to efficiently analyze and understand codebases.
Token-aware directory explorer for LLMs to efficiently analyze and understand codebases.
Token-Aware Directory Explorer for Large Language Models (LLMs).
A Model Context Protocol (MCP) server that helps LLMs efficiently explore and understand codebases and directory structures.
TokenScope provides intelligent directory structure analysis and token-aware file content exploration designed for LLMs like Claude. It helps LLMs understand codebases by:
TokenScope provides just three core tools:
explore_directory
- Scan and understand directory structuresview_content
- Access file contents with token awarenessgenerate_report
- Create comprehensive reports (with option to save to file)This is the recommended method for most users who just want to use TokenScope:
# Install from PyPI using uv (recommended) uv pip install tokenscope
The --base-path
argument is mandatory for security reasons. It restricts all file operations to the specified directory.
# Run using the installed package uv run --with tokenscope tokenscope --base-path /path/to/allowed/directory
Locate Claude Desktop's configuration file (typically ~/.config/claude/config.json
)
Add TokenScope to the mcpServers
section:
"mcpServers": { "TokenScope": { "command": "uv", "args": [ "run", "--with", "tokenscope", "tokenscope", "--base-path", "/your/secure/base/path" ] } }
Replace /your/secure/base/path
with the directory you want to restrict operations to
Save the configuration file and restart Claude Desktop
The --base-path
argument is required for security (it restricts file operations to the specified directory):
tokenscope --base-path /path/to/allowed/directory
TokenScope includes a test mode for trying out tools directly:
# Test directory exploration tokenscope --base-path /path/to/allowed/directory --test "explore:/path/to/directory" # Test with custom ignore patterns tokenscope --base-path /path/to/allowed/directory --test "explore:/path/to/directory?ignore=cache,*.log,tmp/&gitignore=false" # Test file viewing tokenscope --base-path /path/to/allowed/directory --test "view:/path/to/file" # Test report generation tokenscope --base-path /path/to/allowed/directory --test "report:/path/to/directory" # Test report generation with file output and custom ignore patterns tokenscope --base-path /path/to/allowed/directory --test "report:/path/to/directory?ignore=*.bak,temp/ > /path/to/output.md"
Here are some examples of how to use TokenScope with Claude:
Could you explore my project directory at /path/to/project and tell me about its structure?
Can you show me the content of the file at /path/to/file.py?
Please generate a comprehensive report about my project at /path/to/project and save it to /path/to/report.md
TokenScope now provides two levels of directory information:
This dual approach ensures that even for massive directories (with thousands or millions of files), you'll get accurate information about the total number of files, directories, and disk usage. This is especially valuable when working with large codebases where a complete directory listing would exceed token limits.
QUICK SCAN STATISTICS (files visible in tree): Files shown in tree: 47 Directories shown in tree: 16 Size shown in tree: 185.9 MB FULL DIRECTORY STATISTICS (all files): Total files: 16,059 Total directories: 8 Total disk size: 2.1 GB
TokenScope automatically filters out common directories and files that typically don't contribute to understanding a codebase:
.git/
, .venv/
, venv/
, __pycache__/
, node_modules/
, build/
, dist/
, etc.ignore_patterns
parameterThis functionality helps prevent token waste on irrelevant files and directories like:
node_modules
, virtual environments)# Ignore specific patterns tokenscope --base-path /path --test "explore:/code?ignore=*.log,temp/" # Disable .gitignore processing tokenscope --base-path /path --test "explore:/code?gitignore=false" # Both together tokenscope --base-path /path --test "explore:/code?ignore=*.tmp&gitignore=false"
TokenScope includes important security features:
This project is licensed under the MIT License - see the LICENSE file for details.