PinRAG is for **when you want to learn about something and your materials are scattered**—PDFs and ebooks, GitHub repos, YouTube videos, Discord
PinRAG is for when you want to learn about something and your materials are scattered—PDFs and ebooks, GitHub repos, YouTube videos, Discord discussions, and plain notes. You index those materials into one shared RAG index, then. The pinrag mcp server wraps that behind the Model Context Protocol, so an assistant can use it through 14 defined tools rather than through you.
The server ships on PyPI as pinrag, so your MCP client can launch it on demand — there is no separate build step. Add the server block to your client's configuration, restart it, and the tools register themselves.
Everything the assistant can do here goes through one of these:
Multi — format indexing** — PDF (.pdf), local files or directories, plain text (.txt), Discord export (.txt), YouTube (video or playlist URL, or video ID)Observability — MCP tool notifications (ctx.log) plus optional LangSmith tracingFlashRank — ** Install pinrag[rerank] in the same tool env (pipx install 'pinrag[rerank]' / uv tool install 'pinrag[rerank]'); tunables are inAction — ToolVariable — DefaultLLM — The LLM tool exposed by this serverPINRAG_LLM_PROVIDER — openrouterPINRAG_LLM_MODEL — (provider default)OpenRouter — The OpenRouter tool exposed by this serverPINRAG_OPENROUTER_MODEL_FALLBACKS — (unset)PINRAG_OPENROUTER_SORT — (unset)PINRAG_OPENROUTER_PROVIDER_ORDER — (unset)You will need 8 environment variables: OPENROUTER_API_KEY, PINRAG_PERSIST_DIR, GITHUB_TOKEN, PINRAG_WEB_RATE_LIMIT_PER_HOST, PINRAG_YT_PROXY_HTTP_URL, PINRAG_YT_PROXY_HTTPS_URL, OPENAI_API_KEY, ANTHROPIC_API_KEY. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.
Among the AI and media services options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. Pinrag's toolset — Multi, Observability, FlashRank and 11 more — is a fair guide to whether it matches your workflow. It is maintained by ndjordjevic; worth a glance at recent repository activity before you build anything load-bearing on it.
This entry was verified against Pinrag's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.
| Tool | What it does |
|---|---|
| Multi | format indexing** — PDF (.pdf), local files or directories, plain text (.txt), Discord export (.txt), YouTube (video or playlist URL, or video ID), GitHub repo (URL), web documentation sites (URL) |
| Observability | MCP tool notifications (ctx.log) plus optional [LangSmith](https://smith.langchain.com) tracing |
| FlashRank | ** Install **pinrag[rerank]** in the same tool env (pipx install 'pinrag[rerank]' / uv tool install 'pinrag[rerank]'); tunables are in **Configuration**. |
| Action | Tool |
| Variable | Default |
| LLM | The LLM tool exposed by this server. |
| PINRAG_LLM_PROVIDER | openrouter |
| PINRAG_LLM_MODEL | *(provider default)* |
| OpenRouter | The OpenRouter tool exposed by this server. |
| PINRAG_OPENROUTER_MODEL_FALLBACKS | *(unset)* |
| PINRAG_OPENROUTER_SORT | *(unset)* |
| PINRAG_OPENROUTER_PROVIDER_ORDER | *(unset)* |
| OPENROUTER_APP_URL | https://github.com/ndjordjevic/pinrag |
| OPENROUTER_APP_TITLE | PinRAG |
{
"mcpServers": {
"pinrag": {
"command": "uvx",
"args": ["--refresh", "pinrag"],
"env": {
"OPENROUTER_API_KEY": "your-openrouter-api-key-here",
"PINRAG_PERSIST_DIR": "/absolute/path/to/your/pinrag-data"
}
}
}
}Configuration as documented by the project. Restart the client after saving.
| Variable | Description | Required |
|---|---|---|
| OPENROUTER_API_KEY | Credential the server authenticates with. | Yes |
| PINRAG_PERSIST_DIR | Filesystem location the server is allowed to use. | Optional |
| GITHUB_TOKEN | Credential the server authenticates with. | Yes |
| PINRAG_WEB_RATE_LIMIT_PER_HOST | Endpoint or connection string the server talks to. | Optional |
| PINRAG_YT_PROXY_HTTP_URL | Endpoint or connection string the server talks to. | Yes |
| PINRAG_YT_PROXY_HTTPS_URL | Endpoint or connection string the server talks to. | Yes |
| OPENAI_API_KEY | Credential the server authenticates with. | Yes |
| ANTHROPIC_API_KEY | Credential the server authenticates with. | Yes |
Build a programmable telecommunications stack for connecting telephony services with the Internet via a cloud-based utility.
Search built for AI, not humans — semantic web search that returns model-ready content, plus code context.
Answers, not links — delegate questions to Perplexity's search-grounded models and get cited responses back.
Give your assistant a voice — text-to-speech, voice cloning and audio tools from the ElevenLabs API.
Give your assistant a real code sandbox — isolated cloud VMs for actually running the code it writes.
The ML hub in your context window — search models, datasets, papers and run Spaces from the official server.