index, search, read, grep ve neighbors araç setini kullanarak LLM agent'larının talep üzerine belirli belge bölümlerini çekmesini sağlar.
Ayrıca bilinen adı mi2arun/contextpull
- Yıldızlar
- 0
- Araçlar
- —
- İndirmeler, 30 gün
- 352
- En son sürüm
- 0.2.1
- Son commit
- 4 Kas 2026
- Lisans
- MIT
ContextPull MCP nedir?
ContextPull bir MCP sunucusudur. index, search, read, grep ve neighbors araç setini kullanarak LLM agent'larının talep üzerine belirli belge bölümlerini çekmesini sağlar.
Özet, projenin README dosyasından oluşturuldu
ContextPull MCP sunucusu hakkında
ContextPull, büyük belge koleksiyonlarıyla çalışan geliştiricilerin LLM agent'larına talep üzerine belirli belge bölümleri sunmasını sağlar. Tüm dosyaları bir prompt içine göndermek yerine bu sistem, agent'ın sürekli hazır bulunan küçük bir indeks kullanarak yalnızca gerekli içeriği çekmesine olanak tanır. Bu yaklaşım, modellerin alakasız veriler almasını engeller ve token kullanımının daha etkili yönetilmesine yardımcı olur.
Kullanıcılar sunucuyu Python, TypeScript veya Go kullanarak yerel olarak kurabilirler; sistem tek bir SQLite dosyası kullanarak tamamen çevrimdışı çalışır. Markdown, text, docx, xlsx, pptx ve PDF dahil olmak üzere çeşitli dosya formatlarını destekler. Sistem beş temel araç sağlar: index, search, read, grep ve neighbours. Bunlar, bir agent'ın belirli bölümleri bularak, metni olduğu gibi okuyarak veya belirli bir başlık için çevreleyen bağlamı konumlandırarak bir veri kümesinde gezinmesine olanak tanır.
Claude Code veya MCP uyumlu herhangi bir host ile entegrasyon oldukça basittir. Geliştiriciler, aranabilir bir depo oluşturmak için bir belge klasörünü sisteme dahil edebilirler; bu depo daha sonra stdio üzerinden veya salt okunur erişim için paylaşılan bir HTTP sunucusu olarak sunulabilir.
Neler yapabilirsiniz
- 1Belirli politika detaylarını getirmeBüyük bir politika belgesi içindeki belirli bir maddeyi bulması ve okuması için bir agent'tan search ve read araçlarını kullanmasını isteyin.
Projenin README dosyasından alınmıştır. Her kullanım durumu, oradaki bir alıntı ile kontrol edilir.
ContextPull MCP nasıl yüklenir
Biçimler 10 Kas 2026 tarihinde doğrulandıCursor'a ekleGoose'a ekleContextPull MCP'yi Claude Code içine yükleyin
$ claude mcp add contextpull -- uvx contextpullContextPull MCP'yi Cursor içine yükleyin
~/.cursor/mcp.json
{
"mcpServers": {
"contextpull": {
"command": "uvx",
"args": [
"contextpull"
]
}
}
}ContextPull MCP'yi VS Code içine yükleyin
.vscode/mcp.json
{
"servers": {
"contextpull": {
"type": "stdio",
"command": "uvx",
"args": [
"contextpull"
]
}
}
}ContextPull MCP'yi VS Code CLI içine yükleyin
$ code --add-mcp '{"name":"contextpull","type":"stdio","command":"uvx","args":["contextpull"]}'ContextPull MCP'yi Claude Desktop içine yükleyin
claude_desktop_config.json
{
"mcpServers": {
"contextpull": {
"command": "uvx",
"args": [
"contextpull"
]
}
}
}ContextPull MCP'yi Codex içine yükleyin
$ codex mcp add contextpull -- uvx contextpullContextPull MCP'yi Codex config.toml içine yükleyin
~/.codex/config.toml
[mcp_servers.contextpull] command = "uvx" args = ["contextpull"]
ContextPull MCP'yi Gemini CLI içine yükleyin
$ gemini mcp add -s user contextpull uvx -- contextpullContextPull MCP'yi Gemini settings.json içine yükleyin
~/.gemini/settings.json
{
"mcpServers": {
"contextpull": {
"command": "uvx",
"args": [
"contextpull"
]
}
}
}Otomatik kontroller
Çalıştırıldı 13 Kas 2026Tam rapor →Otomatik kontrollerimizden geçti. Bu bir güvenlik denetimi değildir: kodu okuyun ve sunucuya ihtiyaç duyduğu en dar erişimi verin. Kontroller nasıl çalışır
- Kaynak deposu bağlantılı ve erişilebilirmi2arun/contextpull is public and reachablegithub.com/mi2arun/contextpull ↗Geçti
- Paket, bu depoyu kaynağı olarak gösteriyorcontextpull, contextpull name mi2arun/contextpull as sourcepypi.org/project/contextpull/ ↗Geçti
- Derleme kökeni (Sigstore onayı)Sigstore attestation for contextpullpypi.org/project/contextpull/ ↗Geçti
- Açık kaynak lisansı (OSI)MITspdx.org/licenses/MIT.html ↗Geçti
- Son bir yıl içinde commit veya sürüm mevcutLast commit or release 2026-11-04github.com/mi2arun/contextpull ↗Geçti
- OpenSSF ScorecardKontrol edilmedi
- Paket adı popüler bir pakete yakın değilNo popular package one edit away from contextpull, contextpullGeçti
- Pakette veya bağımlılıklarında kritik uyarı yok1 resolved dependencies checked; no critical advisoryosv.dev ↗Geçti
- Modele yönelik gizli talimat yok0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersGeçti
- Yıkıcı araçlar etiketlenmişKontrol edilmedi
- Uzak uç nokta MCP el sıkışmasına yanıt veriyorKontrol edilmedi
ContextPull
Website: https://mi2arun.github.io/contextpull/ · demo · docs · MCP Registry io.github.mi2arun/contextpull
Pull, don't push. ContextPull turns a folder of documents into something an LLM agent can pull from the way Claude Code pulls from a codebase: a small index that is always in context, and five tools that return exact sections on demand. The model never receives content it did not ask for.
Zero runtime dependencies. One SQLite file. Works offline.
ContextPull ships with a companion, ragbisect (formerly stagewise): a neutral benchmark harness that builds an eval set from your corpus and scores ContextPull next to bm25, dense and hybrid pipelines. Two names, one project, kept apart so the measurement stays independent of the thing it measures.
Status
M1 to M3 are built: store, ingest, the five operations, CLI, conformance suite, MCP server, Claude Code integration, LLM summaries, protocol client examples, ragbisect adapters, and a TypeScript reader and server. See the roadmap.
Measured
uv documentation, 603 sections, 221 self-generated questions, recall@5, from docs/testing.md:
| config | recall@5 | ms/q | model tokens/q |
|---|---|---|---|
| hybrid push (dense + bm25) | 0.964 | 69 | 0 |
| bm25 push | 0.923 | 5 | 0 |
| pull, Claude Code (10-question sample) | 1.000 | 26,565 | 86,656 |
| pull, gpt-5.4-mini with reasoning off | 0.615 | 16,023 | 10,891 |
A strong agent reads the right section every time; a small no-reasoning model reads the right section when it reads (NDCG 0.96 given a hit) but misses the gold section on 38% of questions. Push retrieval is nearly free per query; pull costs tens of thousands of tokens. Both facts are in the table on purpose. The model's own searches surfaced the gold section on 88% of a sample, so most of the gap is snippets being answered from rather than read; a stricter prompt did not change that. An earlier version of this table showed 0.045 for the small model; that number came from a threading bug in the benchmark adapter and is retracted in docs/testing.md.
Try it
Fastest: ./scripts/demo.sh ingests the bundled fixture corpus and walks through index, search, read and grep, then prints the exact claude mcp add line. ./scripts/demo.sh ./your-docs does the same on your own folder.
uv tool install contextpull # or: pip install contextpull (PyPI: contextpull 0.2.0)
contextpull ingest ./docs # writes .contextpull/store.sqlite
contextpull index # the always-in-context table of contents
contextpull search "refund window" --in policy-2025.md
contextpull read policy-2025.md#3 --context 1
contextpull grep TX-4419
contextpull neighbours specs.md#1
contextpull export-chunks > chunks.jsonl # ragbisect-compatible sections
In Claude Code
claude mcp add contextpull -- uvx --from "contextpull[mcp]" contextpull serve ./docs
The server ingests ./docs into ./docs/.contextpull/store.sqlite, puts the index into its instructions so it is always in context, and exposes the five tools. Ask a question; the trace shows search, then read, then an answer with [path.md#3] citations. contextpull claude-md prints a CLAUDE.md snippet if you want to tell the model about it explicitly. Add --summarizer openai:gpt-5.4-mini for model-written one-line summaries in the index (cached by document hash).
Any other MCP host works the same way; see examples/clients/ for TypeScript, Go and Java protocol clients and examples/direct_api_loop.py for using the tools straight from a model API with no server.
More
uv sync --extra pdf # PDFs: headings inferred from font size
uv run contextpull ingest ./docs --embed-model openai:text-embedding-3-small # enables: search --mode hybrid
uv run contextpull serve ./docs --transport http --port 8765 # streamable HTTP at /mcp for a shared read-only server
As a library
Embedding it in your own product, with access control and air-gap notes: docs/embedding.md and examples/embed_with_acl.py.
from contextpull import Store, Ops
with Store.open(".contextpull/store.sqlite") as store:
ops = Ops(store)
print(ops.index())
hits = ops.search("refund window", in_=["policy-2024.md", "policy-2025.md"]).hits
for h in hits:
print(h.id, h.heading_path, h.snippet)
section = ops.read(hits[0].id).section
Tool definitions for any model API are in contextpull.tools.TOOLS (Anthropic shape) and openai_tools(); tools.json at the repo root is the same thing for other languages.
How it works
- Ingest parses Markdown, text, docx, xlsx, pptx and (with the
pdfextra) PDF into headings, paragraphs, tables and code, and cuts heading-aware sections with stable ids likepolicy-2025.md#3. Tables and code are never split mid-block; long tables are split by rows and every part carries the header. Unchanged files are skipped on re-ingest. - Store is one SQLite file with an FTS5 index whose tokenizer keeps identifiers whole (
--no-cache,UV_CACHE_DIR,TX-4419,3.12). - Index is a token-budgeted table of contents, one line per document, delivered into the model's context. It goes hierarchical when a corpus is too large for the budget.
- Tools:
index,search(ids and snippets, never bodies),read(verbatim),grep(exact matches),neighbours(the header row, the next clause).
Node
sdk/typescript/ is a store-native reader and MCP server in TypeScript over better-sqlite3: open the same store file, no Python at query time. Published to npm as contextpull.
npx contextpull serve /path/store.sqlite # npm: contextpull 0.1.0
claude mcp add contextpull -- npx -y contextpull serve /path/store.sqlite
It passes the same conformance suite as the Python reference and returns identical results over MCP. Ingest stays in Python (npx contextpull ingest delegates to uvx contextpull ingest).
Go
sdk/go/ is a store-native reader and a single static binary server, pure Go, no cgo: the shape for a shared read-only deployment.
cd sdk/go && go build -o contextpull-server ./cmd/contextpull-server
./contextpull-server serve /data/store.sqlite --http 0.0.0.0:8765 # or without --http for stdio
Same conformance suite, identical results to Python over MCP.
Other languages
The store file is the contract. docs/store-format.md says what a reader must do; conformance/ holds a fixture corpus, its store and expected results. An SDK in any language is done when check passes. See the SDK plan.
Docs
Start at docs/README.md: architecture, design, system design, tool reference, evaluation, roadmap, decision records.
Measured with ragbisect, which lives next door.
ContextPull MCP soruları
ContextPull MCP'yi Claude Code'a nasıl eklerim?
Terminalinizde claude mcp add contextpull -- uvx contextpull komutunu çalıştırın. Her projede kullanılabilir olması için --scope user ekleyin.
ContextPull MCP'yi Cursor'a nasıl eklerim?
~/.cursor/mcp.json dosyasını açın ve yukarıdaki yükleme bölümünde gösterilen Cursor yapılandırmasını kullanarak sunucuyu mcpServers altına ekleyin.
ContextPull çalışmak için internet bağlantısına ihtiyaç duyar mı?
Hayır, tek bir SQLite dosyası kullanarak çevrimdışı çalışır ve çalışma zamanı bağımlılığı yoktur.
ContextPull hangi dosya formatlarını işleyebilir?
Markdown, text, docx, xlsx, pptx ve PDF dosyalarını ayrıştırabilir.
Araç büyük tabloları veya kod bloklarını nasıl işler?
Tablolar ve kodlar asla blok ortasından bölünmez; uzun tablolar satır bazlı bölünür ve her parça başlık bilgisini taşır.