ArXiv araştırma makalelerinde arama yapın
Claude Desktop config.json'a ekle
{
"mcpServers": {
"blazickjp-arxiv-mcp-server": {
"command": "python",
"args": [
"-m",
"arxiv_mcp_server"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/blazickjp/arxiv-mcp-server.git ~/.mcp/arxiv-mcp-server
cd ~/.mcp/arxiv-mcp-server 🔍 AI asistanlarının basit bir MCP arayüzü aracılığıyla arXiv makalelerini aramasını ve erişmesini sağlayın.
ArXiv MCP Server, Model Context Protocol (MCP) aracılığıyla AI asistanları ile arXiv araştırma deposu arasında bir köprü sağlar. AI modellerinin makaleleri aramasını ve içeriklerine programlı şekilde erişmesini sağlar.
🤝 Katkıda Bulunun • 📝 Hata Bildirin
arXiv'den alınan makale içeriği güvenilmeyen harici girdilerdir.
Bir AI asistanı bu sunucu aracılığıyla bir makaleyi indirdiğinde veya okuduğunda, makalenin metni doğrudan modelin bağlamına iletilir. Kötü niyetli bir makale, AI'ın davranışını ele geçirmek için tasarlanan adversarial talimatları içerebilir — örneğin, veri sızıntısı yapması, diğer araçları beklenmeyen argümanlarla çağırması veya sistem düzeyindeki talimatlara geçersiz kılması istenebilir. Bu, OWASP tarafından LLM01: Prompt Injection olarak ve OWASP Agentic AI framework'ü tarafından AG01: LLM-Entegre Sistemlerde Prompt Injection olarak tanımlanan bilinen bir saldırı sınıfıdır.
ArXiv Server'ı Claude Desktop'a Smithery aracılığıyla otomatik olarak yüklemek için:
npx -y @smithery/cli install arxiv-mcp-server --client claude
.mcpb paketi macOS üzerinde Claude Desktop için tek tıklamalı kurulum yoludur. Sunucu kodunu ve Python paket bağımlılıklarını içerir, bu nedenle kullanıcıların uv, pip veya manuel MCP JSON konfigürasyonuna ihtiyacı yoktur. Python 3.11+ yine de kullanıcının makinasında mevcut olmalıdır.
arxiv-mcp-server-darwin-arm64-<version>.mcpbarxiv-mcp-server-darwin-x86_64-<version>.mcpb~/.arxiv-mcp-server/papers).Claude Desktop, yığılmış sunucuyu stdio üzerinden başlatır — konfigürasyon dosyası düzenlemesine gerek yoktur.
Önemli —
uv tool installkullanın, npm/pnpm veyauv pip installkullanmayınBu proje, desteklenen sunucuyu PyPI'de bir Python paketi olarak yayınlar.
arxiv-mcp-server'ınpm install,pnpm addveyanpx arxiv-mcp-serverile kurmayın: bu adla npm paketi, ilgisiz bir üçüncü taraf paketidir ve kendi Python algılama wrapper'ına sahiptir.
uv pip install arxiv-mcp-serverçalıştırmak paketi mevcut sanal ortama yükler ancakarxiv-mcp-serveryürütülebiliriniPATH'e yerleştirmez.uv tool installkullanmalısınız, böylece uv izole edilmiş bir ortam oluşturur ve yürütülebilir dosyayı global olarak ortaya çıkarır:
uv tool install arxiv-mcp-server
Bundan sonra arxiv-mcp-server komutu PATH üzerinde kullanılabilir olacaktır.
PDF fallback (eski makaleler): Çoğu arXiv makalesi temel yüklemenin otomatik olarak işlediği bir HTML versiyonuna sahiptir. Yalnızca PDF'ye sahip eski makaleler için sunucu
[pdf]extra'sına ihtiyaç duyar (pymupdf4llm). Bunu yükleyin:uv tool install 'arxiv-mcp-server[pdf]'
Bunu doğrulayabilirsiniz:
arxiv-mcp-server --help
Daha önce uv pip install arxiv-mcp-server çalıştırdıysanız ve komut eksikse, kaldırın ve yukarıda gösterildiği gibi uv tool install ile yeniden yükleyin.
Geliştirme için:
# Klonlayın ve geliştirme ortamını ayarlayın
git clone https://github.com/blazickjp/arxiv-mcp-server.git
cd arxiv-mcp-server
# Sanal ortam oluşturun ve etkinleştirin
uv venv
source .venv/bin/activate
# Test bağımlılıklarıyla yükleyin (yalnızca geliştirme — global yürütülebilir yok)
uv pip install -e ".[test]"
Bu depo şu anda .codex-plugin/plugin.json konumunda bir Codex plugin manifestini ve .mcp.json konumunda taşınabilir bir MCP config'ini içerir, böylece Codex yönelimli araçlar sunucuyu kendi kurulum tarifini icat etmeden keşfedebilir.
Codex entegrasyonu, bu README'nin başka yerlerinde belgelenen aynı stdio başlatma yolunu kullanır:
{
"mcpServers": {
"arxiv": {
"command": "uvx",
"args": ["arxiv-mcp-server"]
}
}
}
Codex istemciniz plugin manifestlerini destekliyorsa, ./.codex-plugin/plugin.json'a işaret edin. Yalnızca ham MCP konfigürasyonunu destekliyorsa, ./.mcp.json'ı doğrudan kullanın.
Bu konfigürasyonu MCP istemci konfigürasyon dosyanıza ekleyin:
{
"mcpServers": {
"arxiv-mcp-server": {
"command": "uv",
"args": [
"tool",
"run",
"arxiv-mcp-server",
"--storage-path", "/path/to/paper/storage"
]
}
}
}
Geliştirme için:
{
"mcpServers": {
"arxiv-mcp-server": {
"command": "uv",
"args": [
"--directory",
"path/to/cloned/arxiv-mcp-server",
"run",
"arxiv-mcp-server",
"--storage-path", "/path/to/paper/storage"
]
}
}
}
Stdio'nun pratik olmadığı sunucu dağıtımları için, sunucuyu Streamable HTTP ile çalıştırın:
TRANSPORT=http HOST=127.0.0.1 PORT=8080 arxiv-mcp-server --storage-path /path/to/papers
Ardından Streamable HTTP'yi destekleyen bir MCP istemcisini yapılandırın:
{
"mcpServers": {
"arxiv-mcp-server": {
"type": "http",
"url": "http://127.0.0.1:8080/mcp"
}
}
}
Varsayılan HTTP bağlama adresi 127.0.0.1'dir. Streamable HTTP, MCP DNS rebinding korumasını varsayılan olarak etkinleştirir ve yapılandırılmış port için localhost adreslerine izin verir. Sunucuyu bir ters proxy aracılığıyla açığa çıkartıyorsanız, hızlandırıcının üzerinde kimlik doğrulaması ve ağ denetimleri eklemiş olmadığınız sürece localhost'a bağlı tutun; ALLOWED_HOSTS ve ALLOWED_ORIGINS'i proxy'nizin ilettiği harici host/origin değerlerine ayarlayın.
arXiv makaleleri kullanıcı tarafından oluşturulmuş, güvenilmeyen içeriktir. Bu sunucu tarafından döndürülen makale metni prompt injection denemelerini içerebilir — bir AI asistanının davranışını manipüle etmek için tasarlanmış metin. Tüm makale içeriğini güvenilmeyen girdiye olarak değerlendirin.
Üretim ortamlarında uygun sandboxing uygulayın ve ham makale içeriğini duyarlı araçlara veya verilere erişimi olan agentic boru hatlarına incelemesi olmadan beslemekten kaçının. Tam güvenlik politikası için SECURITY.md'ye bakın.
Derin makale araştırması için tipik iş akışı:
search_papers → download_paper → read_paper
list_papers yerel olarak neye sahip olduğunuzu gösterir. semantic_search yerel koleksiyon genelinde arama yapar.
Opsiyonel kategori, tarih ve boolean filtrelerine sahip arXiv'i arayın. arXiv'in 3 saniyelik hız sınırını otomatik olarak uygular. Hız sınırlanıyorsa, yeniden denemeden önce 60 saniye bekleyin.
result = await call_tool("search_papers", {
"query": "\"KAN\" OR \"Kolmogorov-Arnold Networks\"",
"max_results": 10,
"date_from": "2024-01-01",
"categories": ["cs.LG", "cs.AI"],
"sort_by": "date" # or "relevance" (default)
})
Desteklenen kategoriler cs.AI, cs.LG, cs.CL, cs.CV, cs.NE, stat.ML, math.OC, quant-ph, eess.SP ve daha fazlasını içerir. Tam liste için araç açıklamasına bakın.
Bir makaleyi arXiv ID'sine göre indirin. İlk olarak HTML'yi dener, PDF'ye geri döner. Makaleyi read_paper ve semantic_search için yerel olarak depolar. Yanıt, istemcilerin çok büyük makaleleri istemci tarafı çıktı sınırını başarısız bir indirme ile karıştırmadan güvenli bir şekilde sayfalandırabilmesi için content_length, returned_chars, next_start ve is_truncated içerir.
result = await call_tool("download_paper", {
"paper_id": "2401.12345"
})
# For very large papers, request bounded chunks:
result = await call_tool("download_paper", {
"paper_id": "2401.12345",
"start": 0,
"max_chars": 50000
})
Yalnızca PDF'ye sahip eski makaleler için
[pdf]extra'sını yükleyin:uv tool install 'arxiv-mcp-server[pdf]'
Yerel olarak indirilen tüm makaleleri listeleyin. Yalnızca arXiv ID'lerini döndürür — içeriğe erişmek için read_paper kullanın.
result = await call_tool("list_papers", {})
Yerel olarak indirilen bir makalenin tam metnini markdown'da okuyun. download_paper'ın ilk olarak çağrılması gerekir. Büyük makaleleri sayfalandırmak için start ve max_chars ile döndürülen next_start değerini kullanın.
result = await call_tool("read_paper", {
"paper_id": "2401.12345"
})
result = await call_tool("read_paper", {
"paper_id": "2401.12345",
"start": 50000,
"max_chars": 50000
})
Sunucu akademik makaleleri analiz etmeye yardımcı olmak için özel istlemler sağlar:
Yalnızca bir makale ID'si gerektiren akademik makaleleri analiz etmek için kapsamlı bir iş akışı:
result = await call_prompt("deep-paper-analysis", {
"paper_id": "2401.12345"
})
Bu istlem şunları içerir:
summarize_paper: bir makale için özlü yapılandırılmış özet.compare_papers: makale ID'leri arasında yan yana teknik karşılaştırma.literature_review: bir konu ve opsiyonel makale seti genelinde tematik sentez.Komut satırı seçenekleri ve ortam değişkenleri aracılığıyla yapılandırın:
| Ayar | Amaç | Varsayılan |
|---|---|---|
--storage-path |
Makale depolama konumu | ~/.arxiv-mcp-server/papers |
MAX_RESULTS |
Maksimum arama sonuçları | 50 |
REQUEST_TIMEOUT |
API zaman aşımı (saniye cinsinden) | 60 |
TRANSPORT |
Aktarım türü: stdio, http veya streamable-http |
stdio |
HOST |
HTTP modunda bağlanacak host | 127.0.0.1 |
PORT |
HTTP modunda dinlenecek port | 8000 |
ALLOWED_HOSTS |
Streamable HTTP DNS rebinding koruması için virgülle ayrılmış ekstra izin verilen Host header değerleri | boş |
ALLOWED_ORIGINS |
Streamable HTTP DNS rebinding koruması için virgülle ayrılmış ekstra izin verilen Origin header değerleri | boş |
Test paketini çalıştırın:
python -m pytest
Bu özellikler henüz tam olarak test edilmemiştir ve beklenmedik davranışlar gösterebilir. Dikkatli kullanın.
Aşağıdaki araçlar ek bağımlılıklar gerektirip aktif geliştirme aşamasındadır:
uv pip install -e ".[pro]"
Yalnızca yerel olarak indirilen makaleleriniz üzerinde anlamsal benzerlik araması. Henüz bir makale indirilmediyse boş sonuçlar döndürür. [pro] bağımlılıklarını gerektirir.
result = await call_tool("semantic_search", {
"query": "test-time adaptation in multimodal transformers",
"max_results": 5
})
# or find papers similar to a known paper:
result = await call_tool("semantic_search", {
"paper_id": "2404.19756",
"max_results": 5
})
Semantic Scholar aracılığıyla referansları ve alıntı yapan makaleleri getirin. Herhangi bir arXiv ID'sinde çalışır — yerel indirmeye gerek yoktur.
result = await call_tool("citation_graph", {
"paper_id": "2401.12345"
})
Konu izlemeleri kaydedip son kontrolden sonra yayınlanan yeni makaleler için oylamaya alın. search_papers ile aynı sorgu sözdizimini kullanır.
# Watch'i kaydedin (idempotent — tekrar çağırılması varolan watch'i günceller)
await call_tool("watch_topic", {
"topic": "\"multi-agent reinforcement learning\"",
"categories": ["cs.AI", "cs.LG"],
"max_results": 10
})
# Tüm watch'leri kontrol edin — yalnızca son kontrolden sonra yayınlanan makaleleri döndürür
result = await call_tool("check_alerts", {})
# Tek bir watch'i kontrol edin
result = await call_tool("check_alerts", {"topic": "\"multi-agent reinforcement learning\""})
Daha derin araştırma iş akışları için summarize_paper, compare_papers ve literature_review. [pro] bağımlılıklarını gerektirir.
Apache License 2.0 altında yayınlanmıştır. Ayrıntılar için LICENSE dosyasına bakın.
Exa AI Search API'sini kullanan bir Model Context Protocol (MCP) sunucusu, Claude gibi AI asistanlarının web aramaları gerçekleştirmesini sağlar. Bu kurulum, AI modellerinin gerçek zamanlı web bilgilerine güvenli ve kontrollü bir şekilde erişmesini mümkün kılar.
Web'i keşfedin, veri çıkarın ve etkileşim kurun - tek bir arayüz ile herkese açık internet üzerinde otomatik erişimi güçlendirin.
Ücretsiz çoklu arama motoru kullanarak web araması yapın (API ANAHTARI GEREKMEZ) — Bing, Baidu, DuckDuckGo, Brave, Exa ve CSDN'yi destekler.
DuckDuckGo kullanarak web araması yapın
Brave Search API kullanarak web arama yetenekleri
Playwright headless browser kullanan MCP sunucusu, Javascript rendering ve akıllı içerik çıkarma desteği ile web sayfası içeriğini alır ve Markdown veya HTML formatında çıktı verir.