# Paparats – Local Semantic Code Search MCP

Searches several repositories by meaning and keeps an architectural memory of the project. Useful when an agent gets lost in unfamiliar code.

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

## What it does

The server indexes repositories and answers agent queries by meaning rather than by string match. Chunking respects syntax through tree-sitter, with 11 languages covered. After indexing, each chunk picks up its git history, ticket references and symbol edges: calls, called_by, references, referenced_by.

Search uses task prefixes (`nl2code`, `code2code`, `techqa`), expands queries across abbreviations, case and plurals, caches results in memory per group and scores confidence. A separate architectural memory layer stores three card kinds — components, decisions and lessons — in a Qdrant collection per group. The agent fills it in on its own: near-duplicate decisions are refused when cosine similarity passes 0.85, while lessons bump the timestamp on an existing card.

The `/knowledge/mcp` endpoint stays off unless both `PAPARATS_KNOWLEDGE_TOKENS` and `PAPARATS_KNOWLEDGE_AUDIENCE` are set; supplying one alone prevents the server from starting. Set `PAPARATS_KNOWLEDGE_PROJECTS` too, or a stray `audience:` line in some repository README will widen what the endpoint returns.

## Requirements
- Needs: Node.js (commands run via npx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add paparats-mcp -- npx -y @paparats/cli
```

### Codex

**Platform CLI**
```bash
codex mcp add server -- npx -y @paparats/cli
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "server": {
            "command": "npx",
            "args": [
                "-y",
                "@paparats/cli"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "server": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@paparats/cli"
            ]
        }
    }
}
```

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add server npx -y @paparats/cli
```

## When to use it
- locate the right piece of code from a task description instead of a function name
- tie code chunks to git history and ticket references
- keep the reasoning behind the architecture across sessions
- expose documentation to an outside service without internal notes
- spot a decision or lesson card that has gone stale

## Example prompts
- Find where token-based authorization is handled across my repos
- Bootstrap the architectural memory for this repository
- Record a lesson from my fix: don't cache responses without a `Cache-Control` header

## Similar
- [sqry - Semantic Code Search](https://affpapa.org/en/nevibecode/mcp/sqry-semantic-code-search.md) — MCP server · ★ 31
- [pgvector-semantic-search](https://affpapa.org/en/nevibecode/skills/pgvector-semantic-search.md) — skill · 938 installs
- [vex](https://affpapa.org/en/nevibecode/mcp/vex.md) — MCP server · ★ 12
- [grepai-search-basics](https://affpapa.org/en/nevibecode/skills/grepai-search-basics.md) — skill · 905 installs
- [qdrant-vector-search](https://affpapa.org/en/nevibecode/skills/qdrant-vector-search.md) — skill · 969 installs
- [grepai-search-tips](https://affpapa.org/en/nevibecode/skills/grepai-search-tips.md) — skill · 778 installs

---
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
