Skip to main content
Glama
alikula37

crypto-deep-research

by alikula37

Crypto Deep Research

Kripto varlıklar için araştırma, kaynak arama ve değerlendirme sistemi. 10 analiz modülü ve 66 kriterden kaynaklı Türkçe rapor ve hazır prompt üretir; haber, analiz ve geçmiş raporlarda yerel hybrid RAG ile soru-cevap bağlamı bulur. Web arayüzü, CLI, REST API ve 12 araçlı MCP sunucusu içerir.

Metin ve vektör depoları, embedding ve rapor oluşturma yerelde çalışır. Piyasa/haber verileri dış sağlayıcılardan gelir; OpenRouter yanıtı ve çeviri isteğe bağlı harici model çağrılarıdır. Temel araştırma ve kaynak arama için LLM anahtarı gerekmez.

Araştırma amaçlıdır, yatırım tavsiyesi değildir. Heuristik yön yüzdesi ölçülmüş başarı oranı değildir. Örnek BTC raporu, 12 Eylül 2026 tarihli tarihsel çıktıdır; güncel piyasa tahmini değildir.

Hızlı başlangıç

Docker

git clone https://github.com/alikula37/crypto-deep-research.git
cd crypto-deep-research
docker compose up -d --build

Yerel kurulum

Python 3.10+, uv ve web derlemesi için Node.js 22.12+ gerekir. Komutları depo kökünde çalıştırın:

git clone https://github.com/alikula37/crypto-deep-research.git
cd crypto-deep-research
uv sync --frozen
cp .env.example .env
npm --prefix web ci
npm --prefix web run build
uv run cdr serve

Mevcut kurulumda .env dosyanızı koruyun. Kurulum güncel main kaynak kodundan yapılır; eski/global cdr komutu yerine depo kökünde uv run cdr kullanın. web/dist üretilmeden backend web arayüzünü sunamaz; yalnız uv sync yeterli değildir. Kod güncellemesinden sonra web'i de yeniden derleyin. Sunucu terminal açıkken çalışır.

İlk embedding kullanımında model indirilir; süre ve disk ihtiyacı seçilen modele bağlıdır. İlk açılışta varsayılan takip listesi oluşturulur ve otomatik araştırmalar çalışabilir. Bu davranışlar .env üzerinden kapatılabilir.

Related MCP server: Surf MCP Server

Üründe neler var?

Menü

İçerik

Araştırma

Fiyat/mum grafiği, skor, 10 modül, 66 kriterin bulgu/güven/veri durumu

Analiz

Geçmiş sonuçların ileri getirileri, kalibrasyon görünümü, 2–4 varlık karşılaştırması

Takip

Takip listesi, alarmlar, manuel portföy, fonlama carry paper takibi

Üretim

Markdown rapor, kopyalama/indirme/yazdırma, prompt, opsiyonel LLM ve çeviri

Arşiv

Yerel kaynak arama ve geçmiş raporlar

Rehber

Tıklanabilir mimari, chunk/overlap laboratuvarı, embedding ve RRF örnekleri

Araştırma işleri arka planda ilerleme bildirir ve SQLite'ta saklanır. Eksik veri veri yok olarak gösterilir ve skor ortalamasına alınmaz; kısmi veri yarım ağırlıkla, aynı sinyali paylaşan kriterler grup düzeltmesiyle hesaba katılır. Dengeli, Muhafazakâr ve Agresif profilleri ağırlıkları değiştirir.

Klavye: / aramaya git · ⌘/Ctrl + K komut paleti · ? yardım · ⌘/Ctrl + Enter derin araştırma · Esc kapat. Telegram botu opsiyoneldir: cdr telegram; /fiyat, /skor, /rapor, /arastir, /yardim. Fonlama carry bölümü simülasyon/paper takiptir; gerçek emir göndermez.

Teknolojiler ve akış

Katman

Teknoloji / görev

Backend

Python, FastAPI, Uvicorn, Pydantic, Typer

Veri toplama

HTTPX, piyasa/on-chain sağlayıcıları, RSS ve haber yedekleri

Metin ve durum

SQLite: tam kaynaklar, chunk metni/metadata, araştırma işleri ve öğrenme kayıtları

Sözcüksel arama

SQLite FTS5 + BM25

Embedding

FastEmbed / ONNX; varsayılan intfloat/multilingual-e5-large, 1024 boyut

Vektör deposu

Yerel LanceDB

Fusion / reranking

RRF (60 sıra sabiti); opsiyonel FastEmbed cross-encoder

Opsiyonel yanıt

Kaynak numaralı prompt → OpenRouter

Frontend

React 19, Vite 8; rehberde isteğe bağlı Three.js sahneleri

Finansal ML

Yerel lojistik regresyon / boosted trees, Platt veya izotonik kalibrasyon

flowchart LR
  A[Haber / analiz / rapor] --> B[Token bütçesi + cümle chunking]
  B --> C[E5 chunk embedding]
  C --> D[LanceDB vektörler]
  B --> E[SQLite metin + FTS5]
  Q[Kullanıcının sorusu] --> QE[E5 soru embedding]
  QE --> V[Vektör arama]
  D --> V
  Q --> L[BM25 arama]
  E --> L
  V --> F[RRF birleşimi]
  L --> F
  F --> R[Opsiyonel reranker]
  R --> P[Top-k + kaynaklı prompt]
  P --> O[Opsiyonel LLM yanıtı]

Varsayılan chunking 240 token bütçesi / en fazla 40 tokenlık overlap hedefi kullanır. Tam cümleler sığdırılır; bütçeyi aşan tek cümle token parçalarına bölünür. Gerçek overlap cümle boylarına göre daha az veya sıfır olabilir. Ürünün soru-cevap bağlamı varsayılan 8 chunk içerir. Ayrıntılı mimari ve uygulama sınırları.

Ölçülmüş sonuçlar ve sınırları

Kaynak bulma, yanıt desteği ve finansal tahmin ayrı değerlendirilir. AUC/Brier/ECE, RAG başarı skoru değildir. Son kaydedilmiş deneyler:

Deney

Sonuç

Kapsam / sınır

RAG pilotu · 2 Ekim 2026

Hybrid HitRate@5 = 0,80 (4/5 test sorusu)

107 kaynak; asistan taslağı etiketler; insan yanıt kalitesi ölçümü yok

Chunk yöntemi · 2 Ekim 2026

Sabit token ve cümle yönteminin ölçülen retrieval metrikleri eşit

170 kaynak, 5 dev sorusu; kalite artışı gösterilmedi

Chunk bütçesi · 3 Ekim 2026

Geçici dev önerisi 240/80; kanıt kapsamı@5 24/24, 240/40'ta 23/24

252 kaynak, 24 dev sorusu, 7 ayar; taslak etiketler, final test açılmadı

Finansal baseline · 2 Ekim 2026

1/7/30 gün modellerinin hiçbiri baseline Brier'ı geçemedi; üçü de reddedildi

7.400 tarihsel satır; ayrı kalibrasyon ve final holdout; model aktifleştirilmedi

Chunk bütçesi deneyinde 240/0 da 24/24 kanıt buldu; donmuş seçim kuralında 240/80, nDCG aşamasında öne çıktı. Bootstrap fark aralığı sıfırı içerir. Etiketler insan incelemesi beklediği ve ürünün k=8 kesimi henüz ölçülmediği için ürün varsayılanı 240/40 korunur. Bu farklı korpus ve sorgu kümelerinin skorları doğrudan karşılaştırılmaz. Deney dizini protokollere ve ham sonuçlara yönlendirir.

Finansal eğitimde erken dönemde purged walk-forward model seçimi, sonraki ayrı dönemde kalibratör fit'i ve son kronolojik holdout'ta değerlendirme vardır. Tarih grupları birlikte kalır; ileri getiri ufku sınırlara değen/aşan örnekler çıkarılır. Aynı holdout üzerinde yeniden ayar seçimi yapılırsa yeni bir final dönem gerekir.

Mülakatta gösterim

Rehber → Nasıl Çalışır? → Mülakat modu üzerinden mimari kutularını veya ok etiketlerini açın; seçilen adımı laboratuvarda inceleyin. Chunk sınırları ve overlap, embedding koordinatları, dense/BM25 sıraları, RRF katkıları ve kaynaklı prompt gösterilir. “Boyutu nasıl seçiyoruz?” paneli kaydedilmiş deneyi açar; bir ayarı seçip kurgu belgedeki sınırlarını görebilirsiniz. Panel ürün ayarlarını değiştirmez.

910 tokenlık öğretim belgesinin tokenizer çıktıları, embedding'leri ve retrieval sıraları gerçek hesaplamalardır; kayıtlı 240/40 indekslerini kullanırlar. Diğer bütçeler chunk laboratuvarını değiştirir. Reranker sırası ve örnek yanıt öğretim için yazılmıştır; tur canlı model/benchmark çağrısı yapmaz. Sunum düğmesi sabittir; hareket azaltma ve WebGL olmadığında metin görünümü desteklenir.

Sık kullanılan CLI komutları

uv run cdr snapshot bitcoin
uv run cdr deep-research bitcoin --platform claude --json
uv run cdr search "ETF akışları" --coin bitcoin --json
uv run cdr ask "BTC likidasyon riski nedir?" --coin bitcoin --json
uv run cdr rag-reindex --strategy sentence --chunk-tokens 240 --overlap-tokens 40
uv run cdr rag-eval data/rag-evaluation.jsonl --split dev --retrieval hybrid --json
uv run cdr rag-chunk-tune data/rag-chunk-dev.jsonl --output data/chunk-selection.json
uv run cdr rag-answer-eval data/rag-answers.jsonl --split test --json
uv run cdr learning-fill
uv run cdr ml-train --source backfill --features base --json
uv run cdr ml-eval --horizon 7
uv run cdr mcp

data/rag-*.jsonl dosyaları kendi arşiviniz için hazırlayacağınız etiketli veri setleridir; klonla birlikte gelmez. Şema, dev/test ayrımı, rag-chunk-rescore ve diğer örnekler: RAG benchmark rehberi. Bütün komutlar için uv run cdr --help. Docker içinde örnek: docker compose run --rm app cdr snapshot bitcoin.

MCP bağlantısı

MCP istemcinizin stdio sunucu yapılandırmasına ekleyin:

{
  "mcpServers": {
    "crypto-deep-research": {
      "command": "uv",
      "args": ["--directory", "/TAM/YOL/crypto-deep-research", "run", "cdr", "mcp"]
    }
  }
}

12 araç: list_analyses, list_research_items, resolve_coin, get_market_snapshot, run_analysis, get_price_chart, deep_research, search_context, list_reports, get_report, get_run, get_prompt. İstemcinin MCP ayar ekranı/yolu istemciye göre değişir.

Yapılandırma

Başlangıç şablonu .env.example; anahtarlar opsiyoneldir.

Değişken

Varsayılan / görev

CDR_DATA_DIR / CDR_STATE_DIR

data / belirtilmezse veri dizini; raporlar / SQLite ve vektörler

CDR_EMBEDDING_MODEL / CDR_EMBEDDINGS_ENABLED

intfloat/multilingual-e5-large / true

CDR_RAG_CHUNK_STRATEGY

sentence; token sabit pencere baseline

CDR_RAG_CHUNK_TOKENS / CDR_RAG_CHUNK_OVERLAP_TOKENS

240 / 40; overlap bütçeden küçük olmalı

CDR_RAG_RERANKER_MODEL

Boş: kapalı; modelin dil/lisans kapsamını kontrol edin

CDR_OPENROUTER_API_KEY / CDR_OPENROUTER_MODEL

Anahtar boş; seçili model openrouter/auto; RAG yanıtı, prompt çalıştırma ve çeviri

CDR_WATCHLIST_ENABLED / CDR_WATCHLIST_SEED

true / true; otomatik takip ve ilk coin listesi

CDR_LEARNING_ENABLED

true; özellik ve ileri getiri kaydı

CDR_TELEGRAM_TOKEN / CDR_TELEGRAM_CHAT_ID

Bot / opsiyonel bildirim hedefi

CoinGecko, Coinalyze, CryptoPanic, Etherscan ve FRED anahtarları ilgili kaynakları genişletir. Ücretsiz sağlayıcılarda kota, erişim veya kapsam değişebilir; eksik sonuçlar arayüzde veri durumu olarak raporlanır. Anahtarsız likidasyon seviyeleri model tahminidir, ölçülmüş likidasyon geçmişi değildir.

Chunk/model ayarı değişince tam kaynaklardan rag-reindex gerekir. CLI override yalnız o indekslemeyi etkiler; yeni ingestion için .env ile aynı ayarı kullanın ve sunucuyu yeniden başlatın. Yeniden indeksleme sırasında araştırma ingestion'ını durdurun.

Geliştirme ve dokümanlar

uv sync --frozen --extra dev
npm --prefix web ci
make check

make check: Ruff + Python testleri + web testleri + production build. CI ve Dependabot auto-merge iş akışları şu an GitHub'da manuel kapalıdır; doğrulama yerelde yapılır. Dependabot güncelleme önerileri açıktır.

Lisans

MIT. Harici modeller ve veri kaynaklarının kendi lisans/koşulları ayrıca geçerlidir.

Available Tools

10 tools
deep_researchC

66 maddelik arastirmayi calistirir; skor, olasilik, rapor ve prompt uretir.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYes
platformNogeneric
timeframeNo1d
lookback_daysNo
include_promptNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It does disclose the artifacts produced (score, probability, report, prompt), which is useful, but says nothing about runtime, cost, permissions, or whether the operation has side effects on stored data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with the action and its outputs front-loaded and no filler. It is efficient, though the brevity shades into under-specification rather than true conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, but for a 5-parameter, unannotated tool the description leaves parameter meaning, usage context, and behavioral traits almost entirely undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 5 parameters, so the description must compensate and largely does not. It never explains coin, platform, timeframe, or lookback_days; only the word 'prompt' loosely hints at include_prompt.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete verb ('calistirir' / runs) and resource (a 66-item research) and lists its outputs (score, probability, report, prompt). However, '66 maddelik arastirma' is too vague to tell the agent what domain this covers, and it gives no differentiation from the sibling run_analysis, leaving overlap unresolved.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as run_analysis or list_analyses. The agent must infer the intended context entirely on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_market_snapshotC

Anlik fiyat, piyasa degeri, ATH/ATL mesafesi ve degisimleri dondurur.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure, and it only lists returned data fields. It says nothing about data freshness/latency (is the 'current price' real-time or cached?), whether it requires authentication, rate limits, or what happens for an unknown coin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense sentence that front-loads the returned fields with no filler or repetition. It is appropriately sized, though the field enumeration makes the purpose read like a return-value list rather than a task statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be re-explained — yet the description spends its only sentence doing exactly that. For a simple one-parameter read tool the definition is adequate, but the coin identifier format and whether data is live remain unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single required 'coin' parameter has 0% schema description coverage and the description never mentions it at all. It does not clarify whether coin expects a ticker symbol, an internal ID, or a name — exactly the ambiguity the description should resolve, especially given the sibling resolve_coin exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('dondurur' = returns) and enumerates the exact resource contents: current price, market cap, ATH/ATL distance and changes. That is far more informative than the bare tool name, though it never distinguishes this tool from siblings like run_analysis or get_report, which likely also surface market data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this versus alternatives, no prerequisites, and no scoping context relative to the other nine market/analysis tools. An agent must infer usage entirely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_reportC

Rapor adiyla markdown icerigini dondurur.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses the return payload (markdown content) but says nothing about error behavior for unknown names, permissions, or whether results are cached or live.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with the action and result front-loaded and no filler. It is efficient, though it is written in a different language than the sibling tool names, which slightly hurts scanability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no further explanation. For a simple one-parameter getter this is nearly adequate, but with no annotations the description still omits failure modes and lookup semantics for the name.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does clarify that the sole 'name' parameter refers to the report name ("Rapor adiyla"), which adds meaning beyond the bare schema, but gives no format, case, or exactness details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it returns ("dondurur") the markdown content of a report identified by its name. This is clear and non-tautological, but it does not distinguish the tool from the obvious sibling list_reports, which an agent must infer on its own.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as list_reports or get_run. The agent is left to infer that this fetches a single report's content while list_reports enumerates them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_runC

Kosu detaylarini (66 madde sonuclari dahil) dondurur.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It does reveal that the payload includes 66-item results, which is useful, but says nothing about read-only safety, errors for missing runs, permissions, or size/latency characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence with no filler, and the core action-plus-content statement is front-loaded. It is efficient, though extremely short given the gaps elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because an output schema exists, the description does not need to enumerate return fields, and it adds a helpful note about the 66-item results. However, with no annotations and an undocumented run_id, the definition is only minimally sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the single required parameter run_id has no title, description, or example. The description only implicitly ties itself to a 'kosu' (run) and never explains the identifier's format or provenance, leaving a critical input undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a clear verb ('dondurur' = returns) and resource ('kosu detaylari' = run details), and adds scope by noting the 66-item results are included. It does not differentiate this tool from the near-identical sibling get_report, so an agent must guess which one to call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool, when not to, or which sibling (get_report, list_analyses, run_analysis) it should be preferred over. The name 'get_run' implies retrieval of a single run, but nothing in the text confirms or constrains that.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_analysesC

Kullanilabilir analiz anahtarlarini listeler.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'Listeler' implies a safe read, but nothing is said about ordering, whether the list is exhaustive, or whether keys are stable identifiers. With an output schema present, return-format disclosure is not required, but the behavioral profile is still thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no waste, and the action is front-loaded. It is terse but not padded, so it earns its brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless tool with a full output schema, the description is minimally adequate: it says what is returned without needing to describe the shape. It still omits the crucial context of what the returned keys are used for (e.g., as input to run_analysis), which is the main thing an agent needs to act on the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, which is the baseline-4 case. The description correctly implies a no-argument enumeration, matching the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource ('lists available analysis keys'), which is more than a tautology. However, it offers no differentiation from siblings like list_reports, list_research_items, or list_analyses' natural partner run_analysis, so an agent cannot tell from the text alone why it would pick this over the other listers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this tool, no prerequisites, and no mention of alternatives. The agent must infer from context that these keys feed run_analysis.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_reportsC

Uretilmis raporlari listeler.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing. It does not say whether results are paginated, capped, ordered, or scoped to the caller, and it does not state permissions or side effects. 'Generated reports' hints at a read-only listing but never confirms it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no wasted words, but it is under-specified rather than genuinely concise. Nothing is front-loaded because there is only one clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required. Still, for a listing tool with an undocumented limit parameter, no annotations, and no usage context, the description leaves significant gaps an agent needs before invoking it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single 'limit' parameter, which has a default of 20 but no documented meaning in either schema or description. The description does not compensate by explaining what limit controls or its bounds.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (listeler = lists) and resource (uretilmis raporlar = generated reports), which is clearer than mere tautology. However, it offers no differentiation from siblings like list_analyses or list_research_items, leaving the agent to infer the boundary from names alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of alternatives, and no prerequisites or exclusions. The listing intent is weakly implied by 'listeler' but nothing tells the agent when this tool is preferable to get_report or the other list_* siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_research_itemsC

66 maddelik arastirma listesini dondurur.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, yet it only implies a fixed-size read (66 items). It does not state whether the call is read-only, whether results can be paginated, how the 66 items are ordered, or what authentication is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence that is front-loaded and free of filler. It is arguably over-terse, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value documentation is not required, and a zero-parameter list tool is simple. Still, the complete absence of annotations and of any when-to-use routing against three sibling list tools leaves a meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no parameter semantics to explain; baseline 4 applies. The description correctly implies no filtering arguments are accepted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a verb (dondurur/returns) and a resource (arastirma listesi/research list), so the basic action is clear. However, "66 maddelik" (66-item) adds a hard-coded count instead of defining scope, and nothing distinguishes it from siblings like list_analyses or list_reports, which are also list-shaped tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this tool versus list_analyses, list_reports, or deep_research. The agent is left to infer that this is the general research-listing entry point purely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_coinC

Sembol veya isimden coin kimligini (CoinGecko id) cozer.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It implies a read-only lookup but says nothing about ambiguity handling (e.g., multiple coins matching 'BTC'), error behavior for unknown queries, or rate limits against CoinGecko. This is a meaningful gap for a resolver whose whole job is mapping fuzzy input to a canonical id.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler, which is appropriate for a one-parameter lookup tool. It is efficient, though an additional clause about ambiguity or failure behavior would have earned its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is unnecessary. For a simple 1-param resolver, the definition is minimally viable but omits the ambiguity and not-found behavior that determines whether the agent can safely act on the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single 'query' parameter, so the description must compensate. It does add useful meaning by stating that the query accepts a symbol or a name, which is exactly the semantic the bare string-typed schema lacks. However, it gives no format examples or constraints on either input form.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: resolving a coin's identity (CoinGecko id) from either a symbol or a name. That is concrete and actionable. It does not differentiate itself from any sibling, though none of the listed siblings (list_analyses, get_market_snapshot, etc.) perform resolution, so the risk of confusion is low.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, no mention of prerequisites, and no indication of what to do when resolution is ambiguous or fails. The agent must infer the usage context entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_analysisC

Tek bir analizi calistirir (ornek: technical, liquidations, news, volumes, whales...).

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYes
analysisNotechnical
timeframeNo1d
lookback_daysNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so the description carries full behavioral burden. It says it runs an analysis but doesn't disclose execution side effects, expected latency, whether it's read-only, output format, or error behavior. Major gaps for a no-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single concise sentence with the key examples front-loaded. Efficient, though it could devote a clause to the required 'coin' parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists so return values needn't be explained, but with zero annotation coverage, zero schema description coverage, and only one of four parameters hinted at, the description is incomplete for a 4-param execution tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. The only parameter hint is the analysis-type examples ('technical, liquidations, news, volumes, whales'). The required 'coin', plus 'timeframe' and 'lookback_days', are entirely undocumented in the description, and no enum values are formally given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: runs a single analysis, with concrete examples of analysis types (technical, liquidations, news, volumes, whales). However it doesn't differentiate from siblings like list_analyses or deep_research explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance or alternatives. The word 'single' implicitly contrasts with a batch/list operation, but the agent gets no explicit direction on when to pick this over list_analyses or deep_research.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_contextC

Yerel RAG deposunda (haber, analiz, rapor) arama yapar.

ParametersJSON Schema
NameRequiredDescriptionDefault
kNo
coinNo
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about ranking, whether raw chunks or synthesized answers are returned, latency/cost, or any auth requirement. For a RAG retrieval tool whose behavior varies significantly between implementations, this is a substantial gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single efficient sentence with no padding, and the purpose is front-loaded. However, its brevity reflects under-specification rather than discipline, so it earns no more than an adequate mark.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. But with three undocumented parameters, no usage guidance, and no annotations, the definition is not sufficient for an agent to invoke this tool correctly in the presence of nine siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters (query, k, coin) have 0% schema description coverage and the description adds no meaning for any of them. In particular 'k' and 'coin' are opaque and entirely unexplained, leaving the caller unable to know that k is result count or that coin filters the corpus.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('arama yapar' / performs a search) and resource (the local RAG repository), with content types (news, analysis, report) narrowing the scope. This implicitly distinguishes it from sibling browse tools like list_reports or list_analyses, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no indication of when to prefer this search over deep_research, run_analysis, or the list_* siblings. The agent must infer that 'search' differs from 'list' on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updatesv0.1.0
    • First observeddeep_research
    • First observedget_market_snapshot
    • First observedget_report
    • First observedget_run
    • First observedlist_analyses
    • First observedlist_reports
    • First observedlist_research_items
    • First observedresolve_coin
    • First observedrun_analysis
    • First observedsearch_context

TDQS

B3.1/5.0

Scored across 10 tools

Disambiguation4/5

Most tools target distinct operations: resolving coins, snapshots, single analyses, full research runs, and report retrieval. Minor overlap exists between run_analysis (single analysis) and deep_research (66-item run), and between list_analyses and list_research_items, but descriptions clarify the distinction.

Naming Consistency4/5

Nearly all tools use a consistent verb_noun pattern: list_analyses, list_research_items, resolve_coin, get_market_snapshot, run_analysis, search_context, list_reports, get_report, get_run. Only deep_research breaks the pattern by omitting a verb prefix.

Tool Count5/5

Ten tools is well-scoped for a crypto deep-research server, covering discovery, execution, and retrieval without redundancy or bloat.

Completeness4/5

The surface covers discovery (list_analyses, list_research_items), execution (run_analysis, deep_research), and retrieval (list_reports, get_report, get_run) with supporting resolve_coin and search_context. Minor gaps like report deletion/export or batch multi-coin analysis are non-blocking.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP-compatible AI clients to access live crypto market data and AI-driven quantitative analysis, with structured outputs and full observability.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI tools to execute trades and fetch market data across six crypto exchanges via natural language or API, with dual Telegram and MCP interfaces.
    2
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables agents to access live crypto market data and execute risk-controlled paper trades through standardized MCP tool calls.
    -