# TradeAlmanac (pypi · tradealmanac-mcp)

TradeAlmanac market data: dividends, screener, sentiment indicators, calendar effects, stock lists.

- Trust score: 60/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `tradealmanac.com`: 77/100, [markdown](https://verifymcp.io/servers/com-tradealmanac-mcp-server/tradealmanac.md), [page](https://verifymcp.io/servers/com-tradealmanac-mcp-server/tradealmanac)
- npm · `@tradealmanac/mcp-server`: 76/100, [markdown](https://verifymcp.io/servers/com-tradealmanac-mcp-server/tradealmanac-mcp-server.md), [page](https://verifymcp.io/servers/com-tradealmanac-mcp-server/tradealmanac-mcp-server)
- pypi · `tradealmanac-mcp`: 60/100 (this document), [markdown](https://verifymcp.io/servers/com-tradealmanac-mcp-server/tradealmanac-mcp.md), [page](https://verifymcp.io/servers/com-tradealmanac-mcp-server/tradealmanac-mcp)

## Channel facts

- Registry: `pypi`
- Package: `tradealmanac-mcp`
- Version: `2026.10.7`
- 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-11-05.

- **Supply Chain Security**: 50/100
  - Malware scan not yet available for this package.
  - No known CVEs affecting this package version or its production dependencies.
  - Runs setuptools.build_meta at install time, a recognised build step with no custom scripting around it.
  - No production dependencies, so there is no dependency health to assess.
- **Provenance & Transparency**: 19/100
  - Repository check failed: no source repository is declared.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 28 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 72/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1818 tokens (~121/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 73/100
  - Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 16 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 TradeAlmanac MCP server?

TradeAlmanac runs locally as a PyPI package, launched with uvx tradealmanac-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 com-tradealmanac-mcp-server -- uvx tradealmanac-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "com-tradealmanac-mcp-server": {
      "command": "uvx",
      "args": [
        "tradealmanac-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-tradealmanac-mcp-server": {
      "command": "uvx",
      "args": [
        "tradealmanac-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add com-tradealmanac-mcp-server -- uvx tradealmanac-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-tradealmanac-mcp-server": {
      "type": "local",
      "command": [
        "uvx",
        "tradealmanac-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-tradealmanac-mcp-server --command uvx --arg tradealmanac-mcp
```

### Hermes

```yaml
mcp_servers:
  com-tradealmanac-mcp-server:
    command: "uvx"
    args: ["tradealmanac-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "com-tradealmanac-mcp-server": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "tradealmanac-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-tradealmanac-mcp-server -t stdio -c uvx -a tradealmanac-mcp
```

### Other

```json
{
  "mcpServers": {
    "com-tradealmanac-mcp-server": {
      "command": "uvx",
      "args": [
        "tradealmanac-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-11-05 (score 60, −15)

- [security regression] Malware scan: pass → unverified

### 2026-11-04 (score 75, +1)

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

### 2026-11-03 (score 74, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-11-02 (score 59, +1)

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

### 2026-10-31 (score 58, +1)

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

### 2026-10-29 (score 57, +1)

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

### 2026-10-27 (score 56, +1)

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

### 2026-10-26 (score 55, −15)

- [security regression] Malware scan: pass → unverified

## MCP tools (15)

### `dividends_by_ticker` (~114 tokens)

Dividends for one security

Dividend history and the next payout for one Moscow Exchange security. Returns declared and forecast payouts with their announcement status, the record date, the amount per share and the yield. The yield is a fraction (0.08 = 8 %), not a percentage. A forecast status means the board of directors has not recommended the payout yet: never present such a value as declared.

Input parameters:

- `ticker` (string, required): Ticker of the security on the Moscow Exchange, e.g. SBER, LKOH, GAZP.

### `dividends_calendar` (~119 tokens)

Dividend record-date calendar

Calendar of upcoming dividend record dates across all securities, with announcement statuses. Filtered by a range of record dates. To page through, pass the cursor from the next_cursor field of the previous answer.

Input parameters:

- `cursor` (string): Cursor of the next page, from the next_cursor field.
- `date_from` (string): Lower bound of the record date, YYYY-MM-DD.
- `date_to` (string): Upper bound of the record date, YYYY-MM-DD.
- `limit` (integer): How many payouts to return, 50 by default.

### `screener` (~185 tokens)

Screener: securities by fundamentals

Screen securities by fundamentals that are already computed: sector, a ceiling on trailing-twelve-month P/E, a floor on dividend yield. Thresholds are fractions: dividend_yield_min=0.08 means 8 %. An empty answer means no security matched the conditions, not that data is missing.

Input parameters:

- `cursor` (string): Cursor of the next page, from the next_cursor field.
- `dividend_yield_min` (number): Lower bound of dividend yield AS A FRACTION: 0.08 means 8 %.
- `limit` (integer): How many securities to return, 50 by default.
- `pe_ttm_max` (number): Upper bound of trailing-twelve-month P/E.
- `sector` (string): Sector code; the sectors tool lists the codes.
- `sort` (string): Sort field; the screener_fields tool lists the allowed values.

### `screener_fields` (~46 tokens)

Screener fields and their units

The list of screener fields with their units and the allowed sort values. Call it before the first screen, so that fractions are not mistaken for percentages and no field name is invented.

### `sectors` (~30 tokens)

Sectors

Sector codes and names with summary metrics. A code from here goes into the sector parameter of the screener tool.

### `list_indicators` (~86 tokens)

Platform indicators

All indicators of the platform with the current value, the scale zone and the date: the Fear & Greed Index of the Russian market, the US market sentiment index, the crypto Fear & Greed Index and others. Call it first to learn the identifiers for get_indicator and get_indicator_history. The values are our own calculations on a 0–100 scale, not exchange data.

### `get_indicator` (~89 tokens)

Indicator: value and components

The current value of one indicator, its zone, the methodology version and the normalised components with their weights. Components are given as a score on a 0–100 scale; the answer carries no raw input values. A missing component is marked with the status absent — that is absence, not zero.

Input parameters:

- `spec_id` (string, required): Indicator identifier from list_indicators, e.g. afgi.

### `get_indicator_history` (~130 tokens)

Indicator history

Daily values of one indicator over the chosen period: date, value, zone, methodology version. Without a key the last year is served, the full history needs a key; when the period was cut, the answer carries depth_limited. Good for showing how the indicator moved, but it is the platform's estimate, not an exchange series.

Input parameters:

- `date_from` (string): Start of the period, YYYY-MM-DD.
- `date_to` (string): End of the period, YYYY-MM-DD.
- `spec_id` (string, required): Indicator identifier from list_indicators, e.g. afgi.

### `get_almanac_effect` (~191 tokens)

Calendar effects

Calendar effects of the Russian market: how the index behaved in January, on Mondays, around Bank of Russia meetings, at quarter end and in the tax period. For each effect: the number of observations, the mean and median return, the share of positive outcomes, the t-statistic and the significance after correction for multiple comparisons. Returns are fractions (0.0125 = 1.25 %). This is statistics of the past, not a forecast: an effect marked nominal or none must not be presented as a regularity.

Input parameters:

- `code` (string): Code of one effect from the answer, e.g. month_01.
- `family` (string): Effect family: month, weekday, cbr, quarter, tax. Omitted — all.
- `subject` (string): Series: IMOEX (equities) or RGBITR (government bonds). Omitted — both.

### `list_rankings` (~85 tokens)

Security rankings

The list of ready-made security rankings of the platform, with the date and size of the latest snapshot: undervalued against their own history and their sector, the ones that got cheaper over a period. Call it first to learn the identifier for get_ranking.

Input parameters:

- `lang` (string): Language of the names: en, ru or de. Defaults to the server language.

### `get_ranking` (~146 tokens)

A ranking: places and metrics

The latest snapshot of one ranking: the place of a security, its ticker, sector, the discount to its own history and to its sector in percent, changes in the line-up and the selection rules. The answer carries no price, price change or multiples: the ranking of securities that got cheaper gives the order, not the size of the fall; per-security multiples come from the screener tool. A ranking is built by rules and is not a recommendation.

Input parameters:

- `lang` (string): Language of the names: en, ru or de. Defaults to the server language.
- `ranking_id` (string, required): Ranking identifier from list_rankings, e.g. undervalued_relative.

### `afgi` (~57 tokens)

Fear & Greed Index

The current value of our own Fear & Greed Index of the Russian market, with the scale and the components. A former name: the same as get_indicator with the identifier afgi. It is the platform's estimate, not exchange data.

### `afgi_history` (~116 tokens)

Fear & Greed Index history

Daily values of the Fear & Greed Index over the chosen period: value, scale zone and date. A former name: the same as get_indicator_history with the identifier afgi. Good for showing how market sentiment moved, but it is the platform's estimate, not an exchange figure.

Input parameters:

- `date_from` (string): Start of the period, YYYY-MM-DD.
- `date_to` (string): End of the period, YYYY-MM-DD.
- `limit` (integer): How many days to return, 180 by default.

### `analysis_by_ticker` (~76 tokens)

Write-ups for one security

Published write-ups of the platform for one security: headline, date, address of the piece, conclusions. These are editorial texts, not market data.

Input parameters:

- `limit` (integer): How many write-ups to return, 20 by default.
- `ticker` (string, required): Ticker of the security, e.g. SBER.

### `api_meta` (~86 tokens)

What the API serves and what it does not

The API describing itself: which data is available, what the platform does NOT serve (quotes, candles and the Moscow Exchange instrument directory, world market data), rate ceilings and contract versions. Call it when you need to know where the data ends, before promising the user a number.

Input parameters:

- `lang` (string): Language of the answer texts: en or ru. Defaults to the server language.

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Dependencies. The full working is on the page: https://verifymcp.io/servers/com-tradealmanac-mcp-server/tradealmanac-mcp#diagnostics

## Score history

- 2026-11-05: 60
- 2026-11-04: 75
- 2026-11-03: 74
- 2026-11-02: 59
- 2026-11-01: 58
- 2026-10-31: 58
- 2026-10-30: 57
- 2026-10-29: 57
- 2026-10-28: 56
- 2026-10-27: 56
- 2026-10-26: 55
- 2026-10-25: 70
- 2026-10-24: 69
- 2026-10-23: 69
- 2026-10-22: 69
- 2026-10-21: 65
- 2026-10-20: 65
- 2026-10-19: 65
- 2026-10-18: 65
- 2026-10-17: 65
- 2026-10-16: 65
- 2026-10-15: 65
- 2026-10-14: 65
- 2026-10-13: 34
- 2026-10-12: 19

## Common questions

### What is the TradeAlmanac MCP server?

TradeAlmanac is an MCP server listed in the public MCP registry as com.tradealmanac/mcp-server. TradeAlmanac market data: dividends, screener, sentiment indicators, calendar effects, stock lists. This page covers its PyPI package (tradealmanac-mcp).

### Is the TradeAlmanac MCP server safe to use?

TradeAlmanac scores 60 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. 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 TradeAlmanac MCP server expose?

TradeAlmanac exposes 15 tools: dividends_by_ticker, dividends_calendar, screener, screener_fields, sectors, and 10 more. Their descriptions and schemas cost roughly 1,556 tokens of context every time the server is loaded.

### Is the TradeAlmanac MCP server still maintained?

TradeAlmanac is still listed as active in the MCP registry. We last reached this channel on 5 November 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 TradeAlmanac MCP server under?

TradeAlmanac 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

- PyPI project: https://pypi.org/project/tradealmanac-mcp/
- Socket report: https://socket.dev/pypi/package/tradealmanac-mcp
- Website: https://tradealmanac.com/en/developers/mcp
- Changelog RSS feed: https://verifymcp.io/servers/com-tradealmanac-mcp-server/tradealmanac-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-tradealmanac-mcp-server/tradealmanac-mcp.json
- HTML version of this page: https://verifymcp.io/servers/com-tradealmanac-mcp-server/tradealmanac-mcp
