# sqry - Semantic Code Search

An MCP server that runs AST-based semantic code search: symbols, relations and impact analysis across 37 languages.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 31
- Author: verivus-oss
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/verivus-oss/sqry/tree/HEAD/sqry-mcp
- Updated: 2026-10-06
- HTML: https://affpapa.org/en/nevibecode/mcp/sqry-semantic-code-search

## What it does

\`sqry-mcp` hands sqry's semantic code-search tools to MCP clients. Standalone mode carries 39 tools; when a daemon hosts it, you get a 17-tool subset served by `sqryd`. Pull the exact schemas at runtime instead of copying tables — call `tools/list`, run `sqry-mcp --list-tools`, or read `sqry://meta/manifest`.

The standalone catalog covers symbol search, navigation, relation queries, graph export, impact analysis, semantic diff, duplicate and cycle detection, unused-code checks, workspace status and context propagation. Queries take string predicates plus structured JSON pre-filters: `semantic_search` accepts a `query` such as `kind:function items:true` alongside `filters` for language and visibility. `list_symbols` uses the `items_only` parameter for the same job.

Everything ships as a Docker image, `ghcr.io/verivus-oss/sqry-mcp:v33.0.1`, with the workspace root passed through `SQRY_MCP_WORKSPACE_ROOT`. Daemon-backed mode is not a drop-in switch: `sqryd` has to be started and loaded first, otherwise `--daemon` has nothing to talk to. Setup is written by `sqry mcp setup --tool claude` (also `codex` and `gemini`), and `--dry-run` previews it. Multi-root projects need a `.sqry-workspace` file or a `.code-workspace` file holding `sqry.workspace`.

## Requirements
- Needs: Docker
- Environment variables: `SQRY_MCP_WORKSPACE_ROOT` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env SQRY_MCP_WORKSPACE_ROOT=<SQRY_MCP_WORKSPACE_ROOT> --transport stdio sqry-mcp -- docker run -i --rm -e SQRY_MCP_WORKSPACE_ROOT ghcr.io/verivus-oss/sqry-mcp:v33.0.1
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add sqry-mcp --env SQRY_MCP_WORKSPACE_ROOT=<SQRY_MCP_WORKSPACE_ROOT> -- docker run -i --rm -e SQRY_MCP_WORKSPACE_ROOT ghcr.io/verivus-oss/sqry-mcp:v33.0.1
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "sqry-mcp": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "-e",
                "SQRY_MCP_WORKSPACE_ROOT",
                "ghcr.io/verivus-oss/sqry-mcp:v33.0.1"
            ],
            "env": {
                "SQRY_MCP_WORKSPACE_ROOT": "<SQRY_MCP_WORKSPACE_ROOT>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "sqry-mcp": {
            "type": "stdio",
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "-e",
                "SQRY_MCP_WORKSPACE_ROOT",
                "ghcr.io/verivus-oss/sqry-mcp:v33.0.1"
            ],
            "env": {
                "SQRY_MCP_WORKSPACE_ROOT": "<SQRY_MCP_WORKSPACE_ROOT>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e SQRY_MCP_WORKSPACE_ROOT=<SQRY_MCP_WORKSPACE_ROOT> sqry-mcp docker run -i --rm -e SQRY_MCP_WORKSPACE_ROOT ghcr.io/verivus-oss/sqry-mcp:v33.0.1
```
Replace <…> with your own values

## When to use it
- locate a function definition and every call site
- see what breaks after editing a shared module
- export the relation graph for a codebase
- catch duplicate and cyclic code in a large repo
- find dead code before a refactor

## Example prompts
- Use `semantic_search` to find every public Rust function in this project
- List function definitions only with `list_symbols`
- Run impact analysis on the module I just changed and show what it touches

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

## Other versions with the same name
- [sqry - Semantic Code Search · verivus-oss](https://affpapa.org/en/nevibecode/mcp/verivus-oss-sqry-semantic-code-search.md) — ★ 31

From the same set: [verivus-oss/sqry](https://affpapa.org/en/nevibecode/by/verivus-oss/sqry.md) — 2 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
