Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Finance Pulse

PYPI · FINANCE-PULSE

Financial news as sourced statements with sentiment and tickers, grouped into developments.

Available components

−8 this week 60 Trust /100

Last scanned (15 hours ago)

Scores higher than 62% of PyPI servers

Category Finance and Payments

Trust breakdown (7 categories)

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. How we score → Why this is hard to score →

Supply Chain Security50
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
  • 1 of 31 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability58
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 3465 tokens (~288/item across 12 items; 12 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management53
  • Stability observed for 16 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 93% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 12 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 13 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 18 Oct 26 +1

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

  • 17 Oct 26 −1
    • Malware scan: unverified → pass ▲ security
    • Schema quality: 234 → 288 ▼ functional
    • Schema quality: excellent → good functional
    • Package version: 0.1.0 → 0.2.1 functional
  • 16 Oct 26 +1

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

  • 14 Oct 26 −9
    • Malware scan: pass → unverified ▼ security
    • Stability: unverified → 0.40 ▲ functional
  • 3 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 2 Oct 26 53

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 18 Oct 2026 · Analysed pypi/finance-pulse@0.2.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi
Reason No attestation published

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 31 packages
Packages resolved 31
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 12 exposed · ~3,019 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
find_symbol ~158

Look up the code of a company, index, currency, commodity or organisation by name: "micron" finds MU. The query is matched against codes and registered names, so use the company's own name rather than a brand (Alphabet, not Google). Returns the matches mentioned within the plan's history, most mentioned first, each with its code (id), name and kind; an empty list means nothing there matches, and a list as long as `limit` may have more matches behind it. Use the code as `symbol` or `code` in the other tools.

NameTypeReqDescription
limitinteger–How many matches to return
querystringyesPart of a name or code, e.g. "micron"

No output schema declared.

No examples provided.

find_topics ~264

List developments for a symbol, sector, theme or storyline. sort=velocity: most statements in the last 24 hours; size: most statements; recent: latest statement first. symbol: comma-separate several (OR). Topics with fewer than 3 statements are left out unless you lower min_statements, so an empty list can mean "only small ones": retry with min_statements=1. With storyline_id every topic of the storyline is listed by default (sort="oldest" gives them in order).

NameTypeReqDescription
cursor––next_cursor from the previous call, for the next page; keep every other argument the same
limitinteger–How many to return per call; use the cursor for more
min_statements––Leave out developments with fewer statements. Default: 3, or 1 with storyline_id
sector––GICS sector
sortstring––
storyline_id––Storyline id, as returned by `storylines`, `get_symbol` or a topic's storylines
symbol––Ticker or entity code, e.g. NVDA. Comma-separate several (OR).
theme_id––Theme id from `themes` or `reference`

No output schema declared.

No examples provided.

get_storyline ~263

One storyline in full: its topics, oldest first (how the story unfolded), and its newest statements. If `topics` is larger than the `members` list, ask again with `members` at its maximum; for a storyline longer than that, page through all of them with find_topics(storyline_id=..., sort="oldest"). While the list is cut, `top_topics` names the storyline's largest topics. `more_statements` says whether it has more statements than shown. If you expect to need them, ask for `statements` at its maximum: only then is `statements_cursor` set, and search_statements(storyline_id=..., cursor=...) continues exactly after them (add symbol to keep only those naming the company). With fewer, the cursor is null and search_statements(storyline_id=...) starts again at the newest, repeating the ones shown here.

NameTypeReqDescription
membersinteger–How many of its topics to list, oldest first
statementsinteger–How many of its newest statements to include
storyline_idstringyesStoryline id, as returned by `storylines`, `get_symbol` or a topic's storylines

No output schema declared.

No examples provided.

get_symbol ~342

One company or other entity in a single call. Use first for "what is going on with X". Returns who it is (name, kind, exchange); its mentions, topics, distinct sources, sentiment counts and score for the last 24 hours (d), the last 7 days (w) and all the history the plan includes, with the change against the period before and the counts over statements that name only this entity (`mentions_single`, `score_single`); the sectors of its statements; its largest topics; its storylines with the most mentions lately; the entities it shares topics with (`related`, empty for a rarely mentioned symbol); and its newest statements. A period without any mention is left out of `periods`. `more_statements` says whether the symbol has more statements than shown. If you expect to need them, ask for `statements` at its maximum: only then is `statements_cursor` set, and search_statements(symbol=..., cursor=...) continues exactly after them. With fewer, the cursor is null and search_statements(symbol=...) starts again at the newest, repeating the ones shown here. Do not guess a code: a wrong one costs a request. Look it up with find_symbol.

NameTypeReqDescription
codestringyesTicker or entity code, e.g. NVDA. Non-US tickers carry an exchange suffix (0700.HK). When unsure of the code, call find_symbol first.
statementsinteger–How many of its newest statements to include
topicsinteger–How many of its largest topics to include

No output schema declared.

No examples provided.

get_topic ~103

One development in full: its counts, how many of its statements come from news, speculative analysis and reddit (source_mix), the storylines it belongs to, and its newest statements, each with its outlet and headline. For older statements call search_statements with topic_id and the returned statements_cursor as cursor (null when there are no more).

NameTypeReqDescription
topic_idstringyesTopic (development) id, as returned in topic_id or topics[].id

No output schema declared.

No examples provided.

reference ~66

What the API holds right now: how far back the plan's history goes (window_days), counts of statements, topics, storylines and symbols, the themes with their ids, and the accepted sector, sentiment, importance, source-type and entity-kind values. One call per conversation is enough.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

screen ~416

Rank symbols (or the GICS sectors) by news attention. Use for "which tickers are suddenly in the news". period: d = last 24 hours, w = last 7 days, window = all the history the plan includes; or pass since (and until) to count any interval. sort=change ranks by the rise in mentions against the period (or equally long interval) before. `change` is null when there is nothing before to compare with: for period=window, for an interval given only by `until`, and for an interval whose preceding interval reaches before the plan's history. Use sort=mentions then. Each row: mentions, topics, sources (distinct outlets), sentiment counts, score and change; symbol rows also carry name, kind and the counts over statements naming only that symbol (`mentions_single`, `score_single`). Only for rank=symbols: sector limits the screen to one sector; min_mentions drops rarely mentioned codes; entity_kinds narrows the kind of entity (`reference` lists the kinds). Without it the list mixes companies with rates, commodities and central banks; pass "equity,etf" for tradable tickers.

NameTypeReqDescription
entity_kinds––Comma-separated entity kinds from: equity, etf, index, rate, fx, crypto, commodity, org, private, country. E.g. "equity,etf"
limitinteger–How many rows to return
min_mentionsinteger–Leave out codes with fewer mentions
periodstring–d = last 24 hours, w = last 7 days, window = all the history the plan includes
rankstring––
sector––GICS sector
since––Start of a custom interval (ISO-8601) to count instead of `period`
sortstring––
until––End of the custom interval (ISO-8601); omit for up to now

No output schema declared.

No examples provided.

search_statements ~398

Search news statements, newest first. Use for "what is the news saying about X". symbol: ticker or entity code, e.g. NVDA; comma-separate several (OR), no spaces inside a code. importance_min=high keeps only key facts. source_type=news leaves out speculative analysis and reddit. storyline_id: every statement of that storyline's topics; add symbol for only those naming its company. since/until: ISO-8601 times on the article's publication time, e.g. 2026-10-01T00:00:00Z. Each statement has its source, the article's headline and its topic. Pass next_cursor back as cursor for the next page (null means no more).

NameTypeReqDescription
cursor––next_cursor from the previous call, for the next page; keep every other argument the same
importance_min––Minimum importance; high = key facts only
limitinteger–How many to return per call; use the cursor for more
sector––GICS sector
sentiment––Only statements with this sentiment
since––ISO-8601 time, e.g. 2026-10-01T00:00:00Z
source_type––One of: news, speculative, reddit. news leaves out speculative analysis and reddit
storyline_id––Storyline id, as returned by `storylines`, `get_symbol` or a topic's storylines
symbol––Ticker or entity code, e.g. NVDA. Comma-separate several (OR).
theme_id––Theme id from `themes` or `reference`
topic_id––Topic (development) id, as returned in topic_id or topics[].id
until––ISO-8601 time, e.g. 2026-10-01T00:00:00Z

No output schema declared.

No examples provided.

sentiment_series ~246

News volume and sentiment over time for exactly one of symbol, sector, theme_id or topic_id. Each bucket: t (UTC start), count, bullish, bearish, neutral, sources (distinct outlets) and score = (bullish - bearish) / count. Buckets with no statements are omitted here. The last bucket is usually the current, still incomplete day or hour: do not read a low last bucket as a drop. interval=hour is for short ranges: pass since/until, and if the range is too long the error says the maximum.

NameTypeReqDescription
intervalstring––
sector––GICS sector
since––ISO-8601 time, e.g. 2026-10-01T00:00:00Z
symbol––One ticker or entity code, e.g. NVDA
theme_id––Theme id from `themes` or `reference`
topic_id––Topic (development) id, as returned in topic_id or topics[].id
until––ISO-8601 time, e.g. 2026-10-01T00:00:00Z

No output schema declared.

No examples provided.

storylines ~351

One company's news grouped into continuing stories: an event, then its follow-ups, reactions and consequences. Use for "how did the X story unfold" or "what are the ongoing stories about X". By default only storylines with two or more topics are listed: an empty list means "none with several topics", so pass min_topics=1 to see the single-topic ones. Each storyline has a name (one of its topics' names), first_seen and last_seen, its number of topics, statements and mentions (statements naming the symbol), distinct sources, sentiment counts of the mentions, `top_topics` (its largest topics; that is all of them when `topics` is no larger than the list) and `related`: storylines of other symbols that share topics with it. Storylines belong to one symbol, so news about two companies appears under each. The grouping is automatic and can be wrong or incomplete, and one real story can be split over several storylines: a reading aid, not a count of events. Call get_storyline when you need every topic in order or the statements.

NameTypeReqDescription
cursor––next_cursor from the previous call, for the next page; keep every other argument the same
limitinteger–How many to return per call; use the cursor for more
min_topicsinteger–Only storylines with at least this many topics; 1 also lists single-topic ones
sortstring–recent = newest statement; mentions; topics; velocity = mentions in the last 24 hours
symbolstringyesExactly one ticker or entity code, e.g. MSFT

No output schema declared.

No examples provided.

themes ~151

The standing subjects the news is grouped into, each with its number of developments and statements, 24-hour volume, distinct sources and sentiment counts. With symbol or sector: only the themes that have statements about it; the counts are still those of the whole theme, so use search_statements with theme_id and symbol for the symbol's own statements. Use the returned id as theme_id in the other tools.

NameTypeReqDescription
sector––GICS sector
sortstring–size = statements; topics = developments; recent = last statement; velocity = statements in the last 24 hours
symbol––Ticker or entity code, e.g. NVDA. Comma-separate several (OR).

No output schema declared.

No examples provided.

trending ~261

The developments most outlets are reporting. Use for "what is moving / what is the big news right now". kind=live: the current list. kind=slot: the top stories of each recent time slot, newest slot first. Each item's `trending` holds its three newest labels (the live list or a slot's start, the rank and the number of sources there); `trending_labels` is how many labels it has in all. The slot list is long (`total`): narrow it with symbol or theme_id rather than asking for all of it. For a whole day rather than right now, use find_topics with sort=velocity (statements in the last 24 hours). Each item has its distinct source count, sentiment counts and newest statement. symbol: one code only.

NameTypeReqDescription
kindstring–live = what is most reported right now; slot = the top of each recent time slot
limitinteger–How many to return, taken from the top of the API's ranking; `total` in the result says how many there are
symbol––One ticker or entity code, e.g. NVDA
theme_id––Theme id from `themes` or `reference`

No output schema declared.

No examples provided.

Install

How do I install the Finance Pulse MCP server?

Finance Pulse runs locally as a PyPI package, launched with uvx finance-pulse. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · finance-pulse

# add to Claude Code
claude mcp add slothyafk-finance-pulse -- uvx finance-pulse
Common questions

What is the Finance Pulse MCP server?

Finance Pulse is an MCP server listed in the public MCP registry as io.github.SlothyAfk/finance-pulse. Financial news as sourced statements with sentiment and tickers, grouped into developments. This page covers its PyPI package (finance-pulse).

Is the Finance Pulse MCP server safe to use?

Finance Pulse scores 60 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 18 October 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 Finance Pulse MCP server expose?

Finance Pulse exposes 12 tools: search_statements, get_symbol, find_symbol, screen, sentiment_series, and 7 more. Their descriptions and schemas cost roughly 3,019 tokens of context every time the server is loaded.

Is the Finance Pulse MCP server still maintained?

Finance Pulse 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 Finance Pulse MCP server under?

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