# Canli Markets (npm · canli-markets-mcp)

Finance from the sources: SEC and ESEF filings, fact checks, central-bank rates, odds, DeFi, macro.

- Trust score: 79/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-18

## Components

- npm · `canli-markets-mcp`: 79/100 (this document), [markdown](https://verifymcp.io/servers/arhancanli-canli-markets-mcp/canli-markets-mcp.md), [page](https://verifymcp.io/servers/arhancanli-canli-markets-mcp/canli-markets-mcp)

## Channel facts

- Registry: `npm`
- Package: `canli-markets-mcp`
- Version: `0.5.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-18.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 0 of 4 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 100/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to arhancanli/canlicapital).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 2 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 62/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 8820 tokens (~205/item across 43 items; 43 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 13/100
  - Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 99/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 97% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "executive_pay" implies "pay" and declares readOnlyHint instead, contradicting what its own name says it does.
  - An AI judge read all 44 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Canli Markets MCP server?

Canli Markets runs locally as an npm package, launched with npx -y canli-markets-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add arhancanli-canli-markets-mcp -- npx -y canli-markets-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "arhancanli-canli-markets-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "canli-markets-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "arhancanli-canli-markets-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "canli-markets-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add arhancanli-canli-markets-mcp -- npx -y canli-markets-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "arhancanli-canli-markets-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "canli-markets-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add arhancanli-canli-markets-mcp --command npx --arg -y --arg canli-markets-mcp
```

### Hermes

```yaml
mcp_servers:
  arhancanli-canli-markets-mcp:
    command: "npx"
    args: ["-y", "canli-markets-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "arhancanli-canli-markets-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "canli-markets-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add arhancanli-canli-markets-mcp -t stdio -c npx -a -y canli-markets-mcp
```

### Other

```json
{
  "mcpServers": {
    "arhancanli-canli-markets-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "canli-markets-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-16 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-15 (score 78, 0)

- [security regression] Known CVEs: pass → unverified
- [security regression] Tool safety: pass → unverified
- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional regression] Schema quality: 6816 → 8820
- [functional regression] Dependency health: 1.00 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Stability: unverified → 0.03
- [functional] Package version: 0.3.0 → 0.5.0
- [functional] Package version: 0.3.0 → 0.4.0

### 2026-10-14 (score 78, +28)

- [security improvement] Injection markers: unverified → pass
- [security] First check of Judged manipulation: pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] MCP protocol: unverified → pass
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 96
- [functional] First check of Schema quality: fail
- [functional] First check of Destructive annotations: 0
- [functional] First check of Schema quality: good
- [functional] First check of Tool coverage: 100

### 2026-10-12 (score 50)

First indexed and scored.

## MCP tools (43)

### `verify_claims` (~181 tokens)

Verify claims against filings

Check a draft answer's figures against the company's own filings before using them: revenue, net income, EPS, operating income, margins, growth, cash flow, assets, debt and more, for a fiscal year or quarter as the company labels it. Each claim comes back confirmed, contradicted (with the filed figure and what the claimed one matches instead: another year, a quarter, a unit slip), not reported (a period or measure the filings do not have) or not checkable.

Input parameters:

- `claims` (array): Claims to check, each a measure, period and value.
- `company` (string, required): Ticker (AAPL), CIK (320193) or name: the company the claims are about.
- `text` (string): Or a draft answer about the company: every figure in it with a measure and a period is checked.

Output parameters:

- `columns` (array)
- `company` (object)
- `limits` (array)
- `note` (string)
- `rows` (array)
- `summary` (object)

### `european_filings` (~195 tokens)

European filings (ESEF)

A European company's annual financial report as it filed it in the European Single Electronic Format (ESEF): revenue, operating and net profit, EPS, assets, equity, cash, cash flows and dividends as the company tagged them (IFRS concepts, its currency, full scale), with the comparatives, the report's viewer link and the other years on file. Issuers on EU and EEA regulated markets, found by name or LEI; words find any other tagged figure.

Input parameters:

- `company` (string, required): Company name (ASML, LVMH, TotalEnergies) or its LEI (724500Y6DUVHQD6OXN27).
- `words` (string): Also find the report's other figures whose concept names hold these words ("net system sales", "lease liabilities").
- `year` (integer): Fiscal year the report covers (the year its period ends); default the latest filed.

Output parameters:

- `company` (object)
- `facts` (object)
- `filing` (object)
- `found` (object)
- `limits` (array)
- `note` (string)
- `other_years` (array)

### `reference_rates` (~210 tokens)

Reference and policy rates

Money-market and policy rates from the central banks themselves: SOFR, TGCR, BGCR, EFFR and OBFR from the New York Fed (with percentiles and volume), the euro short-term rate and the ECB's policy rates, SONIA and Bank Rate from the Bank of England, and about forty central banks' policy rates as the BIS collects them (policy:JP, policy:Brazil). Dates and rates, oldest first.

Input parameters:

- `end` (string): Last date; default today.
- `rate` (string, required): sofr, tgcr, bgcr, effr or obfr (New York Fed); estr, ecb_deposit, ecb_refi or ecb_marginal (ECB); sonia or bank_rate (Bank of England); or policy:<country>, a central bank's policy rate as the BIS co…
- `start` (string): First date; default 90 days before end.

Output parameters:

- `columns` (array)
- `latest` (object)
- `limits` (array)
- `rate` (object)
- `rows` (array)
- `source` (string)

### `prediction_markets` (~132 tokens)

Prediction markets

What traders on Polymarket and Kalshi are paying for an outcome, found by words (a Fed decision, a recession, an election, a price level): each market's probability (the middle of bid and ask, else the last trade), bid, ask, volume and closing date, with the event's resolution rules.

Input parameters:

- `limit` (integer): Most events per venue; default 6.
- `query` (string, required): What the market is about, in words: "fed rate cut", "recession 2026", "bitcoin 150k".
- `venue` (string): Default both.

Output parameters:

- `columns` (array)
- `events` (array)
- `limits` (array)
- `query` (string)
- `rows` (array)
- `sources` (array)

### `crypto_fundamentals` (~177 tokens)

Crypto fundamentals (DefiLlama)

A DeFi protocol's total value locked (now, by chain, and its history), the fees users pay it and the revenue it keeps (24 hours to all time); a chain's total value locked; or a stablecoin's supply in circulation and its change, by chain. From DefiLlama's open data.

Input parameters:

- `chain` (string): A chain's total value locked: Ethereum, Solana, Arbitrum, Base.
- `days` (integer): Days of history to return; default 365.
- `protocol` (string): A DeFi protocol by name or DefiLlama slug: aave, lido, uniswap, maker, pendle.
- `stablecoin` (string): A stablecoin's supply in circulation: USDT, USDC, DAI, USDe.

Output parameters:

- `chain` (object)
- `dates` (array)
- `limits` (array)
- `protocol` (object)
- `source` (string)
- `stablecoin` (object)
- `tvl`
- `values` (array)

### `financial_statements` (~328 tokens)

Financial statements as filed

A company's financial statements exactly as filed: income statement, balance sheet, cash flow and equity statement from its 10-K (or 10-Q), with its own line labels, each line's XBRL concept and the values as the filing shows them (units say the scale). Joins several filings by period; a line a later filing restated, or that a stock split changed, is shown beside its first-reported figure, never mixed in.

Input parameters:

- `accession` (string): Start from this filing.
- `company` (string, required): Ticker (AAPL), CIK (320193) or name (Apple).
- `filed_before` (string): Start from the latest filing on or before this date: what was known then.
- `filings` (integer): How many 10-Ks (or 10-Qs) to read and join by period, newest first; default 1. One 10-K holds three years of income and cash flows and two balance sheets, so 2 covers four years and 3 covers five.
- `fiscal_year` (integer): Start from the 10-K for the fiscal year ending in this calendar year (or the latest 10-Q of it).
- `period` (string): annual (10-K, default) or quarterly (10-Q: each quarter and the year to date; the fourth quarter is only in the 10-K's year).
- `statement` (string): Which statement: income, balance_sheet, cash_flow, comprehensive_income, equity; core (default) is the first three, all is every one.

Output parameters:

- `balance_sheet` (object)
- `cash_flow` (object)
- `company` (object)
- `comprehensive_income` (object)
- `equity` (object)
- `filings` (object)
- `income` (object)
- `limits` (array)
- `other_basis` (object)
- `period` (string)
- `revised` (object)
- `splits` (array)
- `units_note` (string)

### `filing_tables` (~342 tokens)

Tables in filings

The table in a filing that holds a figure, found by words ("paid members", "revenue by region", "guidance"): XBRL statement and detail reports and the tables in the document itself (MD&A figures such as members, stores or ARPU), or an 8-K press release's tables. With filings above one, the same words in each earlier filing, to follow a figure over the years. Without words, lists the tables.

Input parameters:

- `accession` (string): Start from this filing.
- `company` (string, required): Ticker (AAPL), CIK (320193) or name (Apple).
- `document` (string): Search this document of the filing instead (by type or file name, "EX-99.2"); default the main document, or an 8-K's press release.
- `filed_before` (string): Start from the latest filing of the form on or before this date.
- `filings` (integer): Look in this many filings of the form, newest first, to follow a figure over the years; default 1. Needs find.
- `find` (string): Words the table holds, in its title or its row labels: "paid members", "revenue by region", "share repurchases", "adjusted EPS reconciliation"; quote a phrase. Without find, the filing's tables are l…
- `form` (string): 10-K (default), 10-Q, 8-K (a results press release's tables), DEF 14A (proxy), 20-F, S-1...
- `max_tables` (integer): Most tables shown per filing; default 3.

Output parameters:

- `company` (object)
- `find` (string)
- `form` (string)
- `limits` (array)
- `next` (string)
- `note` (string)
- `results` (array)

### `earnings_release` (~206 tokens)

Earnings release and guidance

A quarter's results press release (8-K Item 2.02): the headline, the results it states (each with the part of the business it belongs to and what a change is measured against), its guidance parsed into ranges (low, high, midpoint, unit, measure, basis, period, and the sentence or table row), and the previous release's guidance for this quarter set against the company's results: above, within or below the range, in basis points for rates.

Input parameters:

- `accession` (string): A results 8-K; default the latest (earnings_calendar lists them).
- `company` (string, required): Ticker (AAPL), CIK (320193) or name (Apple).
- `compare` (boolean): Line up the previous release's guidance for this quarter against these results; default true.
- `filed_before` (string): The latest results release filed on or before this date.
- `max_lines` (integer): Most result lines; default 12.

Output parameters:

- `company` (object)
- `guidance` (object)
- `limits` (array)
- `note` (string)
- `previous_guidance_vs_results` (object)
- `release` (object)
- `results` (object)
- `tables` (object)

### `screen_companies` (~304 tokens)

Screen companies

Screen every US-listed company (thousands, from SEC XBRL frames) on fundamentals: revenue, growth, margins, ROE, ROA, free cash flow, R&D intensity, leverage and more, with filters, ranking and optional valuation (price, market cap, P/E, P/S, FCF yield) for the results. Implausible figures (tagging slips) are held out and listed apart.

Input parameters:

- `columns` (array): Extra metrics to show.
- `exchanges` (array): Listing venues to include; default NYSE and Nasdaq. "all" includes unlisted filers.
- `filters` (array): Conditions every company must meet.
- `include_suspect` (boolean): Keep companies whose figures fail a plausibility check (for example net income above 10 times revenue, usually a tagging slip); default false: they are listed apart.
- `limit` (integer): Most companies to return; default 25.
- `order` (string)
- `period` (string): FY2025 (each company's fiscal year that best overlaps calendar 2025; default the last complete year) or a quarter such as CY2026Q2.
- `sort_by` (string): Metric to rank by; default the first filter's metric, else revenue.
- `valuation` (boolean): Add price, market cap, P/E, P/S and FCF yield for the returned companies (latest close; up to 50 companies).

Output parameters:

- `columns` (array)
- `definitions` (object)
- `held_out` (object)
- `limits` (array)
- `matched` (number)
- `period` (string)
- `rows` (array)
- `sources` (array)
- `universe` (number)
- `valuation` (object)

### `company_report` (~127 tokens)

Company report

One company in one call: profile, five fiscal years of financials (revenue, growth, margins, net income, EPS, cash flow, ROE, leverage), price and risk over a year (return, volatility, drawdown, beta), valuation (market cap, P/E, P/S, FCF yield), insider buying and selling, and recent filings, each from its source.

Input parameters:

- `company` (string, required): Ticker (AAPL), CIK (320193) or name (Apple).
- `years` (integer): Fiscal years of financials; default 5.

Output parameters:

- `company` (object)
- `financials` (object)
- `insiders_180d` (object)
- `limits` (array)
- `market` (object)
- `recent_filings` (object)
- `sources` (array)

### `event_study` (~289 tokens)

Event study

How a stock's price reacted to events: earnings releases (8-K item 2.02), insider purchases or sales (Form 4), any 8-K, or given dates. Abnormal returns against a market model, cumulative abnormal return per event and on average, with a t test across events.

Input parameters:

- `benchmark` (string): Market index for the model; default SPY.
- `estimation_days` (integer): Days used to fit the model, ending 10 days before the window; default 120.
- `event_type` (string): Events from SEC filings: earnings (8-K item 2.02), open-market insider purchases or sales (Form 4 codes P or S, at filing time), or any 8-K. Day 0 is the first trading session after the filing was ac…
- `events` (array): Event dates (day 0 is that date, or the next trading day). Leave out to use event_type.
- `model` (string): market (OLS alpha and beta on the benchmark, default), market_adjusted (return minus benchmark) or mean_adjusted.
- `since` (string): For event_type: filings since this date; default three years ago.
- `symbol` (string, required): Ticker of the stock.
- `window` (array): Event window in trading days around day 0; default [-1, 5].

Output parameters:

- `average_path` (object)
- `events` (object)
- `limits` (array)
- `summary` (object)

### `mentions_trend` (~151 tokens)

Mentions over time

How often a word or phrase appears in SEC filings over time (by month, quarter or year), across all filers or one company, from EDGAR full-text search: for themes such as "tariffs", "agentic AI" or "going concern".

Input parameters:

- `by` (string): Bucket size; default quarter.
- `company` (string): Only this filer.
- `end` (string): Last day; default today.
- `forms` (array): Form types; default ["10-K", "10-Q"].
- `query` (string, required): Words or a quoted phrase, for example "\"artificial intelligence\"" or tariffs.
- `start` (string): First day; default three years ago.

Output parameters:

- `change`
- `columns` (array)
- `limits` (array)
- `rows` (array)
- `sources` (array)

### `company_profile` (~86 tokens)

Company profile

A company's or fund's SEC profile by ticker, CIK or name: tickers, exchange, industry (SIC), fiscal year end, state, address, former names, and its latest 10-K, 10-Q, 8-K and 13F.

Input parameters:

- `company` (string, required): Ticker (AAPL), CIK (320193) or name (Apple).

Output parameters:

- `cik` (number)
- `latest_10k`
- `latest_10q`
- `limits` (array)
- `name` (string|null)
- `source` (string)
- `ticker` (string|null)

### `list_filings` (~162 tokens)

List filings

A company's SEC filings, newest first, filtered by form type (10-K, 10-Q, 8-K, DEF 14A, S-1, 4, 13F-HR...) and dates, with links. Use read_filing to read one.

Input parameters:

- `company` (string, required): Ticker (AAPL), CIK (320193) or name (Apple).
- `forms` (array): Form types, for example ["10-K", "8-K"]; amendments (10-K/A) are included. Default: all.
- `limit` (integer): Most filings, newest first; default 20.
- `since` (string): Filed on or after this date.
- `until` (string): Filed on or before this date.

Output parameters:

- `columns` (array)
- `limits` (array)
- `matched` (number)
- `rows` (array)
- `source` (string)

### `read_filing` (~398 tokens)

Read a filing

The text of an SEC filing: the latest of a form, or one by accession. For a 10-K or 10-Q, section returns one item ("risk factors", "md&a", "business", "market risk", "legal proceedings", or a number such as "1A"); without it the result lists the items and their lengths. document reads an exhibit, such as an 8-K's press release ("EX-99.1"). find returns only the passages with given words ("employees", "buyback"), the fastest way to a fact in a long filing; otherwise long text pages with offset.

Input parameters:

- `accession` (string): The filing; from list_filings or search_filings.
- `company` (string): Ticker (AAPL), CIK (320193) or name (Apple).
- `document` (string): Another document in the filing, by file name or type, for example "EX-99.1" (an 8-K's press release).
- `filed_before` (string): Without accession: the latest filing of the form filed on or before this date.
- `find` (string): Words to find in the filing (or section), for example "employees" or "share repurchase": returns the matching passages with their offsets instead of the text from the start. Quote a phrase to match i…
- `form` (string): Without accession: read the company's latest filing of this form; default 10-K.
- `max_chars` (integer): Most characters to return; default 15000.
- `offset` (integer): Character offset to continue from; the previous result's next_offset, or a find match's offset.
- `section` (string): 10-K or 10-Q item: "risk factors", "md&a", "business", "market risk", "legal proceedings", "1A", "7"; the result lists every item found.

Output parameters:

- `documents` (object)
- `filing` (object)
- `limits` (array)
- `next_offset` (number)
- `sections` (object)
- `source` (string)
- `text` (string)
- `total_chars` (number)
- `url` (string)

### `search_filings` (~131 tokens)

Search filings

Full-text search across all SEC filings since 2001 (EDGAR full-text search): which companies mention a phrase, filtered by form, filer and dates. Quote phrases.

Input parameters:

- `company` (string): Only this filer's documents.
- `forms` (array): Form types, for example ["10-K"]. Default: all.
- `limit` (integer): Most documents; default 10.
- `query` (string, required): Words to find in filing text; put a phrase in double quotes, for example "\"supply chain\" tariffs".
- `since` (string)
- `until` (string)

Output parameters:

- `columns` (array)
- `limits` (array)
- `rows` (array)
- `source` (string)
- `total` (number)

### `insider_trades` (~190 tokens)

Insider trades

Insider transactions at a company from its Form 4 filings: who (officers, directors, 10% owners), what (open-market buys and sales, option exercises, tax withholding, gifts), shares, price, value, holdings after, and 10b5-1 plan flags, with a buy/sell summary. Default: the last 90 days.

Input parameters:

- `codes` (array): Transaction codes to keep, for example ["P", "S"] for open-market purchases and sales. Default: all.
- `company` (string, required): Ticker (AAPL), CIK (320193) or name (Apple).
- `max_filings` (integer): Most Form 4 filings to read, newest first; default 40.
- `since` (string): Filed on or after; default 90 days ago.
- `until` (string): Filed on or before; default today.

Output parameters:

- `columns` (array)
- `limits` (array)
- `rows` (array)
- `source` (string)
- `summary` (object)

### `fund_holdings` (~147 tokens)

Fund holdings (13F)

A fund manager's 13F holdings for a quarter (latest by default): positions by value with portfolio weights, the total checked against the filing's cover page, and what changed since the previous quarter (new, exited, added, reduced).

Input parameters:

- `compare` (boolean): Also compare with the previous quarter's filing; default true.
- `manager` (string, required): The 13F filer: name ("Berkshire Hathaway", "Bridgewater Associates"), ticker or CIK.
- `period` (string): Quarter end, for example 2026-06-30; default the latest filed.
- `top` (integer): Most positions to list, by value; default 25.

Output parameters:

- `changes_since` (object)
- `columns` (array)
- `entries_total` (number)
- `limits` (array)
- `matches_cover_page` (boolean)
- `period` (string)
- `positions_total` (number)
- `rows` (array)
- `source` (string)
- `total_value` (number)

### `treasury_yields` (~139 tokens)

Treasury yields

US Treasury daily yields from the Treasury itself: the par yield curve (1 month to 30 years), real (TIPS) yields or bill rates, for the latest day, a date, or a date range. In percent.

Input parameters:

- `curve` (string): nominal (par yield curve, 1 month to 30 years; default), real (TIPS), or bills.
- `date` (string): One day (the latest on or before it). Default: the latest published.
- `end` (string): Last date of the range; default today.
- `start` (string): A range instead of one day: first date.

Output parameters:

- `columns` (array)
- `curve` (string)
- `limits` (array)
- `rows` (array)
- `source` (string)
- `spreads_points` (object)
- `units` (string)
- `yields` (object)

### `economic_series` (~162 tokens)

Economic series (FRED)

Any FRED economic series (inflation, unemployment, GDP, payrolls, rates, credit spreads, oil, FX, money supply, recession indicators) by id or plain words, as dates and values, optionally as changes or year-over-year rates. Feed values straight into analysis tools.

Input parameters:

- `end` (string)
- `last` (integer): Only the most recent n observations.
- `series` (string, required): A FRED series id (DGS10, CPIAUCSL, UNRATE) or plain words ("core inflation", "10 year treasury yield").
- `start` (string)
- `transform` (string): level (default), change from the previous observation, pct_change (fraction), or yoy (fraction against the value a year earlier).

Output parameters:

- `dates` (array)
- `latest`
- `limits` (array)
- `series` (string)
- `source` (string)
- `title` (string|null)
- `values` (array)

### `price_history` (~331 tokens)

Price history

Price bars (open, high, low, close, volume), daily to hourly, for US stocks and ETFs, stocks listed abroad (SAP.DE, 7203.T), currency pairs (EUR/USD), futures (crude oil, gold), indices and yields (S&P 500, VIX, 10 year yield) and crypto (bitcoin), by symbol or plain name. Stocks adjust for splits and dividends by default, with dividends, splits and the total return; returns: true adds daily returns. No key needed; uses the user's Alpaca or Tiingo key for US stocks when set.

Input parameters:

- `adjusted` (boolean): Split- and dividend-adjusted; default true.
- `end` (string): Last date; default today.
- `interval` (string): Bar size; default 1Day (1Hour needs Alpaca).
- `returns` (boolean): Also return simple returns from close to close (returns[i] is from dates[i] to dates[i+1]), ready for beta, correlation or Sharpe tools.
- `start` (string): First date; default one year ago.
- `symbol` (string, required): A ticker (AAPL, BRK.B), a stock listed abroad with its market suffix (SAP.DE, 7203.T, SHEL.L, 0700.HK), a currency pair (EUR/USD), a future (CL=F, or "crude oil", "gold"), an index (^GSPC, or "S&P 50…

Output parameters:

- `change` (object)
- `close` (array)
- `dates` (array)
- `limits` (array)
- `source` (string)
- `symbol` (string)

### `fund_portfolio` (~204 tokens)

Fund or ETF portfolio (N-PORT)

What a US mutual fund or ETF holds, from its own SEC Form N-PORT (VOO, IVV, QQQ, AGG, FXAIX): every position with value and weight, exposure by asset type, issuer, country and currency, a bond fund's coupon and maturity profile, its monthly returns, the money that came in and went out each month, and what changed since the previous quarter.

Input parameters:

- `compare` (boolean): Also compare with the previous public report; default true.
- `fund` (string, required): A mutual fund or ETF ticker (VOO, IVV, QQQ, AGG, FXAIX, ARKK) or an SEC series id (S000004310).
- `period` (string): Report date, the last day of a fiscal quarter's last month (2026-06-30); default the latest public one.
- `top` (integer): Most positions to list, by value; default 25.

Output parameters:

- `bonds` (object)
- `changes_since` (object)
- `columns` (array)
- `exposure` (object)
- `flows` (object)
- `fund` (object)
- `limits` (array)
- `monthly_returns` (object)
- `net_assets` (number|null)
- `period` (string)
- `positions` (number)
- `rows` (array)
- `source` (string)

### `options_chain` (~208 tokens)

Options chain (Cboe)

An option chain from Cboe's delayed data for a stock, ETF or index (AAPL, SPY, SPX, VIX): bids, asks, implied volatility, greeks, open interest and volume by strike for one expiration, every expiration with its open interest, put/call ratios, max pain and the move the at-the-money straddle prices in.

Input parameters:

- `expiration` (string): An expiration date (2026-11-20), or "nearest" (default); the result lists every expiration.
- `min_open_interest` (integer): Only contracts with at least this open interest; default 0.
- `symbol` (string, required): A stock or ETF (AAPL, SPY, QQQ) or an index (SPX, NDX, RUT, VIX, XSP).
- `type` (string): Default both.
- `window` (number): Strikes within this fraction of the underlying price; default 0.1 (10 percent).

Output parameters:

- `columns` (array)
- `expiration` (string)
- `expirations` (object)
- `limits` (array)
- `rows` (array)
- `source` (string)
- `summary` (object)
- `underlying` (object)

### `volatility_surface` (~122 tokens)

Volatility surface (Cboe)

The implied volatility surface from Cboe's delayed option data: at-the-money IV by expiration (term structure), 25-delta put and call IV with the risk reversal and butterfly (skew), and IV at fixed moneyness from 80 to 120 percent of the price (smile).

Input parameters:

- `expirations` (integer): How many expirations from the nearest; default 8.
- `symbol` (string, required): A stock or ETF (AAPL, SPY) or an index (SPX, NDX, RUT, VIX).

Output parameters:

- `limits` (array)
- `smile` (object)
- `source` (string)
- `term_structure` (object)
- `underlying` (object)

### `futures_curve` (~104 tokens)

Futures curve (Cboe)

A Cboe futures curve from its daily settlements: VIX futures by expiration with the VIX index, contango or backwardation and the front month's premium; also mini VIX, variance, bitcoin and iBoxx bond index futures.

Input parameters:

- `product` (string): A Cboe futures product: VIX (default), mini VIX, S&P 500 variance, bitcoin, or the iBoxx high yield, investment grade and emerging market bond index futures.

Output parameters:

- `columns` (array)
- `limits` (array)
- `product` (string)
- `rows` (array)
- `shape` (object)
- `source` (string)
- `spot_index` (number)

### `segment_revenue` (~109 tokens)

Revenue by segment

Where a company's revenue comes from, read from the XBRL of its latest 10-K (or 10-Q): revenue and operating income by business segment, revenue by product or service and by region, for up to three years, with the company's own labels and each breakdown checked against total revenue.

Input parameters:

- `company` (string, required): Ticker, CIK or name.
- `form` (string): Annual (10-K, default: fiscal years) or quarterly (10-Q: the quarter).

Output parameters:

- `company` (object)
- `filing` (object)
- `limits` (array)
- `products_and_services` (object)
- `regions` (object)
- `segments` (object)
- `source` (string)
- `total_revenue` (object)

### `index_constituents` (~153 tokens)

Index constituents

The members of a stock index (S&P 500, Nasdaq 100, Russell 2000, S&P 400, MSCI EAFE) with their weights, read from the N-PORT of an ETF that tracks it, with the report date, the number of members and how concentrated the top ten are.

Input parameters:

- `index` (string, required): An index by name ("S&P 500", "Nasdaq 100", "Russell 2000", "S&P 400", "MSCI EAFE"), or the ticker of an ETF that tracks the index you want (VOO, IWM).
- `limit` (integer): Most members to list, by weight; default 50.

Output parameters:

- `columns` (array)
- `index` (string)
- `limits` (array)
- `members` (number)
- `rows` (array)
- `source` (string)
- `through` (object)
- `top_10_weight` (number|null)

### `fomc` (~96 tokens)

Fed rate decisions (FOMC)

The Federal Reserve's rate decisions from its own record: each FOMC meeting of a year (held and scheduled), the action, change and target range, the vote with dissenters and their reasons, links to statements and minutes, the latest statement, and the median projections (dot plot) for GDP, unemployment, inflation and the federal funds rate.

Input parameters:

- `year` (integer): Meetings and decisions of this year; default this year.

Output parameters:

- `columns` (array)
- `latest_statement` (object)
- `limits` (array)
- `projections` (object)
- `rows` (array)
- `source` (string)
- `year` (number)

### `economic_calendar` (~163 tokens)

Economic calendar

The US economic calendar from the agencies' own schedules: when BLS (jobs, CPI, PPI, JOLTS), BEA (GDP, personal income and PCE, trade), the Census Bureau (retail sales, housing starts, durable goods) and the Fed (FOMC decisions) release, with times in US Eastern and the market-moving releases flagged.

Input parameters:

- `key_only` (boolean): Only the releases markets watch most (jobs, CPI, PPI, JOLTS, GDP, PCE, retail sales, housing starts, durable goods, trade, the employment cost index, FOMC decisions).
- `since` (string): First date; default today.
- `until` (string): Last date; default 30 days after since.

Output parameters:

- `census_note` (string)
- `columns` (array)
- `limits` (array)
- `rows` (array)
- `since` (string)
- `sources` (array)
- `until` (string)

### `executive_pay` (~180 tokens)

Executive pay vs performance

What a company's executives are paid against how it did, from the pay-versus-performance table in its proxy: the CEO's reported pay and the pay actually earned, the other executives' averages, shareholder return against peers, net income and the company's chosen measure, five years; or every company's CEO pay ranked, with mis-scaled filings held out.

Input parameters:

- `company` (string): Ticker, CIK or name. Without it, every company that tagged a pay-versus-performance table for the year, ranked.
- `limit` (integer): Across the market, most companies to list; default 25.
- `rank_by` (string): Across the market: the CEO's reported pay (default), pay actually paid, or total shareholder return.
- `year` (integer): Across the market, the fiscal year (by calendar year); default last year.

Output parameters:

- `columns` (array)
- `company` (object)
- `held_out` (object)
- `limits` (array)
- `proxy` (object)
- `rows` (array)
- `source` (string)

### `short_interest` (~205 tokens)

Short interest (FINRA)

Short interest in US stocks from FINRA, twice a month: shares short, the change, average daily volume and days to cover over several reports, and the share of shares outstanding from the company's latest SEC cover page; or, with no stock, the market ranked by days to cover, change or size.

Input parameters:

- `limit` (integer): Across the market, most stocks to list; default 25.
- `min_volume` (number): Across the market, only stocks averaging at least this many shares a day; default 1,000,000, so thin stocks do not crowd the list.
- `periods` (integer): Settlement dates to show for a stock, newest last; default 6 (three months).
- `rank_by` (string): Across the market: days to cover (default), the change since the last report, or shares short.
- `symbol` (string): A US stock ticker. Without it, the whole market at the latest settlement date, ranked.

Output parameters:

- `columns` (array)
- `latest` (object)
- `limits` (array)
- `rows` (array)
- `settlement_date` (string)
- `source` (string)

### `off_exchange_volume` (~104 tokens)

Dark pool and OTC volume (FINRA)

How much of a US stock trades away from the exchanges, from FINRA's OTC transparency data: weekly shares and trades in dark pools (ATSs) and with other off-exchange dealers, and the largest dark pools and dealers in the latest week.

Input parameters:

- `symbol` (string, required): A US stock ticker.
- `weeks` (integer): Weeks to show, newest last; default 8. FINRA publishes Tier 1 stocks two weeks after the week, others four.

Output parameters:

- `columns` (array)
- `latest_week` (object)
- `limits` (array)
- `rows` (array)
- `source` (string)
- `symbol` (string)

### `fails_to_deliver` (~140 tokens)

Fails to deliver (SEC)

Shares that failed to settle, from the SEC's fails-to-deliver data (NSCC): a stock's outstanding fail balance on each settlement date over the latest half-month files, with prices and dollar values, or the securities with the largest fails across the market.

Input parameters:

- `files` (integer): Half-month files to read, newest first; default 2 (about a month) for a ticker, 1 across the market.
- `limit` (integer): Across the market, most securities to list; default 25.
- `symbol` (string): A ticker. Without it, the securities with the largest fails by value in the latest file.

Output parameters:

- `columns` (array)
- `files` (array)
- `largest` (object)
- `limits` (array)
- `rows` (array)
- `source` (string)
- `symbol` (string)

### `futures_positioning` (~161 tokens)

Futures positioning (CFTC COT)

Who holds what in a futures market, from the CFTC's weekly Commitments of Traders: long, short and net positions of producers, swap dealers, managed money and others (or dealers, asset managers and leveraged funds for financial futures), with weekly changes and where the speculators sit in their range, by market name (gold, crude oil, 10 year note, euro, bitcoin).

Input parameters:

- `market` (string, required): A futures market by name ("gold", "crude oil", "corn", "s&p 500", "10 year note", "euro", "bitcoin", "vix") or a CFTC contract market code (088691).
- `weeks` (integer): Weekly reports to return, newest last; default 52.

Output parameters:

- `columns` (array)
- `latest` (object)
- `limits` (array)
- `market` (object)
- `rows` (array)
- `source` (string)
- `speculators` (object)

### `private_offerings` (~233 tokens)

Private offerings (Form D)

Private markets from Form D, filed when startups and funds sell securities without registering: amount offered and sold, number of investors, minimum investment, exemption (Rule 506(b) or 506(c)), industry, fund type and the people behind it, for one issuer or across the market (newest first, filtered by industry or amount sold).

Input parameters:

- `company` (string): An issuer by name or CIK (a startup, a fund). Without it, the latest Form D filings across the market.
- `industry` (string): Across the market, keep issuers whose Form D industry group contains these words: "Pooled Investment Fund", "Biotechnology", "Other Technology", "Real Estate", "Banking".
- `limit` (integer): Most offerings to list; default 20. Across the market at most 100 filings are read to find them.
- `min_sold` (number): Across the market, keep offerings that have sold at least this many dollars.
- `since` (string): Filed on or after this date; default seven days ago across the market, ten years for an issuer.

Output parameters:

- `columns` (array)
- `issuer` (object)
- `limits` (array)
- `people` (array)
- `rows` (array)
- `source` (string)

### `company_events` (~281 tokens)

Company events (8-K)

Company news from the source: the events companies must report on Form 8-K (earnings, deals, executive changes, restatements, auditor changes, bankruptcies, cyber incidents, layoffs, delisting notices), for one company or, by event, across the whole market, each with the headline of the press release it attached and the opening of what the filing says.

Input parameters:

- `company` (string): Ticker, CIK or name. Without it, filings across the whole market (then event is required).
- `event` (string): Which events: an item number (2.02) or a name: earnings, material_agreement, acquisition_or_sale_completed, executive_change, restatement, auditor_change, bankruptcy, cybersecurity_incident, restruct…
- `excerpts` (boolean): Read each filing for the opening of what it says and its press release's headline; default true (up to three requests per filing).
- `limit` (integer): Most events to list; default 15.
- `since` (string): Filed on or after this date; default 180 days ago for a company, 30 days across the market.
- `until` (string): Filed on or before this date; default today.

Output parameters:

- `columns` (array)
- `company` (object)
- `counts` (object)
- `event` (object)
- `limits` (array)
- `rows` (array)
- `source` (string)

### `large_holders` (~204 tokens)

Large holders (13D/13G)

Who owns more than 5 percent of a company, from Schedules 13D and 13G: each holder's latest stake (shares, percent of class, voting power), whether it is passive (13G) or may seek to influence control (13D, with its stated purpose); or, with no company, the newest 13D stakes across the whole market.

Input parameters:

- `company` (string): Ticker, CIK or name. Without it, the latest filings across the whole market (new activist stakes by default).
- `limit` (integer): Most filings to read; default 25.
- `schedule` (string): 13D (may seek to influence control; states its purpose), 13G (passive) or both. Default: both for a company, 13D across the market.
- `since` (string): Filed on or after this date; default three years ago for a company, seven days ago across the market.

Output parameters:

- `columns` (array)
- `company` (object)
- `earlier_text_filings` (object)
- `limits` (array)
- `purposes_13d` (array)
- `rows` (array)
- `source` (string)

### `earnings_calendar` (~226 tokens)

Earnings calendar

Earnings dates from the companies' own 8-Ks (Item 2.02, results of operations). For a company: its recent results releases with the quarter each covered and whether it came before the open or after the close (EDGAR's acceptance time), and the next release estimated from the same quarter a year earlier, with a window. Across the market: who is due to report in a window, from when they reported in the same weeks last year, marked once they have. Estimates, not announcements.

Input parameters:

- `company` (string): Ticker, CIK or name: its results releases and the next one estimated. Leave out for the market.
- `limit` (integer): Across the market: most companies to list (the largest first); default 100.
- `quarters` (integer): Past releases to list for a company; default 8.
- `since` (string): Across the market: first day of the window; default today.
- `until` (string): Across the market: last day; default 14 days after since, at most 31.

Output parameters:

- `columns` (array)
- `company` (object)
- `limits` (array)
- `next`
- `releases` (object)
- `rows` (array)
- `since` (string)
- `source` (string)
- `until` (string)

### `investment_advisers` (~129 tokens)

Investment advisers (Form ADV)

Investment advisers from the SEC's Form ADV database (IAPD) by name or CRD: matching firms with SEC file numbers, status, whether they report disclosure events, offices and branch counts, then the best match in full: registration and since when, other names and relying advisers, its latest ADV date, and links to its Form ADV and brochures.

Input parameters:

- `limit` (integer): Most matching firms to list for a name; default 10.
- `query` (string, required): A firm's name ("Bridgewater Associates", "Renaissance Technologies") or its CRD number (105129).

Output parameters:

- `columns` (array)
- `firm` (object)
- `limits` (array)
- `matches` (number)
- `rows` (array)
- `source` (string)

### `world_economy` (~201 tokens)

World economy (World Bank)

Any country's or region's economy from the World Bank's World Development Indicators (200+ countries, the euro area, the world, income groups): GDP and growth, inflation, unemployment, government debt and deficits, the current account, trade, reserves, interest rates, population and more, by plain words or indicator code, as a year-by-country table with each country's latest value.

Input parameters:

- `countries` (array, required): Countries or regions: names ("Germany", "euro area", "world") or ISO codes (US, DEU).
- `end` (integer): Last year; default this year (the latest year is often not yet published).
- `indicator` (string, required): Plain words ("gdp growth", "inflation", "government debt", "current account", "unemployment") or a World Bank indicator code (NY.GDP.MKTP.KD.ZG).
- `start` (integer): First year; default ten years before end.

Output parameters:

- `columns` (array)
- `countries` (object)
- `indicator` (object)
- `latest` (object)
- `limits` (array)
- `rows` (array)
- `source` (string)

### `economic_outlook` (~178 tokens)

Economic outlook (OECD projections)

The OECD's projections for the next two years from its Economic Outlook, for 50+ economies, the euro area, the OECD and the world: GDP growth, inflation (harmonised for the euro area), core inflation, unemployment, budget balance, government debt, current account and short- and long-term interest rates, beside its estimates for the two years before.

Input parameters:

- `countries` (array, required): Countries or groups: names ("Germany", "euro area", "world", "OECD") or ISO codes (US, JPN).
- `measures` (array): What to project: "gdp growth", "inflation", "core inflation", "unemployment", "budget balance", "government debt", "current account", "short term interest rate", "long term interest rate". Default: G…

Output parameters:

- `columns` (array)
- `limits` (array)
- `measures` (object)
- `note` (string)
- `outlook` (object)
- `rows` (array)
- `source` (string)

### `treasury_auctions` (~222 tokens)

Treasury auctions

US Treasury auction results, or the auctions announced next, from the Treasury itself: bills, notes, bonds, TIPS and FRNs by term ("10-year", "13-week bill"), with the rate each cleared at, coupon, bid-to-cover, size and the shares taken by indirect bidders (foreign and other), direct bidders and primary dealers, plus averages to compare the latest auction with recent ones.

Input parameters:

- `limit` (integer): Most auctions to list; default 12.
- `security` (string): Which securities: "10-year", "2-year note", "30-year bond", "13-week bill", "5-year TIPS", "2-year FRN", or a kind ("bills", "notes", "bonds", "tips"). Default: all.
- `since` (string): Results from this auction date; default 180 days ago.
- `until` (string): Results up to this auction date; default today.
- `upcoming` (boolean): Announced auctions not yet held, soonest first, instead of results.

Output parameters:

- `averages` (object)
- `columns` (array)
- `limits` (array)
- `rate_is` (string)
- `rows` (array)
- `source` (string)

### `federal_debt` (~120 tokens)

US federal debt

The US federal debt each business day from the Treasury's Debt to the Penny (total, held by the public, intragovernmental) over any window since 1993, its change over the window, and the average interest rate the Treasury pays on each type of security.

Input parameters:

- `end` (string): Last date; default today.
- `frequency` (string): daily, or monthly (the last reported day of each month); default daily up to two years, monthly beyond.
- `start` (string): First date; default one year ago.

Output parameters:

- `average_interest_rates` (object)
- `change` (object)
- `columns` (array)
- `latest` (object)
- `limits` (array)
- `rows` (array)
- `source` (string)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/arhancanli-canli-markets-mcp/canli-markets-mcp#diagnostics

## Score history

- 2026-10-18: 79
- 2026-10-17: 79
- 2026-10-16: 79
- 2026-10-15: 78
- 2026-10-14: 78
- 2026-10-13: 50
- 2026-10-12: 50

## Common questions

### What is the Canli Markets MCP server?

Canli Markets is an MCP server listed in the public MCP registry as io.github.arhancanli/canli-markets-mcp. Finance from the sources: SEC and ESEF filings, fact checks, central-bank rates, odds, DeFi, macro. This page covers its npm package (canli-markets-mcp).

### Is the Canli Markets MCP server safe to use?

Canli Markets scores 79 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 18 October 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Canli Markets MCP server expose?

Canli Markets exposes 43 tools: verify_claims, european_filings, reference_rates, prediction_markets, crypto_fundamentals, and 38 more. Their descriptions and schemas cost roughly 8,131 tokens of context every time the server is loaded.

### Is the Canli Markets MCP server still maintained?

Canli Markets is still listed as active in the MCP registry. We last reached this channel on 18 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Canli Markets MCP server under?

Canli Markets declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/canli-markets-mcp
- Socket report: https://socket.dev/npm/package/canli-markets-mcp
- Repository: https://github.com/arhancanli/canlicapital
- Website: https://canlicapital.com/developers
- Changelog RSS feed: https://verifymcp.io/servers/arhancanli-canli-markets-mcp/canli-markets-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/arhancanli-canli-markets-mcp/canli-markets-mcp.json
- HTML version of this page: https://verifymcp.io/servers/arhancanli-canli-markets-mcp/canli-markets-mcp
