sqry-gemini

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

sqry for Gemini CLI

适用于Gemini CLI的sqry

This skill configures the Gemini CLI agent to use sqry's MCP server for AST-based semantic code search across 37 languages.
本skill用于配置Gemini CLI Agent,使其可以使用sqry的MCP服务器,实现对37种语言的基于AST的语义代码搜索功能。

Setup

设置步骤

1. Install sqry

1. 安装sqry

bash
undefined
bash
undefined

Recommended: signed release installer

推荐:签名版本安装器

Fallback: build from source

备用方案:从源码构建

cargo install sqry-cli cargo install sqry-mcp
cargo install sqry-cli cargo install sqry-mcp

Alternative package manager

其他包管理器安装方式

brew install verivus-oss/sqry/sqry
undefined
brew install verivus-oss/sqry/sqry
undefined

2. Index your project

2. 为项目构建索引

bash
cd /path/to/your/project
sqry index .
bash
cd /path/to/your/project
sqry index .

3. Configure MCP server

3. 配置MCP服务器

Recommended:
bash
sqry mcp setup --tool gemini
sqry mcp status
This writes a global entry to
~/.gemini/settings.json
:
json
{
  "mcpServers": {
    "sqry": {
      "command": "/absolute/path/to/sqry-mcp",
      "args": [],
      "env": {}
    }
  }
}
Gemini uses CWD-based workspace discovery by default. Start Gemini from the project directory you want to analyze.
推荐操作:
bash
sqry mcp setup --tool gemini
sqry mcp status
这会在
~/.gemini/settings.json
中写入一条全局配置:
json
{
  "mcpServers": {
    "sqry": {
      "command": "/absolute/path/to/sqry-mcp",
      "args": [],
      "env": {}
    }
  }
}
Gemini默认基于当前工作目录(CWD)发现工作区,请从你要分析的项目目录启动Gemini。

4. Verify

4. 验证配置

After restarting Gemini CLI, test with:
"Use sqry to show graph stats for this project"
重启Gemini CLI后,使用以下指令测试:
"Use sqry to show graph stats for this project"

Skill Dependency

Skill依赖

This skill covers Gemini CLI setup and integration patterns. Also load the
sqry-semantic-search
skill
for tool selection guidance, query syntax, and disambiguation strategies.
sqry-semantic-search uses tiered discovery to save tokens: it loads a compact Quick Tool Selection guide first. If you need full parameter details, load
sqry-semantic-search/references/tool-reference.md
. For advanced workflows (security audit, pre-change analysis), load
sqry-semantic-search/references/workflows.md
. Only load what you need.
本skill涵盖Gemini CLI的设置和集成模式。请同时加载
sqry-semantic-search
skill
以获取工具选择指南、查询语法和歧义消除策略。
sqry-semantic-search采用分层发现机制节省token:它会优先加载精简的快速工具选择指南。如果你需要完整的参数说明,请加载
sqry-semantic-search/references/tool-reference.md
。对于高级工作流(安全审计、变更前分析),请加载
sqry-semantic-search/references/workflows.md
,按需加载即可,无需加载全部内容。

Quick Tool Selection

快速工具选择指南

I know the symbol name and want to...
  • See its definition →
    mcp__sqry__get_definition
  • See who calls it →
    mcp__sqry__direct_callers
    (depth=1) or
    mcp__sqry__relation_query
    (multi-depth)
  • See what it calls →
    mcp__sqry__direct_callees
  • See what breaks if I change it →
    mcp__sqry__dependency_impact
  • Understand it with context →
    mcp__sqry__explain_code
I want to search for symbols...
  • By name substring →
    mcp__sqry__pattern_search
  • By kind/visibility/language →
    mcp__sqry__semantic_search
  • With RAG-optimized grouping →
    mcp__sqry__hierarchical_search
I want to analyze the codebase...
  • Circular dependencies →
    mcp__sqry__find_cycles
  • Dead code →
    mcp__sqry__find_unused
  • Change impact →
    mcp__sqry__dependency_impact
  • Trace call path A→B →
    mcp__sqry__trace_path
我知道符号名称,想要...
  • 查看其定义 →
    mcp__sqry__get_definition
  • 查看调用它的对象 →
    mcp__sqry__direct_callers
    (深度=1)或
    mcp__sqry__relation_query
    (多深度)
  • 查看它调用的对象 →
    mcp__sqry__direct_callees
  • 查看修改它会影响哪些内容 →
    mcp__sqry__dependency_impact
  • 结合上下文理解代码含义 →
    mcp__sqry__explain_code
我想要搜索符号...
  • 通过名称子串搜索 →
    mcp__sqry__pattern_search
  • 通过类型/可见性/语言搜索 →
    mcp__sqry__semantic_search
  • 使用RAG优化的分组方式搜索 →
    mcp__sqry__hierarchical_search
我想要分析代码库...
  • 查找循环依赖 →
    mcp__sqry__find_cycles
  • 查找死代码 →
    mcp__sqry__find_unused
  • 分析变更影响 →
    mcp__sqry__dependency_impact
  • 追踪A到B的调用路径 →
    mcp__sqry__trace_path

Handling Ambiguous Symbols

歧义符号处理

When using
mcp__sqry__direct_callers
,
mcp__sqry__direct_callees
, or
mcp__sqry__call_hierarchy
with common names (
handle
,
new
,
init
,
process
,
run
), the tool may fail or return wrong results.
Always disambiguate by providing
file_path
:
json
{
  "symbol": "handle",
  "file_path": "src/api/router.rs"
}
Or use a qualified name:
"symbol": "UserService::authenticate"
If relation tools fail, fall back to
mcp__sqry__get_references
with a
path
filter to scope results.
当对常用名称(
handle
new
init
process
run
)使用
mcp__sqry__direct_callers
mcp__sqry__direct_callees
mcp__sqry__call_hierarchy
时,工具可能运行失败或返回错误结果。
请始终通过提供
file_path
来消除歧义
json
{
  "symbol": "handle",
  "file_path": "src/api/router.rs"
}
或者使用限定名称:
"symbol": "UserService::authenticate"
如果关系工具运行失败,请回退到使用带有
path
过滤器的
mcp__sqry__get_references
来限定结果范围。

Tool Naming in Gemini CLI

Gemini CLI中的工具命名规则

Gemini CLI uses the
mcp__sqry__
prefix for sqry MCP tools:
mcp__sqry__semantic_search
mcp__sqry__relation_query
mcp__sqry__dependency_impact
mcp__sqry__explain_code
mcp__sqry__trace_path
...
Gemini CLI为sqry MCP工具添加
mcp__sqry__
前缀:
mcp__sqry__semantic_search
mcp__sqry__relation_query
mcp__sqry__dependency_impact
mcp__sqry__explain_code
mcp__sqry__trace_path
...

Recommended GEMINI.md Addition

推荐添加到GEMINI.md的内容

Add this to your project's
GEMINI.md
:
markdown
undefined
将以下内容添加到项目的
GEMINI.md
中:
markdown
undefined

Code Search

代码搜索

Use sqry MCP tools for semantic code search:
  • mcp__sqry__semantic_search
    - Find symbols by structure
  • mcp__sqry__relation_query
    - Find callers, callees, imports
  • mcp__sqry__dependency_impact
    - Analyze change impact
  • mcp__sqry__explain_code
    - Understand a symbol with context
Use grep/rg for literal text search. Use sqry for everything structural.
undefined
使用sqry MCP工具进行语义代码搜索:
  • mcp__sqry__semantic_search
    - 按结构查找符号
  • mcp__sqry__relation_query
    - 查找调用方、被调用方、导入关系
  • mcp__sqry__dependency_impact
    - 分析变更影响范围
  • mcp__sqry__explain_code
    - 结合上下文理解符号含义
使用grep/rg进行字面量文本搜索,所有结构相关搜索都使用sqry。
undefined

Workflow

工作流

  1. Use
    mcp__sqry__semantic_search
    for fast discovery before reading files manually.
  2. Use
    mcp__sqry__dependency_impact
    before modifying shared symbols.
  3. Run focused tests first; run broader checks for shared graph, query, or plugin paths.
  4. In handoff, always include changed files, impact summary, and tests run.
  1. 手动阅读文件前先使用
    mcp__sqry__semantic_search
    快速发现目标内容。
  2. 修改共享符号前先使用
    mcp__sqry__dependency_impact
    分析影响。
  3. 优先运行聚焦测试,针对共享图、查询或插件路径运行更全面的检查。
  4. 交接工作时,始终包含修改的文件、影响摘要和已运行的测试信息。

Common Gemini Patterns

常用Gemini使用模式

Explore a codebase

探索代码库

1. mcp__sqry__get_graph_stats    (overview: languages, node/edge counts)
2. mcp__sqry__list_files         (what files are indexed)
3. mcp__sqry__semantic_search    query: "kind:function", filters: {visibility: "public"}
1. mcp__sqry__get_graph_stats    (概览:语言、节点/边数量)
2. mcp__sqry__list_files         (已索引的文件列表)
3. mcp__sqry__semantic_search    query: "kind:function", filters: {visibility: "public"}

Trace a call chain

追踪调用链

1. mcp__sqry__get_definition     symbol: "handle_request"
2. mcp__sqry__direct_callees     symbol: "handle_request"
3. mcp__sqry__trace_path         from_symbol: "handle_request", to_symbol: "db_query"
1. mcp__sqry__get_definition     symbol: "handle_request"
2. mcp__sqry__direct_callees     symbol: "handle_request"
3. mcp__sqry__trace_path         from_symbol: "handle_request", to_symbol: "db_query"

Pre-change safety check

变更前安全检查

1. mcp__sqry__dependency_impact  symbol: "UserService", max_depth: 3
2. mcp__sqry__find_cycles        (check for circular deps)
3. Make changes
4. mcp__sqry__semantic_diff      base: {ref: "main"}, target: {ref: "HEAD"}
1. mcp__sqry__dependency_impact  symbol: "UserService", max_depth: 3
2. mcp__sqry__find_cycles        (检查循环依赖)
3. 进行代码修改
4. mcp__sqry__semantic_diff      base: {ref: "main"}, target: {ref: "HEAD"}

Gemini Context Notes

Gemini上下文说明

  • Gemini defaults to loading
    GEMINI.md
    for project context.
  • sqry MCP tools provide deeper structural understanding than what context files alone offer.
  • Use
    mcp__sqry__hierarchical_search
    to get RAG-optimized results that include file and container grouping — this pairs well with Gemini's context window management.
  • Gemini默认会加载
    GEMINI.md
    获取项目上下文。
  • sqry MCP工具比单独的上下文文件能提供更深层次的结构理解能力。
  • 使用
    mcp__sqry__hierarchical_search
    可以获取包含文件和容器分组的RAG优化结果,这与Gemini的上下文窗口管理能力适配性很好。

Recent Features (since v6.0)

新功能(v6.0版本起)

Plugin cost tiering

插件成本分层

  • Plugins classified as
    Fast
    (default) or
    HighWallClock
  • High-cost plugins (JSON, ServiceNow XML) excluded from default index
  • CLI:
    --include-high-cost
    /
    --exclude-high-cost
    ,
    --enable-plugin ID
    /
    --disable-plugin ID
  • Env:
    SQRY_INCLUDE_HIGH_COST=1
  • 插件分为
    Fast
    (默认)和
    HighWallClock
    两类
  • 高成本插件(JSON、ServiceNow XML)默认不纳入索引
  • CLI参数:
    --include-high-cost
    /
    --exclude-high-cost
    --enable-plugin ID
    /
    --disable-plugin ID
  • 环境变量:
    SQRY_INCLUDE_HIGH_COST=1

Time-expensive MCP operations

耗时较长的MCP操作

  • rebuild_index
    : 10min timeout, full graph rebuild -- only when index stale
  • semantic_diff
    : creates git worktrees + indexes -- scope with file/kind filters
  • find_cycles
    ,
    complexity_metrics
    : can timeout on large graphs -- scope to files
  • find_duplicates
    : quadratic scaling -- filter by file/language/kind
  • call_hierarchy
    depth>2,
    dependency_impact
    depth>3: exponential growth
  • rebuild_index
    :10分钟超时,全量重建图结构——仅在索引过期时使用
  • semantic_diff
    :创建git工作树+构建索引——通过文件/类型过滤器限定范围
  • find_cycles
    complexity_metrics
    :大型图结构上可能超时——限定到指定文件范围
  • find_duplicates
    :二次方时间复杂度——通过文件/语言/类型过滤
  • call_hierarchy
    深度>2、
    dependency_impact
    深度>3:指数级复杂度增长

Macro boundary analysis (Rust)

宏边界分析(Rust)

  • CLI:
    sqry cache expand
    ,
    --enable-macro-expansion
    ,
    --cfg
    ,
    --cfg-filter
    ,
    --include-generated
    ,
    --macro-boundaries
  • MCP:
    mcp__sqry__expand_cache_status
    tool, macro metadata in search/definition results
  • CLI参数:
    sqry cache expand
    --enable-macro-expansion
    --cfg
    --cfg-filter
    --include-generated
    --macro-boundaries
  • MCP工具:
    mcp__sqry__expand_cache_status
    ,搜索/定义结果中包含宏元数据

JVM classpath analysis

JVM类路径分析

  • CLI:
    --classpath
    ,
    --classpath-depth
    ,
    --classpath-file
  • MCP:
    include_classpath
    parameter on search tools,
    provenance
    field in results
  • CLI参数:
    --classpath
    --classpath-depth
    --classpath-file
  • MCP:搜索工具支持
    include_classpath
    参数,结果中包含
    provenance
    字段

Security defaults

安全默认配置

  • MCP redaction preset now
    "minimal"
    by default (was
    "none"
    )
  • Override:
    SQRY_REDACTION_PRESET=none
  • Index timeout: 600s, query timeout: 60s
  • MCP脱敏预设默认值现在为
    "minimal"
    (之前为
    "none"
  • 覆盖配置:
    SQRY_REDACTION_PRESET=none
  • 索引超时:600秒,查询超时:60秒

Other

其他

  • 37 language plugins (added JSON, ServiceNow XML)
  • Snapshot format V7 -- rebuild index on major version upgrade
  • Multi-root VS Code workspace support
  • 37个语言插件(新增JSON、ServiceNow XML支持)
  • 快照格式V7——大版本升级后需要重建索引
  • 支持多根目录VS Code工作区

Troubleshooting

故障排查

  • No tools visible: Restart Gemini CLI after running
    sqry mcp setup --tool gemini
  • Empty results: Run
    sqry index .
    to build the index
  • Stale results: Run
    sqry index --force .
    to force rebuild
  • Snapshot version mismatch: Run
    rm -rf .sqry/graph && sqry index .
    after major upgrades
  • Missing JSON/ServiceNow symbols: Rebuild with
    sqry index --include-high-cost
  • Check health: Call
    mcp__sqry__get_index_status
  • 看不到工具:运行
    sqry mcp setup --tool gemini
    后重启Gemini CLI
  • 结果为空:运行
    sqry index .
    构建索引
  • 结果过期:运行
    sqry index --force .
    强制重建索引
  • 快照版本不匹配:大版本升级后运行
    rm -rf .sqry/graph && sqry index .
  • 缺少JSON/ServiceNow符号:使用
    sqry index --include-high-cost
    重建索引
  • 检查运行状态:调用
    mcp__sqry__get_index_status