kapmcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KAP_API_KEY | No | API key issued by MKK (required for KAP tools; also whitelist your IP with MKK) | |
| KAP_TIMEOUT | No | Timeout for KAP API requests in seconds | 30 |
| KAP_CACHE_TTL | No | Cache TTL in seconds for KAP responses | 600 |
| KAP_LOG_LEVEL | No | Log level; logs go to stderr only | |
| KAP_TEST_MODE | No | Set to 1 to use the test gateway (apigwdev.mkk.com.tr) | 0 |
| YAHOO_TIMEOUT | No | Timeout for Yahoo Finance requests in seconds | 45 |
| KAP_API_SECRET | No | Only for the MKK test gateway | |
| KAP_MAX_SCAN_PAGES | No | Hard cap on 50-item index windows one call may scan | 400 |
| KAP_MAX_CONCURRENCY | No | Maximum concurrent KAP requests | 4 |
| KAP_MAX_RESULT_CHARS | No | Hard cap on a single tool result (lists are truncated with a note) | 60000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_reference_codesA | Code tables used across tools: disclosure types/classes, member types, fund states/types, corporate-action types/statuses, normalised financial field names, ratio names, gateway fault codes. No network call. |
| kap_statusA | Configuration and connectivity check. Call first when other tools fail to tell a configuration problem (missing key, IP whitelist) from a data problem. |
| search_companiesA | Find KAP members (companies, funds' founders, brokers…) by ticker or name and get their
|
| get_companyA | Company profile from KAP: name, tickers, member type, paid-in/registered capital, ISINs,
plus shareholders / board / subsidiaries / sector / market / indices when KAP's memberDetail
payload contains them (sections KAP does not provide are returned as null with a
|
| search_disclosuresA | Search KAP disclosures by company, keywords, type/template and date range, newest first,
with cursor paging. Covers: latest disclosures, a company's disclosures over a period,
everything since an id (monitoring), topic hunts like 'sözleşme' or 'bedelsiz' across
companies (use query_scope='content' for subject/summary matching).
The KAP API only pages by index, so wide ranges scan many windows: check |
| get_disclosureA | One disclosure with normalised metadata (company, ticker, published_at, subject, summary, fiscal period, related tickers, attachments with ids, source_url) and, by default, the body as plain text plus structured data flattened to 'path: value' lines. |
| search_disclosure_dataA | Find matching fields inside a disclosure's structured data (financial statement line items, form fields) and return path/value pairs. Turkish-insensitive. Use to pull single figures from an official KAP financial report or form without reading the whole body. |
| get_blocked_disclosuresA | Disclosures KAP has withdrawn from public access (e.g. under KVKK) with the stated reason. Explains 'not found' results for specific ids. |
| get_disclosure_documentsA | List a disclosure's attachments (PDF/XLSX/…) with |
| get_document_textA | Extract text from a PDF/HTML/text attachment (in memory; nothing is stored). Binary
formats (xlsx, zip) and scanned PDFs return |
| search_documentsA | Find passages inside disclosure attachments and return short snippets with page numbers and source_url instead of whole documents. Use for 'what does the report say about X'. |
| get_financialsA | Income statement, balance sheet and cash flow in one normalised schema (revenue,
gross_profit, operating_profit, ebitda, net_income, total_assets, cash, financial_debt,
equity, operating/investing/financing cash flow …) with the source line/taxonomy name per
field and the reporting currency. Two sources: |
| get_metric_historyA | Time series of normalised financial metrics, oldest first, ready for tables and charts: {series: [{period: '2025Q1', revenue: …, net_income: …}]}. No charts are produced here. |
| get_financial_ratiosA | Deterministic ratios with the formula stated per item: margins, current/cash ratio, debt-to-equity, financial debt-to-equity, net debt (/EBITDA), interest coverage, ROA, ROE, asset turnover, equity ratio. Flow-based ratios on quarterly data use trailing-12-month sums. A ratio whose inputs are missing returns value null with a reason — never a guess. |
| get_growthA | Period-over-period change of one metric: current/previous period and value, absolute and percentage change (relative to |previous|, so loss→profit swings are signed correctly). Computed here, not by the model. |
| compare_financialsA | Side-by-side values of metrics and ratios for several companies in one call. Rows are returned in the order given, with currency per company — no ranking or judgement. |
| get_corporate_actionsA | Dividends, bonus/rights issues, capital changes, buybacks and general meetings for a company. Yahoo supplies exact ex-dates and per-share cash amounts; KAP supplies the disclosures, classified by a fixed title keyword table (type 'other' when unmatched). Amounts inside KAP bodies are not parsed — read the referenced disclosure. Optionally returns KAP process statuses for given reference ids. |
| get_company_newsA | News from Yahoo Finance's news module for a ticker or keyword: title, publisher, published_at, url, summary, source. No sentiment or interpretation is added. Coverage is mostly English wire/press; for Turkish primary sources use search_disclosures. |
| get_quoteA | Latest price data per symbol: last, previous close, change %, day and 52-week range, volume vs 3-month average, market cap, currency. Bad symbols return an error entry without failing the batch. Source: Yahoo Finance (delayed for BIST). |
| get_price_historyA | OHLCV candles with a computed summary (return, high/low, max drawdown, annualised volatility, average volume) and optional standard technical indicators — all numeric, chart-ready, no interpretation. |
| get_market_overviewA | Snapshot of BIST 100/30, bank index, USD/TRY, EUR/TRY, gold, Brent, S&P 500, DAX and VIX (last, change %, 52-week range). Source: Yahoo Finance. |
| get_price_reactionA | Daily closes, returns and volume around an event date, plus excess return versus BIST 100. Pure arithmetic on price data; whether the move was 'caused' by the event is not asserted. |
| get_analyst_estimatesA | Third-party analyst consensus as published on Yahoo Finance: buy/hold/sell counts, mean/ high/low targets, next earnings date, recent rating changes. Reported as data; the server issues no target or recommendation of its own. |
| get_company_timelineA | Chronological events for a company (newest first): KAP disclosures typed by KAP's own metadata (disclosure_type/class, subject), corporate actions (Yahoo ex-dates/splits) and Yahoo news. Each event has date, type, title, ids and source_url. No classification or summarisation beyond KAP's fields. |
| search_fundsA | Investment funds registered on KAP (identity, type, class, state, founder, KAP URL), or one fund's full detail when fund_id is given. Prices/returns are not in KAP — this is the registry. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| reference_codes_resource |
TDQS
Scored across 25 tools
Each tool has a clearly described output, and the disclosure/document/financial families are carefully separated by function. However, tools like get_financials, get_metric_history, and get_growth are close enough that an agent may need to read descriptions carefully before choosing.
Nearly every tool follows a clean get_ or search_ verb_noun pattern, making the API predictable. The only real outlier is kap_status, which breaks the verb_noun convention and prevents a perfect score.
25 tools is at the high end, but the server covers KAP disclosures, companies, funds, financials, corporate actions, price data, news, and analyst estimates, so most tools earn their place. It is a large surface, but not bloated for the breadth of the domain.
The read-only KAP and market-data domain is very well covered: disclosures, attachments, structured fields, financial statements, ratios, growth, price history, corporate actions, news, timeline, funds, and reference data are all present. Minor gaps remain around binary attachments and fund performance data, but these are documented and usually workaroundable.