Memungkinkan AI client untuk mencari folder dokumen lokal dan memverifikasi jawaban berdasarkan konten yang diindeks menggunakan offline TF-IDF embedding.
Juga dikenal sebagai DevilsDev/rag-pipeline-utils, rag-mcp-server, @devilsdev/rag-mcp-server
- Stars
- 1
- Tools
- 4
- Unduhan, 30 hari
- 2.585
- Versi terbaru
- 3.9.1
- Commit terakhir
- 11 Nov 2026
- Lisensi
- MIT
Apa itu RAG for your documents MCP?
RAG for your documents adalah MCP server. Memungkinkan AI client untuk mencari folder dokumen lokal dan memverifikasi jawaban berdasarkan konten yang diindeks menggunakan offline TF-IDF embedding. Server ini menyediakan 4 tool, seperti query, answer, question.
Ringkasan dibuat dari README proyek
Tentang RAG for your documents MCP server
Mencari melalui folder dokumen lokal dan memverifikasi respons AI terhadap konten yang diindeks adalah kemampuan yang ditawarkan server ini bagi developer yang menggunakan MCP client seperti Claude Desktop atau Cursor. Dengan mengarahkan server ke direktori tertentu, Anda memungkinkan asisten untuk mengambil potongan teks relevan dari file Markdown, HTML, CSV, atau text. Sistem ini menggunakan offline TF-IDF embedder dan in-memory retriever, yang berarti tidak memerlukan API keys, database eksternal, maupun koneksi jaringan untuk berfungsi.
User berinteraksi dengan server melalui dua tool utama: search_documents dan check_answer. Tool search akan menemukan potongan teks yang relevan berdasarkan query bahasa natural, sementara tool check akan mengevaluasi apakah jawaban yang diberikan didukung oleh sumber tertentu. Karena proses indexing dilakukan di dalam memori dan dibangun ulang saat startup, server ini dirancang untuk workflow lokal yang fokus pada privasi. Server ini berjalan melalui stdio dan memerlukan Node.js 22 atau versi terbaru untuk beroperasi.
Apa yang bisa Anda lakukan dengannya
- 1Mengambil informasi dari file lokalMinta AI assistant Anda untuk menemukan detail spesifik di dalam sebuah folder dokumentasi.
Ditulis berdasarkan README proyek. Setiap use case diperiksa terhadap kutipan dari README tersebut.
Cara menginstal RAG for your documents MCP
Format diverifikasi 10 Nov 2026Instal RAG for your documents MCP di Claude Code
$ claude mcp add rag-mcp-server -- npx -y @devilsdev/rag-mcp-serverInstal RAG for your documents MCP di Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"rag-mcp-server": {
"command": "npx",
"args": [
"-y",
"@devilsdev/rag-mcp-server"
]
}
}
}Instal RAG for your documents MCP di VS Code
.vscode/mcp.json
{
"servers": {
"rag-mcp-server": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@devilsdev/rag-mcp-server"
]
}
}
}Instal RAG for your documents MCP di Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"rag-mcp-server": {
"command": "npx",
"args": [
"-y",
"@devilsdev/rag-mcp-server"
]
}
}
}Instal RAG for your documents MCP di Codex
~/.codex/config.toml
[mcp_servers.rag-mcp-server] command = "npx" args = ["-y", "@devilsdev/rag-mcp-server"]
Instal RAG for your documents MCP di Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"rag-mcp-server": {
"command": "npx",
"args": [
"-y",
"@devilsdev/rag-mcp-server"
]
}
}
}Tool RAG for your documents MCP 4
Terdeteksi dari READMEqueryanswerquestionsources
| query | — | |
| answer | — | |
| question | — | |
| sources | — |
Pengecekan otomatis
Berjalan 13 Nov 2026Laporan lengkap →Lolos checks otomatis kami. Ini bukan audit keamanan: baca kodenya dan berikan server akses paling terbatas yang dibutuhkannya. Cara kerja checks
- Source repository terhubung dan dapat dijangkaudevilsdev/rag-pipeline-utils is public and reachablegithub.com/devilsdev/rag-pipeline-utils ↗Lolos
- Paket menyebut repo ini sebagai sumbernya@devilsdev/rag-mcp-server names devilsdev/rag-pipeline-utils as sourcenpmjs.com/package/@devilsdev/rag-mcp-server ↗Lolos
- Provenance build (atestasi Sigstore)Sigstore attestation for @devilsdev/rag-mcp-servernpmjs.com/package/@devilsdev/rag-mcp-server/v/3.9.1#provenan ↗Lolos
- Lisensi open source (OSI)MITspdx.org/licenses/MIT.html ↗Lolos
- Ada commit atau release dalam satu tahun terakhirLast commit or release 2026-11-11github.com/devilsdev/rag-pipeline-utils ↗Lolos
- OpenSSF ScorecardTidak diperiksa
- Nama package tidak mirip dengan package populerNo popular package one edit away from @devilsdev/rag-mcp-serverLolos
- Tidak ada advisory kritis di paket maupun dependensinya136 resolved dependencies checked; no critical advisoryosv.dev ↗Lolos
- Tidak ada instruksi tersembunyi untuk model4 tool descriptions and the README read; no override phrases, credential paths or hidden charactersLolos
- Tools yang bersifat destruktif telah diberi labelNo tool named like delete, drop or execLolos
- Endpoint remote menjawab handshake MCPTidak diperiksa
README
Lihat di GitHub@devilsdev/rag-mcp-server
An MCP server for your documents. Point it at a folder and Claude, or any other MCP client, can search the documents and check answers against them:
npx @devilsdev/rag-mcp-server ./docs
It indexes the folder when it starts, with the offline TF-IDF embedder and an in-memory retriever from @devilsdev/rag-pipeline-utils. It needs no API key, no database and no network. The assistant is the language model, so the server never calls one.
Requires Node.js 22 or later.
Connect a client
The server speaks MCP over stdio, so the client starts it. Use an absolute path to your folder.
Claude Code:
claude mcp add docs -- npx -y @devilsdev/rag-mcp-server /absolute/path/to/docs
Claude Desktop, Cursor and other clients that use an mcpServers config (for Claude Desktop: Settings → Developer → Edit Config, then restart):
{
"mcpServers": {
"docs": {
"command": "npx",
"args": ["-y", "@devilsdev/rag-mcp-server", "/absolute/path/to/docs"]
}
}
}
Then ask something your documents answer, such as "How many vacation days do employees get?".
Tools
search_documents
| Input | Type | Description |
|---|---|---|
query |
string, required | What to look for, in natural language (at most 10,000 characters, or --max-question-chars) |
topK |
integer, 1–20 | Passages to return (default 4, or --top-k) |
Returns { passages: [{ id, source, score, text }] }, best first, as structured content and as JSON text. source is the file relative to the folder and id is <source>#<chunk number>. Passages that share no terms with the query are left out.
check_answer
| Input | Type | Description |
|---|---|---|
answer |
string, required | The answer to check (at most 50,000 characters) |
question |
string | The question it answers; improves retrieval when sources is omitted (at most 10,000 characters) |
sources |
array of strings or { id, text } |
Passages to check against, at most 100, each at most 200,000 characters; omit to search the indexed documents |
topK |
integer, 1–20 | Passages to retrieve when sources is omitted |
Runs the library's checkAnswer and returns { grounded, groundedness, unsupported, citations, sources }: whether every sentence is supported, the share of supported sentences (0 to 1), the unsupported sentences, the ids of the sources supporting each sentence, and the sources that were checked. The check is lexical and makes no model calls, so a correct paraphrase can come back unsupported; treat it as a flag to look again, not a verdict.
Both tools are read-only. Passage text is content from your files, and the tool descriptions tell the client to treat it as data, not instructions. A file can still contain text written to manipulate an assistant, so index folders you trust.
Files
Markdown (.md, .markdown), HTML (.html, .htm, visible text only), CSV (.csv, one passage per row) and text (.txt) files, in the folder and its subfolders, handled the way the library's loaders handle them; prose is split into sentence chunks of up to 500 characters. Other files, node_modules and .git are skipped. The index lives in memory and is rebuilt each time the server starts, so restart the client's server after changing the documents.
Options
rag-mcp-server <folder> [--top-k <n>] [--embedder local] [--max-answer-chars <n>]
[--max-source-chars <n>] [--max-question-chars <n>] [--max-sources <n>]
[--max-clause-pairs <n>] [--max-sentence-source-chars <n>] [--check-timeout-ms <n>]
[--max-concurrent-checks <n>]
| Option | Default | Meaning |
|---|---|---|
--top-k <n> |
4 |
Passages per call when the client doesn't pass topK |
--embedder <name> |
local |
The embedder; local (TF-IDF, offline) is the only one |
--max-answer-chars <n> |
50000 |
Longest answer check_answer accepts (env RAG_MCP_MAX_ANSWER_CHARS) |
--max-source-chars <n> |
200000 |
Longest source passage check_answer accepts (env RAG_MCP_MAX_SOURCE_CHARS) |
--max-question-chars <n> |
10000 |
Longest question or query (env RAG_MCP_MAX_QUESTION_CHARS) |
--max-sources <n> |
100 |
Most sources per check_answer call (env RAG_MCP_MAX_SOURCES) |
--max-clause-pairs <n> |
2000000 |
Most answer words × source clauses check_answer compares (env RAG_MCP_MAX_CLAUSE_PAIRS) |
--max-sentence-source-chars <n> |
3000000 |
Most answer sentences × source characters check_answer compares (env RAG_MCP_MAX_SENTENCE_SOURCE_CHARS) |
--check-timeout-ms <n> |
10000 |
Longest a check_answer check may run before it is stopped (env RAG_MCP_CHECK_TIMEOUT_MS) |
--max-concurrent-checks <n> |
2 |
Most check_answer checks run at once; up to 8 more wait (env RAG_MCP_MAX_CONCURRENT_CHECKS) |
A tool call over a limit is rejected with an error that names the flag to raise it. A flag wins over its environment variable; each must be a whole number of at least 1. When you build the server in code, createServer(index, { maxAnswerChars, maxSourceChars, maxQuestionChars, maxSources, maxClausePairs, maxSentenceSourceChars, checkTimeoutMs, maxConcurrentChecks }) takes the same limits. maxClausePairs and maxSentenceSourceChars refuse input that would take long to check before checking it. Every check also runs in a worker thread, with at most 512 MB of heap, and is stopped when it runs past checkTimeoutMs; the server keeps answering other calls meanwhile. At most maxConcurrentChecks checks run at once; up to 8 more wait, and time spent waiting doesn't count toward checkTimeoutMs. A call beyond that is refused with "Too many check_answer calls waiting; try again shortly."
Everything the server logs goes to stderr; stdout carries the protocol.
Build your own
For other embedders (OpenAI, Ollama), a persistent index or a vector database, start from the MCP server example, which builds the same kind of server from the library in about 100 lines.
Documentation: https://devilsdev.github.io/rag-pipeline-utils/
Pertanyaan tentang RAG for your documents MCP
Bagaimana cara menambahkan RAG for your documents MCP ke Claude Code?
Jalankan claude mcp add rag-mcp-server -- npx -y @devilsdev/rag-mcp-server di terminal Anda. Tambahkan --scope user agar tersedia di semua proyek.
Bagaimana cara menambahkan RAG for your documents MCP ke Cursor?
Buka ~/.cursor/mcp.json dan tambahkan server di bawah mcpServers, menggunakan config Cursor yang ditunjukkan di bagian instalasi di atas.
Tool apa yang disediakan RAG for your documents MCP?
Server ini menyediakan 4 tool, termasuk query, answer, question, sources.
Apakah server ini memerlukan koneksi internet atau API keys?
Tidak, server ini bekerja sepenuhnya secara offline tanpa memerlukan API key atau database.
Bagaimana cara kerja pengecekan jawaban?
Pengecekan dilakukan secara leksikal dan tidak melakukan pemanggilan model, yang berarti sistem membandingkan teks secara langsung alih-alih menggunakan LLM untuk menilainya.
Apa saja persyaratan sistemnya?
Anda harus sudah menginstal Node.js versi 22 atau yang lebih baru.