Skip to main content
Glama

TokenScope

TokenScope 是用于大型语言模型的令牌感知目录浏览器。

专为大型语言模型 (LLM) 设计的用于标记感知目录探索和分析的模型上下文协议 (MCP)服务器。

概述

TokenScope 提供智能目录结构分析和基于 token 的文件内容探索功能。它通过以下方式帮助像 Claude 这样的法学硕士 (LLM) 理解代码库和目录结构:

  1. 使用标记高效摘要扫描目录结构

  2. 使用令牌感知提取和分析文件内容

  3. 查找对代码库理解重要的文件

  4. 生成包含相关信息的报告

Related MCP server: Compiler Explorer MCP

特征

  • 令牌感知目录扫描

    • 以可配置的深度递归探索目录

    • 为大型目录提供智能摘要

    • 尊重 .gitignore 文件和自定义忽略模式

  • 文件内容分析

    • 智能提取符合令牌限制的文件内容

    • JSON 和其他结构化文件的特殊处理

    • 根据重要性确定文件选择优先级

  • 代币使用情况统计

    • 估计处理目录所需的令牌

    • 按文件扩展名细分令牌使用情况

    • 识别包含大量标记的文件

  • 综合报告

    • 生成具有目录结构的 Markdown 报告

    • 包括代币使用情况统计

    • 显示重要文件的示例

  • 安全功能

    • 路径验证将操作限制在指定的基目录中

    • 防止访问允许的基本路径之外的文件

安装

先决条件

  • Python 3.10 或更高版本

  • uv (推荐用于轻松的依赖管理)

1.主要安装(PyPI)

对于只想使用 TokenScope 的大多数用户来说,这是推荐的方法:

# Install from PyPI using uv (recommended)
uv pip install tokenscope

运行 TokenScope

出于安全原因, --base-path参数是必需的。它将所有文件操作限制在指定的目录中。

# Run using the installed package
uv run --with tokenscope tokenscope --base-path /path/to/allowed/directory

在 Claude Desktop 中配置

  1. 找到 Claude Desktop 的配置文件(通常在~/.config/claude/config.json中)

  2. 将 TokenScope 添加到mcpServers部分:

    "mcpServers": {
      "TokenScope": {
        "command": "uv",
        "args": [
          "run",
          "--with",
          "tokenscope",
          "tokenscope",
          "--base-path",
          "/your/secure/base/path"
        ]
      }
    }
  3. /your/secure/base/path替换为您想要限制操作的目录

  4. 保存配置文件并重新启动Claude Desktop

2.开发安装(来自GitHub)

对于想要修改代码的贡献者或用户:

# Clone the repository
git clone https://github.com/cdgaete/token-scope-mcp.git
cd token-scope-mcp

# Install development dependencies with uv
uv pip install -e ".[dev]"

以开发模式运行

# Run the server directly with uv
uv run --with fastmcp --with tiktoken src/server.py --base-path /path/to/allowed/directory

在 Claude Desktop 中配置开发版本

  1. 找到 Claude Desktop 的配置文件

  2. 将 TokenScope 添加到具有开发路径的mcpServers部分:

    "mcpServers": {
      "TokenScope (Dev)": {
        "command": "uv",
        "args": [
          "run",
          "--with",
          "fastmcp",
          "--with",
          "tiktoken",
          "/path/to/your/token-scope-mcp/src/server.py",
          "--base-path",
          "/your/secure/base/path"
        ]
      }
    }
  3. /path/to/your/token-scope-mcp/src/server.py替换为 server.py 文件的实际路径

  4. /your/secure/base/path替换为您的安全目录

安全功能

出于安全原因, --base-path参数是必需的:

  • 所有文件操作都经过验证,以确保它们位于指定的目录中

  • 访问或修改基本路径之外的文件的尝试将被拒绝

  • 启动服务器时设置一次基本路径,如果不重新启动则无法更改

示例提示

以下是一些如何将 TokenScope 与 Claude 结合使用的示例:

Please scan my project directory at /path/to/project and tell me about its structure, focusing on the most important files.
Analyze the token usage in my project directory at /path/to/project and tell me how many tokens would be needed to process the entire codebase with an LLM.
Generate a comprehensive directory report about my project at /path/to/project, including structure, token statistics, and samples of the most important files.

可用工具

该服务器提供以下 MCP 工具:

scan_directory_structure

扫描目录并以高效的方式返回其结构。

scan_directory_structure(
    path: str, 
    depth: int = 3,
    max_tokens: int = 10000,
    ignore_patterns: list[str] | None = None,
    include_gitignore: bool = True,
    include_default_ignores: bool = True
)

extract_file_content

提取特定文件的内容,尊重令牌限制和格式。

extract_file_content(
    file_path: str, 
    max_tokens: int = 10000,
    sample_only: bool = False
)

search_files_by_pattern

在目录结构中搜索与指定模式匹配的文件。

search_files_by_pattern(
    directory: str,
    patterns: list[str],
    max_depth: int = 5,
    include_content: bool = False,
    max_files: int = 100,
    max_tokens_per_file: int = 1000,
    sample_only: bool = False,
    ignore_patterns: list[str] | None = None,
    include_gitignore: bool = True,
    include_default_ignores: bool = True
)

analyze_token_usage

分析目录或文件的令牌使用情况以估计 LLM 处理要求。

analyze_token_usage(
    path: str,
    include_file_details: bool = False,
    ignore_patterns: list[str] | None = None,
    include_gitignore: bool = True,
    include_default_ignores: bool = True
)

generate_directory_report

生成有关目录的包含令牌统计信息的综合 markdown 报告。

generate_directory_report(
    directory: str, 
    depth: int = 3,
    include_file_content: bool = True,
    max_files_with_content: int = 5,
    max_tokens_per_file: int = 1000,
    sample_only: bool = False,
    ignore_patterns: list[str] | None = None,
    include_gitignore: bool = True,
    include_default_ignores: bool = True
)

copy_file_to_destination

将文件从源路径复制到目标路径。

copy_file_to_destination(
    source_path: str,
    destination_path: str
)

默认忽略模式

TokenScope 自动忽略常见目录和文件:

DEFAULT_IGNORE_PATTERNS = [
    ".git/",
    ".venv/",
    "venv/",
    "__pycache__/",
    "node_modules/",
    ".pytest_cache/",
    ".ipynb_checkpoints/",
    ".DS_Store",
    "*.pyc",
    "*.pyo",
    "*.pyd",
    "*.so",
    "*.dll",
    "*.class",
    "build/",
    "dist/",
    "*.egg-info/",
    ".tox/",
    ".coverage",
    ".idea/",
    ".vscode/",
    ".mypy_cache/",
]

执照

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。

致谢

  • 使用FastMCP构建

  • 使用tiktoken进行精确的代币计数

  • 这一概念最初在repoai中实现

  • 受到使用 LLM 高效分析代码库的需求的启发

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cdgaete/token-scope-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server