Skip to main content

retrieval-mcp

An MCP server for the Retrieval academic-paper API - semantic paper search, document matching, ACE journal memory, and index inventory. Self-contained: it talks to the backend over HTTP only (just mcp + httpx), so it installs anywhere with uvx / pip - no repo checkout, no GPU, no models.

By default it targets the compute box on the lab LAN (http://10.100.100.111:8000), which trusts LAN callers so no key is needed. Off-LAN, point RETRIEVAL_API_URL at the public gateway (https://retrieval.rnarket.com) and set RETRIEVAL_API_KEY (sk-...).

Tools

Every tool's full docstring (purpose + each argument with its default + an example) is what your LLM sees - call them by name. Summary:

Paper retrieval

Tool What it does
search_papers Semantic hybrid search over 95k+ top-venue CS papers (filters: venue, year, title_only)
search_within_paper Every matching passage inside one paper
match_document / match_paper Content-nearest papers to a passage / to a paper
list_conferences / corpus_stats Venue registry / corpus size

Journal work-memory (scoped to the current project by default)

Tool What it does
journal_record Record a work note (memory) or a file's current content (doc, latest-wins)
journal_search Search memory - keyword (FTS5, no embedding) or hybrid/dense/sparse
journal_recent List recent entries
journal_index_dir Batch-index a local dir's files into the journal (latest-wins per file)

Code KB (source stays local - only chunks are uploaded)

Tool What it does
index_code AST-chunk a repo locally (40+ languages) and index it, scoped to you
search_code Semantic code search with path:line citations
index_inventory Your indexed-file tree: user -> host -> project -> dir -> file

ACE playbook (accumulated, curated lessons per project)

Tool What it does
ace_context_aware / ace_playbook Retrieve relevant / list all curated bullets
ace_enhance_prompt / ace_smart_generate Attach playbook lessons to a prompt (no LLM call)
ace_smart_reflect Curate a transferable lesson into the playbook (grow-and-refine dedup)

Code KB language coverage

index_code chunks 40+ languages structurally via tree-sitter (chonkie CodeChunker): Python, TypeScript/TSX/JS/JSX (React), Java, Kotlin (incl. Jetpack Compose .kt/.kts), Swift, Go, Rust, C/C++, C#, Ruby, PHP, Lua, Scala, Dart, R, Julia, Elixir, Erlang, Haskell, OCaml, SQL, GraphQL, Protobuf, HTML, CSS/SCSS (Tailwind = CSS classes), Vue, Svelte, shell, PowerShell, Dockerfile, Terraform/HCL, CMake, YAML/JSON/TOML/XML, and more. Grammarless config/text files fall back to line-window chunks; docs (.md) and binaries are skipped (docs belong in the journal via journal_index_dir).

Install

Claude Code

# LAN (no key):
claude mcp add retrieval -- uvx --from retrieval-mcp==0.2.31 retrieval-mcp
# Off-LAN (public gateway + key):
claude mcp add retrieval \
  --env RETRIEVAL_API_URL=https://retrieval.rnarket.com \
  --env RETRIEVAL_API_KEY=sk-... \
  -- uvx --from retrieval-mcp==0.2.31 retrieval-mcp

Claude Desktop / any MCP client

claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):

{
  "mcpServers": {
    "retrieval": {
      "command": "uvx",
      "args": ["--from", "retrieval-mcp==0.2.31", "retrieval-mcp"],
      "env": {
        "RETRIEVAL_API_URL": "https://retrieval.rnarket.com",
        "RETRIEVAL_API_KEY": "sk-..."
      }
    }
  }
}

No uv? pip install retrieval-mcp then use "command": "retrieval-mcp".

Automatic code-index refresh

index_code(..., auto_refresh=True) persists the local scan policy for that absolute repository path. Later search_code() calls check file SHA-256 hashes in the background and submit an incremental refresh only when files changed or disappeared. Search does not wait for GPU indexing: it returns the last completed snapshot and reports the refresh job.

Git repositories continue to honor Git's ignore rules by default. Any directory, including non-Git projects, can add scope-relative patterns to .retrievalignore; callers can add temporary patterns with exclude_globs=["generated/**", "private.py"]. Explicit delete_code() cancels/fences stale refresh work and removes vectors, inventory, and the saved refresh policy.

Config (env)

Var Default Notes
RETRIEVAL_API_URL http://10.100.100.111:8000 LAN compute box (no key). Off-LAN, set to https://retrieval.rnarket.com.
RETRIEVAL_API_KEY - sk-... key for the gateway (create under /auth/keys). Required off-LAN.
Journal/code scope current absolute directory path The client derives scope from the directory you run or pass to each tool, so projects do not leak into each other.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

retrieval_mcp-0.2.31.tar.gz (33.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

retrieval_mcp-0.2.31-py3-none-any.whl (34.1 kB view details)

Uploaded Python 3

File details

Details for the file retrieval_mcp-0.2.31.tar.gz.

File metadata

  • Download URL: retrieval_mcp-0.2.31.tar.gz
  • Upload date:
  • Size: 33.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for retrieval_mcp-0.2.31.tar.gz
Algorithm Hash digest
SHA256 fd6409ba4620d5d82cf56e0ef6c7c30ef4785003123788da82fdd6bb4abe088c
MD5 68a01a0a62861d250fadd03f5dc5f27e
BLAKE2b-256 ebd7de3398ebb6ae175fe065aad04b4679006376dbc9b26e32c499bc67305056

See more details on using hashes here.

File details

Details for the file retrieval_mcp-0.2.31-py3-none-any.whl.

File metadata

  • Download URL: retrieval_mcp-0.2.31-py3-none-any.whl
  • Upload date:
  • Size: 34.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for retrieval_mcp-0.2.31-py3-none-any.whl
Algorithm Hash digest
SHA256 e269d65d8c9f48fd1e275811817bbb34eb1f3579e50430163071770f38d6523f
MD5 094d54366716230ceed09bb327f87b48
BLAKE2b-256 2472d3942bbd65a206a8967848b2fdfdf9515e8a10ddc709ef05bf252fff2892

See more details on using hashes here.

Release history Release notifications | RSS feed

0.4.11

2 files

0.4.10

2 files

0.4.9

2 files

0.4.8

2 files

0.4.7

2 files

0.4.6

2 files

0.4.5

2 files

0.4.4

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.2

1 file

0.3.1

2 files

0.3.0

2 files

0.2.37

2 files

0.2.36

2 files

0.2.35

2 files

0.2.34

2 files

0.2.33

2 files

0.2.32

2 files

This release

0.2.31 This release

2 files

0.2.30

2 files

0.2.29

2 files

0.2.28

2 files

0.2.27

2 files

0.2.26

2 files

0.2.25

2 files

0.2.24

2 files

0.2.23

2 files

0.2.22

2 files

0.2.21

2 files

0.2.20

2 files

0.2.19

2 files

0.2.18

2 files

0.2.17

2 files

0.2.16

2 files

0.2.15

2 files

0.2.14

2 files

0.2.13

2 files

0.2.12

2 files

0.2.11

2 files

0.2.10

2 files

0.2.9

2 files

0.2.8

2 files

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page