# MCP tools & prompts

Seven tools and three prompts. Tool results are JSON; articles include the title, url, source, time, symbols, and AI summary.

## `latest_news`

Latest stock news for one or more tickers.

| Argument | Type | Default | Description |
| --- | --- | --- | --- |
| `symbols` | string[] | **required** | Stock tickers such as `NVDA` or `AAPL`. |
| `hours` | integer | `24` | Look-back window, 1–720. |
| `limit` | integer | `10` | Articles to return, 1–50. |

Try: “What's the latest news on NVDA and AAPL?”

## `search_news`

Filtered and full-text search across the archive, with cursor paging.

| Argument | Type | Default | Description |
| --- | --- | --- | --- |
| `query_text` | string |  | Words to match in title and summary. Quote phrases: `"rate cut"`. |
| `tickers` | string[] |  | Matches articles tagged with any of the tickers. |
| `category` | enum |  | `stocks`. |
| `type` | enum |  | Stock articles use the same three types as Vantafin: `news` (stock news), `press_release` or `legal`. `stock_news` returns stock news only. |
| `sources` | string[] |  | Publisher domains, e.g. `businesswire.com`. |
| `since / until` | string |  | ISO 8601 timestamp or `YYYY-MM-DD`. |
| `sort` | enum | `published_desc` | `published_desc`, `published_asc` or `relevance`. |
| `limit` | integer | `10` | 1–50. |
| `cursor` | string |  | `next_cursor` from the previous call. |

Try: “Find press releases about semiconductor stocks from last week.”

## `get_article`

One article by id with its summary, entities and, for press releases, the full text.

| Argument | Type | Default | Description |
| --- | --- | --- | --- |
| `article_id` | string | **required** | An id such as `art_9f2c1d7e4b8a6035`. |
| `include_body` | boolean | `true` | Include full text (capped at 20,000 characters). |

Try: “Read the full Microsoft buyback press release and list the key numbers.”

## `market_brief`

Latest stories per category plus the most-covered symbols, in one call.

| Argument | Type | Default | Description |
| --- | --- | --- | --- |
| `hours` | integer | `12` | Look-back window, 1–72. |
| `per_category` | integer | `5` | Stories per category, 1–15. |
| `categories` | enum[] | `stocks` | Coverage is `stocks`. |

Try: “Give me a briefing on what moved markets overnight.”

## `get_trending`

Symbols with the most news in the last hour, day or week.

| Argument | Type | Default | Description |
| --- | --- | --- | --- |
| `window` | enum | `24h` | `1h`, `24h` or `7d`. |
| `kind` | enum | `ticker` | `ticker` ranks stock tickers. |
| `category` | enum |  | Only count one category. |
| `limit` | integer | `20` | 1–50. |

Try: “Which stocks are getting the most coverage today?”

## `list_sources`

Publishers we cover, with 30-day article counts.

| Argument | Type | Default | Description |
| --- | --- | --- | --- |
| `category` | enum |  | Only sources that published in this category. |
| `type` | enum |  | Only sources of this type: `news`, `stock_news`, `press_release` or `legal`. |

Try: “Which press-release wires do you cover?”

## `list_tickers`

Every ticker tagged on at least one article, with a total and counts for news, press releases, and legal.

| Argument | Type | Default | Description |
| --- | --- | --- | --- |
| `category` | enum |  | Only tickers with an article in this category. |
| `type` | enum |  | Only tickers with an article of this type: `news`, `stock_news`, `press_release` or `legal`. |

Try: “Which tickers do you have news for?”

## Prompts

Prompts are templates your app can offer as slash commands or shortcuts.

| Prompt | Arguments | What it does |
| --- | --- | --- |
| `morning_briefing` | focus (optional) | A themed briefing of the overnight news cycle, with the headlines that drove unusual volume. |
| `watchlist_news` | symbols | One line per symbol: what happened, and the likely catalysts. |
| `ticker_deep_dive` | symbol, days (optional) | The news narrative for one stock over time, with key dated events and citations. |

## Errors

Bad arguments come back as tool errors with a readable message (for example “at most 10 symbols in total”), so the model can correct itself. Authentication failures are HTTP `401`; plans without MCP get `403`; bursts over 20 requests per second get `429`.
