KAP MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@KAP MCP ServerAFT fonunun Ağustos 2026 portföy dağılım raporunu ayrıştır"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
KAP MCP Server
Kurulum Agents için prompt
Aşağıdaki kaynaktaki KAP MCP sunucusunu kullandığım agente kur:
https://github.com/dubnium0/kap-mcp-server.git
Yalnızca kurulum ve bağlantı doğrulaması yap:
1. İçinde çalıştığın MCP istemcisini mevcut süreç, komutlar ve yapılandırma
dosyalarından belirle. Desteklenen istemciler Claude Code, Codex ve Hermes
Agent'tır. İstemciyi güvenilir biçimde belirleyemiyorsan yalnızca hangisini
kullandığımı sor; birden fazla istemciyi yapılandırma.
2. Repo bilgisayarda zaten varsa ve geçerli bir git checkout ise onu güvenle
yeniden kullan. Yoksa kullanıcıya ait kalıcı bir kurulum dizinine klonla.
Mevcut, ilişkisiz bir dizinin üzerine yazma ve repo adresini değiştirme.
3. Checkout kökünü mutlak yola çevir ve KAP_MCP_DIR olarak kullan. Bu dizinde
`pyproject.toml` bulunduğunu ve proje adının `kap-mcp` olduğunu doğrula.
4. Python 3.12+, uv ve git ön koşullarını kontrol et. uv eksikse işletim sistemine
uygun resmî uv kurulum yöntemini kullan. Python 3.12+ eksikse
`uv python install 3.12` kullan. Ardından KAP_MCP_DIR içinde `uv sync`
çalıştır.
5. Seçilen istemcide daha önce tanımlanmış `kap` MCP kaydını kontrol et. Aynı
kurulumu gösteren doğru kayıt varsa ikinci kayıt oluşturma; eski veya yanlış
kaydı güvenli biçimde güncelle.
6. Bağlantı sonrasında tool listesinin tam olarak şu 10 tool'u içerdiğini doğrula:
search_entities, get_entity, query_disclosures, get_disclosure,
get_disclosure_file, download_file, get_financials, get_fund_portfolio,
get_corporate_actions, get_expected_disclosures.
Klonlanan kaynak kodunu, testleri, README'yi, API belgelerini veya tool
sözleşmelerini değiştirme. Canlı KAP sorgusu çalıştırma ve dosya indirme.
Sonunda algılanan istemciyi, kurulum dizinini, kullanılan yapılandırma dosyasını,
çalıştırma komutunu ve doğrulanan tool sayısını kısaca bildir.
Resmî istemci belgeleri:
- [Claude Code MCP](https://code.claude.com/docs/en/mcp)
- [Codex MCP](https://developers.openai.com/codex/mcp)
- [Hermes Agent MCP](https://hermes-agent.nousresearch.com/docs/reference/mcp-config-reference)
Tool'lar
search_entities— şirket/fon/üye araması; akıllı arama farklı kod döndürürse fon kataloğunda büyük/küçük harf duyarsız kesin kod eşleşmesine geri düşer.get_entity— kesin varlık profili ve doğrulanmış bölümler.query_disclosures— şirket ve fon bildirimlerinin kısa, sayfalı listesi.get_disclosure— tek bildirimin tam gövdesi, ekleri ve revizyon metadata bilgisi.get_disclosure_file— dosya bağlantısı, metadata veya base64 içerik; diske yazmaz.download_file— izin verilen köke doğrulanmış dosya indirir.get_financials— IFRS/BDDK/sigorta metadata bilgili finansal tablolar.get_fund_portfolio— portföy PDF'sini bulur, doğrular, pozisyon ve toplamları ayrıştırır.get_corporate_actions— kurumsal işlem sorgusu.get_expected_disclosures— ileri tarihli bildirim takvimi.
Related MCP server: EdgarTools MCP
Örnek Senaryo: Portföy PDF’sini yapılandırılmış veriye dönüştürme
Kategori Türü: Sabit tarihsel | Zorluk Seviyesi: Zor
Çalışma Süresi: 156.62 saniye | Diyalog Adımı: 2 tur
1. Kullanıcı Sorgusu (User Query):
"AFT’nin Ağustos 2026 portföy dağılım raporunu ayrıştır. Tüm pozisyonları, varlık grubu toplamlarını ve fon portföy değerini getir."
2. Modelin Tetiklediği Araç Çağrısı (Tool Call) ve Parametreleri:
[
{
"adim": 1,
"arac": "get_fund_portfolio",
"argumanlar": {
"fund_code": "AFT",
"include_positions": true,
"include_totals": true,
"month": 8,
"year": 2026
}
}
]3. KAP MCP Sunucusundan Dönen Canlı Veri (Tool Response Snippet):
// [Adım 1] Araç: get_fund_portfolio
{
"fund": {
"code": "AFT",
"entity_id": "33E5FED7E77300EAE0530A4A622B2AEA",
"name": "AK PORTFÖY YENİ TEKNOLOJİLER YABANCI HİSSE SENEDİ FONU",
"entity_type": "fund",
"active": true,
"permalink": null,
"portfolio_company_id": null,
"portfolio_company": null,
"upst
4. Modelin Kullanıcıya Verdiği Nihai Yanıt (GLM-5.3 Assistant Response):
AFT – Ağustos 2026 Portföy Dağılım Raporu
Fon: AK PORTFÖY YENİ TEKNOLOJİLER YABANCI HİSSE SENEDİ FONU (AFT)
Dönem: Ağustos 2026 (Aylık Rapor)
Bildirim: 1657446 – Yayın: 02.09.2026 17:53 | Kaynak dosya: AFT_2026.08.pdf
Doğrulama: Hesaplanan toplam, bildirilen toplamla birebir tutuyor (fark: 0,00 TL) ✅
Fon Portföy Değeri ve Varlık Grubu Toplamları
Varlık Grubu | Değer (TL) | Portföy Payı |
Yabancı Hisse Senetleri | 18.945.983.849,02 | %98,46 |
Ters Repo | 2.002.025,20 | %0,01 |
Para Piyasası | 380.400,82 | %0,00 |
Diğer | 292.777.771,32 | %1,52 |
Fon Portföy Değeri | 19.241.144.046,36 | %100,00 |
Döviz (hazır değer) | 4.304.735,44 | Portföy değerinin dışında |
Not: Döviz hazır değerleri (4.304.735,44 TL) pozisyonlarda gösterilmiş ancak bildirilen fon portföy değerinin dışında tutulmuştur.
Hisse Senedi Pozisyonları (28 adet, USD bazlı)
Menkul Kıymet | Nominal | Fiyat (USD) | Değer (TL) | % Fon |
MSFT US | 78.366 | 509,31 | 1.922.768.944,59 | 10,03 |
NVDA US | 172.863 | 218,85 | 1.822.492.763,69 | 9,51 |
MU US | 38.784 | 940,86 | 1.757.902.643,35 | 9,17 |
GOOGL US | 75.786 | 340,30 | 1.242.419.189,18 | 6,48 |
AMZN US | 87.355 | 261,61 | 1.100.929.032,70 | 5,74 |
SMSN LI | 4.385 | 4.698,33 | 992.499.578,30 | 5,18 |
SKHY US | 125.796 | 163,27 | 989.442.225,56 | 5,16 |
BABA US | 159.621 | 115,76 | 890.155.257,43 | 4,64 |
AVGO US | 46.535 | 368,97 | 827.157.077,91 | 4,31 |
TSM US | 38.060 | 420,88 | 771.692.516,29 | 4,03 |
NOW US | 82.285 | 145,00 | 574.785.616,21 | 3,00 |
WDC US | 25.787 | 453,52 | 563.396.935,10 | 2,94 |
AMD US | 23.739 | 469,78 | 537.247.198,90 | 2,80 |
META US | 17.555 | 573,07 | 484.647.217,35 | 2,53 |
SNDK US | 6.367 | 1.517,17 | 465.357.065,55 | 2,43 |
INTC US | 103.255 | 90,40 | 449.672.922,97 | 2,35 |
STX US | 8.970 | 821,07 | 354.805.091,33 | 1,85 |
AMGN US | 17.050 | 429,37 | 352.673.880,36 | 1,84 |
LRCX US | 23.300 | 300,90 | 337.749.974,27 | 1,76 |
BIDU US | 72.403 | 97,21 | 339.066.372,83 | 1,77 |
KLAC US | 34.705 | 175,70 | 293.752.131,15 | 1,53 |
CRM US | 24.122 | 257,84 | 299.626.914,12 | 1,56 |
CRWV US | 157.009 | 83,12 | 628.705.555,46 | 3,28 |
AMAT US | 9.760 | 460,41 | 216.477.010,28 | 1,13 |
ASML US | 2.356 | 1.700,63 | 193.020.011,85 | 1,01 |
ADI US | 10.919 | 365,13 | 192.064.720,67 | 1,00 |
TXN US | 13.923 | 261,31 | 175.269.387,48 | 0,91 |
MRVL US | 16.582 | 213,07 | 170.206.614,14 | 0,89 |
Diğer Pozisyonlar
Ters Repo (toplam 2.002.025,20 TL):
Menkul Kıymet | Nominal | Değer (TL) |
TRT181028T14 | 81.919.363 | 1.001.012,60 |
TRT181028T14 | 81.919.363 | 1.001.012,60 |
Para Piyasası (toplam 380.400,82 TL):
Menkul Kıymet | Nominal | Değer (TL) |
TPP | 247.453 | 380.400,82 |
Diğer (toplam 292.777.771,32 TL):
Menkul Kıymet | Nominal | Fiyat (TL) | Değer (TL) |
ALE | 20.454.549 | 13,651342 | 279.232.043,85 |
EML-AK | 6.163.404 | 1,267356 | 7.811.227,04 |
PUR | 543.468 | 10,551680 | 5.734.500,43 |
Döviz (portföy değeri dışında, toplam 4.304.735,44 TL):
Döviz | Tutar | Kur (TL) | Değer (TL) |
USD | 86.630,96 | 48,1745 | 4.173.403,18 |
EUR | 2.350,26 | 55,8652 | 131.297,74 |
GBP | 0,53 | 65,1261 | 34,52 |
Öne Çıkanlar
En büyük 3 pozisyon: MSFT (%10,03), NVDA (%9,51) ve MU (%9,17) — birlikte fonun yaklaşık %28,7'sini oluşturuyor.
Fon, adına uygun şekilde %98,5'e yakın oranda ABD merkezli yabancı teknoloji hisselerine yatırım yapmış durumda.
Nakit benzeri varlıklar (ters repo + para piyasası) çok küçük bir pay tutuyor (~%0,01).
Hatalar
Tool hataları şu yapıdadır:
{"ok":false,"error":{"code":"entity_not_found","message":"Varlık bulunamadı.","retryable":false,"context":{}}}Kodlar: validation_error, entity_not_found, entity_ambiguous, disclosure_not_found, attachment_not_found, upstream_changed, upstream_unavailable, unsupported_document, parse_failed, validation_failed, unsafe_path, file_exists.
Available Tools
10 toolsdownload_fileC
KAP dosyasını izin verilen yerel kök içine güvenle indirir.
| Name | Required | Description | Default |
|---|---|---|---|
| overwrite | No | ||
| output_name | No | ||
| attachment_id | No | ||
| file_selector | No | primary_attachment | |
| disclosure_index | No | ||
| output_directory | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does disclose two useful behaviors: the operation writes to disk (download semantics) and is sandboxed to an allowed local root. It says nothing about overwrite behavior, permission requirements, or what happens when the target exists, which matters for a 6-param write tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the constraint is stated compactly. It is efficient, though its brevity is partly a symptom of under-specification rather than disciplined concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter, zero-required, unannotated tool with 0% schema coverage, the description is far too thin. The existence of an output schema excuses it from describing return values, but it should at minimum explain the selectors and the overwrite/output-directory interaction.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across six parameters (overwrite, output_name, attachment_id, file_selector, disclosure_index, output_directory), and the description explains none of them. The implicit reference to an allowed local root vaguely maps to output_directory but provides no syntax or default semantics for any parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (indirir/downloads) and resource (KAP dosyası/KAP file), and adds the safety constraint of writing into an allowed local root. However, it gives no differentiation from siblings like get_disclosure_file, so an agent cannot easily tell when this file-fetching tool is preferred over the read-oriented siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, no prerequisites, and no mention of alternatives such as get_disclosure_file. The agent must infer usage entirely from the name and the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_corporate_actionsC
Temettü, sermaye işlemleri, genel kurul ve diğer hak kullanımlarını getirir.
| Name | Required | Description | Default |
|---|---|---|---|
| latest | No | ||
| to_date | No | ||
| from_date | No | ||
| action_types | No | ||
| company_codes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. 'Getirir' implies a read operation, but the description discloses nothing about permissions, filtering behavior, rate limits, or how the retrieval works. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. It is appropriately brief but arguably too terse given the tool's five undocumented parameters; still, there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has five parameters and no annotations, yet the description provides no usage guidance or parameter documentation. An output schema exists, so return values need not be described, but the gaps in usage and parameter semantics leave the definition incomplete for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has five parameters at 0% description coverage, so the description must compensate. It enumerates the domain categories (dividends, capital transactions, general assembly, rights) but does not document any parameter such as latest, to_date, from_date, action_types, or company_codes. Partial domain context only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific retrieval verb ('getirir') and enumerates the resource types (dividends, capital transactions, general assembly, rights exercises), making the tool's domain clear. However, it does not explicitly differentiate itself from siblings like get_disclosure or get_financials, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states only what the tool does; it gives no when-to-use guidance, no prerequisites, and no alternatives to consider. No routing information for an agent choosing among the sibling tools is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_disclosureC
Tek bildirimin içeriğini, eklerini ve revizyon ilişkisini getirir.
| Name | Required | Description | Default |
|---|---|---|---|
| content_format | No | structured | |
| disclosure_index | Yes | ||
| include_attachments | No | ||
| include_revision_chain | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden, yet it only enumerates returned data. It says nothing about whether the call is read-only, what happens if the disclosure_index is invalid, permission requirements, or size/rate behavior of attachment retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler — the returned components come before any caveats and every word earns its place. It is efficient, though it could have used the same sentence budget to add differentiating context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the return shape need not be spelled out. However, with no annotations and 0% schema coverage across four parameters, the description is only barely sufficient for correct invocation, particularly for content_format and disclosure_index.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and no parameter is described in the schema, so the description must compensate. It implicitly maps to include_attachments and include_revision_chain ("eklerini ve revizyon ilişkisini") and content_format, but never explains disclosure_index or the format/boolean semantics, leaving meaningful gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The Turkish description states a clear verb ("getirir") and resource ("bildirim" = disclosure) scoped to a single item ("tek bildirim"), plus what it returns: content, attachments, and revision relationship. It maps well to its own params, though it never names a sibling such as query_disclosures or get_disclosure_file to sharpen the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative-tool guidance is provided. The word "tek" (single) faintly implies this is for one disclosure versus a list query, but the agent is left to infer that from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_disclosure_fileA
Bildirim dosyasının bağlantısını, metadata bilgisini veya doğrulanmış içeriğini getirir; diske yazmaz.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | link | |
| attachment_id | No | ||
| file_selector | No | primary_attachment | |
| disclosure_index | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose one meaningful behavioral trait: it does not write to disk, which contrasts with download_file. Beyond that it is silent on authentication needs, whether remote content is fetched, rate limits, or failure behavior, so substantial behavioral ground is uncovered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that leads with the purpose and closes with the key side-effect disclaimer; no filler, nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 structure need not be explained. But four undocumented parameters at 0% schema coverage plus the absence of annotations means the definition leaves real gaps an agent must guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across four parameters (disclosure_index, action, attachment_id, file_selector). The description hints at the 'action' modes (link / metadata / verified content) but never maps them to parameter values and says nothing about attachment_id, file_selector defaults, or what the disclosure_index refers to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb ('getirir') with a specific resource ('bildirim dosyası') and enumerates the three retrievable artifacts: link, metadata, and verified content. It also distinguishes itself from the file-download sibling by stating it does not write to disk, so an agent can separate it from download_file without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the agent can infer it should call this when it wants a link, metadata, or verified content instead of a downloaded file. However, no sibling tool (download_file, get_disclosure) is named and no explicit when/when-not condition is given, leaving the choice to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_entityB
Kesin şirket veya fon profilini getirir; belirsiz eşleşmeyi seçmez.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | ||
| sections | No | ||
| entity_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that ambiguous matches are not selected (a fail-rather-than-guess behavior), but says nothing about permissions, error behavior, or what happens with the 'sections' parameter. The ambiguity note is genuinely valuable but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the scope constraint front-loaded and no filler. It is efficient, though arguably too terse given the undocumented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no annotations, three undocumented parameters, and zero required fields, the definition leaves too much unresolved for an agent to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Three parameters with 0% schema description coverage, yet the description never mentions code, sections, or entity_id. It gives no indication of what identifiers are accepted, what 'sections' controls, or why nothing is required, so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: it retrieves the exact company or fund profile. It distinguishes the entity profile from siblings like get_financials, get_fund_portfolio, and get_disclosure, but does not name an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Belirsiz eşleşmeyi seçmez' implies the tool requires an unambiguous identifier and will not resolve fuzzy matches, which hints that search_entities should be used when ambiguous. However, it never names that alternative or states prerequisites, leaving the routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_expected_disclosuresC
Şirket ve fonların ileri tarihli beklenen bildirim takvimini getirir.
| Name | Required | Description | Default |
|---|---|---|---|
| to_date | Yes | ||
| from_date | Yes | ||
| entity_codes | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose one behavioral trait—that results are future-dated expected/scheduled items rather than confirmed ones—but says nothing about permissions, data coverage, or whether results are paginated or bounded.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, efficiently front-loaded sentence with no filler. It is well sized, though its brevity is also the source of the documentation gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, with three required, undescribed parameters and no annotations, the description leaves meaningful gaps around what the codes and dates should look like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three params (entity_codes, from_date, to_date) have 0% schema description coverage. The description only loosely implies entities ('şirket ve fonların') and a date horizon ('ileri tarihli'), giving no format hints for the codes or the date range syntax, so the coverage gap is largely unaddressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('getirir' = retrieves) and a precise resource ('beklenen bildirim takvimi' = expected disclosure calendar) with a scope qualifier ('ileri tarihli' = future-dated). This implicitly separates it from siblings like get_disclosure/query_disclosures (actual past disclosures), though it does not name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no mention of alternatives such as get_disclosure or query_disclosures. The phrase 'ileri tarihli' (future-dated) hints at usage for upcoming scheduled disclosures, but the agent must infer the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financialsC
Şirket finansal tablolarını IFRS, BDDK veya sigorta metadata bilgisiyle getirir.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | full | |
| periods | Yes | ||
| company_code | Yes | ||
| consolidation | No | prefer_consolidated | |
| include_ratios | No | ||
| statement_types | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 implies a read operation but discloses nothing about permissions, pagination, rate limits, latency, or how the IFRS/BDDK/insurance modes differ in behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. However, its brevity crosses into under-specification for a 6-parameter tool, so it is efficient rather than optimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 described. But for a 6-parameter tool with 0% parameter coverage, no annotations, and no usage guidance, the description is far too thin to let an agent invoke it correctly across its IFRS/BDDK/insurance variants.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 6 parameters, yet the description adds almost no parameter meaning. The mention of IFRS/BDDK/insurance metadata loosely hints at a mode-like distinction but never maps to 'mode', 'consolidation', 'statement_types', or the structure of 'periods'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('getirir' / retrieves) and resource ('şirket finansal tabloları' / company financial statements), and scopes it with the frameworks covered (IFRS, BDDK, insurance metadata). It is clear what the tool returns, though it does not explicitly differentiate itself from siblings such as get_disclosure or query_disclosures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the many sibling disclosure/financial tools. No alternatives, preconditions, or exclusions are mentioned, leaving the agent to infer routing 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_fund_portfolioC
Fon portföy PDF'sini bulur, doğrular ve yapılandırılmış pozisyonlara dönüştürür.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| month | No | ||
| latest | No | ||
| periods | No | ||
| fund_code | Yes | ||
| include_totals | No | ||
| include_positions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full behavioral burden. It implies a find-validate-convert pipeline, which is useful, but doesn't disclose permissions needed, failure modes, whether the PDF is fetched from the web, rate limits, or error handling. For a tool that likely hits external or internal resources, this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no filler, front-loaded with the core action. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With seven parameters, 0% schema coverage, no annotations, and no output-schema-visible help from the description, it's incomplete. The existence of an output schema helps, but parameter and behavioral coverage are missing. An agent would struggle to call this correctly without opening the full schema and guessing parameter roles.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no parameter information. Seven parameters exist (year, month, latest, periods, fund_code, include_totals, include_positions), and the description mentions none of them. With low coverage, the description must compensate; it doesn't.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource and, somewhat unusually, the multi-step flow: 'Fon portföy PDF'sini bulur, doğrular ve yapılandırılmış pozisyonlara dönüştürür' (finds the fund portfolio PDF, validates it, converts to structured positions). This clearly conveys what the tool does. It doesn't differentiate from siblings like download_file, though that's arguably handled by the fact that this tool returns structured data, not just a file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance or named alternatives. An agent must infer usage context from the name and sibling set. No mention of how this differs from download_file (which might fetch similar PDFs).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_disclosuresC
Şirket ve fon bildirimlerini tek kısa sonuç sözleşmesinde sorgular.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| limit | No | ||
| month | No | ||
| cursor | No | ||
| latest | No | ||
| period | No | ||
| to_date | No | ||
| subjects | No | ||
| from_date | No | ||
| entity_codes | No | ||
| entity_types | No | ||
| report_types | No | ||
| include_files | No | ||
| has_attachments | No | ||
| latest_revision_only | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 delivers almost nothing: no mention of pagination (cursor/limit), default filtering behavior (latest_revision_only defaults true), permissions, or what 'tek kısa sonuç sözleşmesi' actually constrains. The single clause hints at a compact result shape but does not disclose operationally relevant traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no filler, which is structurally clean. However, the brevity tips into under-specification for a 15-parameter tool, so the concision is not earning its place against the information the agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 described, but that is the only burden lifted. With 15 parameters, zero schema coverage, no annotations, and no usage guidance, the description is far from complete enough for an agent to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 15 parameters have 0% schema description coverage, so the description must supply their meaning and it supplies none. The reference to 'company and fund' loosely gestures at the entity-related filters (entity_codes, entity_types), but date, period, subject, report-type, cursor, and attachment parameters are entirely undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The Turkish description states a specific verb ('sorgular' = queries) and resource ('Şirket ve fon bildirimleri' = company and fund disclosures), so the core purpose is unambiguous. However, it offers no differentiation from siblings such as get_disclosure, get_expected_disclosures, or get_corporate_actions, so an agent cannot tell from the text alone why it would pick this tool over those.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no named alternatives. Given the large sibling set covering overlapping disclosure concepts, the absence of any routing advice is a meaningful gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_entitiesC
Şirket, fon, portföy yönetim şirketi ve diğer KAP üyelerini arar.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| active_only | No | ||
| entity_types | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 indicate whether matching is exact/prefix/fuzzy, whether the search is case- or diacritic-insensitive, how pagination works with limit, or what active_only and entity_types actually filter. 'Search' implies a read, but that is the full extent of the behavioral signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. It is appropriately sized for a one-line description, though its brevity reflects under-specification rather than economy of expression.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, 0% schema coverage, and no annotations, the definition is too thin for the tool's complexity. An output schema exists so return values need not be described, but input semantics (query matching behavior, entity_types values, active_only default) remain entirely undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 4 parameters, so the description must compensate and does not. It broadly hints at the entity_types domain by listing companies, funds, and portfolio management companies, but gives no accepted values, no meaning for active_only, and no note that limit defaults to 20.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (arar / searches) and enumerates the resource domain: companies, funds, portfolio management companies, and other KAP members. This is enough to distinguish it from the singular sibling get_entity, though the plural form already implies the distinction and the description never names any sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no mention of alternatives such as get_entity for a known identifier, and no statement of prerequisites. The only usage signal is the word 'search' versus the sibling names, which the agent must infer 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.
10 tool updates
v0.1.0- First observed
download_file - First observed
get_corporate_actions - First observed
get_disclosure - First observed
get_disclosure_file - First observed
get_entity - First observed
get_expected_disclosures - First observed
get_financials - First observed
get_fund_portfolio - First observed
query_disclosures - First observed
search_entities
TDQS
Scored across 10 tools
Most tools have clearly distinct resources and actions (e.g., get_entity vs search_entities, get_financials vs get_fund_portfolio). However, get_disclosure, get_disclosure_file, download_file, and query_disclosures all revolve around accessing disclosure data, and an agent could momentarily confuse query/list vs single retrieval vs file handling. Descriptions help clarify boundaries, but the overlap prevents a perfect score.
All tools use consistent snake_case with a clear verb_noun pattern (get_*, search_*, query_*, download_*). The naming is predictable and follows the same convention throughout the set.
The server has 10 tools, which is well within the ideal range for a domain-specific data retrieval server. Each tool targets a distinct data need (entity search, disclosures, financials, portfolios, corporate actions, calendar), so no tool feels redundant or missing.
The tool surface covers core KAP data workflows: entity lookup, disclosure retrieval and search, financial statements, fund portfolios, corporate actions, expected disclosures, and file download. Minor gaps might include explicit tools for listing disclosure categories or filtering by broader date ranges, but the core read-only lifecycle is well covered.
Related MCP Connectors
Primary-source SEC filing intelligence and financial/disclosure reconciliation for AI agents.
SEC filings and financial data for AI agents: 59 tools for statements, valuation and supply chains.
SEC EDGAR financials, insider trading, and economic data for AI agents. US GAAP + IFRS.
Evidence-backed capital-change intelligence and sourced financial data for AI agents
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to query Korean listed companies' financial statements, public disclosures, executive information, and shareholder structures in real-time using the DART API.2-
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to download, parse, and analyze SEC EDGAR filings, including 10-K/Q reports, XBRL financial statements, and insider trading data. It provides structured access to institutional holdings, corporate events, and financial facts for comprehensive investment research.10MIT
- AlicenseAqualityBmaintenanceProvides access to SEC EDGAR financial data, enabling AI agents to fetch company filings, financial metrics, and narrative sections. It supports natural-language metric searching and extracts structured data from 10-K, 10-Q, and 8-K reports.652 PyPIMIT

Signal8 MCP Serverofficial
AlicenseAqualityDmaintenanceProvides AI agents with direct access to SEC filing intelligence, company fundamentals, dilution risk scoring, and cross-company analytics for financial research.101434 npm1MIT