MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Other

Mastering Financial Markets

Read-only fundamentals of developed-market listed companies from official filings, with dates.

Checks passed
12 / 22

2 failed · 8 not measured

Median response
388 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
11

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Outdated check

Last connection measurement is over 24 hours old. Current availability is unknown.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
310
Publisher identityCan the publisher be traced to its source?
312

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 388 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name MFM research and feedback.

  • Pass
    Lists tools

    tools/list returned 11 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 388 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 388 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Fail
    Parameters documented

    17 of 61 parameters have a description (28%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Fail
    Source repo linked

    No repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-10-27T22:01:53.475652Z, within 180 days.

  • Not measured
    Open-source licence

    No GitHub repository to ask about a licence.

Start using Mastering Financial Markets

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http mastering-financial-markets https://masteringfinancialmarkets.com/ai/mcp

Capabilities

Tools 11

bond_calculator

Same calculations as the fixed-income page. Supply actual dated positive cash flows including redemption, settlement, currency, and either total outlay (clean price + accrued interest + fees) or annual-effective yield as a fraction. Returns price, annual-effective ACT/365F IRR, Macaulay and modified duration, convexity, DV01, maturity and repricing scenarios. Or select one of the 10 published bond ETFs to read N-PORT exposures and reported curve risks; coupon is not yield. No quota consumed, nothing stored, no advice. Search/fetch clients: bond: settlement=2026-11-04; currency=EUR; price=100; 2027-11-04=105. ETF example: bond: etf=TLT; country=US; haircut=0.1

Discovered
fetch

Read one numbered part of a published MFM document or dataset (an id returned by search that starts with "portfolio:" recomputes the portfolio calculator, nothing stored). Company metadata includes verification_level, audit_id, audit_url and controls_performed. metadata.next_id identifies the following part or is null. Audit levels describe programme membership. Company records: amounts are whole units of the currency stated in each period (field currency), never thousands or millions; ratios in metrics are decimals (0.15 = 15%) except anni_* (years), copertura_interessi, conversione_utili_cassa, investimenti_su_ammortamenti and debito_su_patrimonio* (multiples, 1.5 = 1.5 times). years are in ascending order: the latest fiscal year is the LAST element, in the last parts, so follow every next_id before answering. ttm, quarters and interim_reports are separate periods with their own end dates; infrannuale_piu_recente names the most recent interim period and the block that holds it: use that one and never annualise. A null metric has its reason in warnings of the same period; an absent key is not zero. The pe block holds the P/E shown on the site, with the month-end price, its date and currency, earnings per share and the method (pe_ultimo null = not computed, reason in motivo_en); other price-based figures (market value, dividend yield) are not in the record. public_float is the aggregate market value of shares held by non-affiliates declared on the cover of the annual report (SEC: at the end of the second fiscal quarter), not the current market capitalisation; public_float_info gives its date, filing and definition. Two rows with the same fiscal_year (change of year-end) are told apart by period_label. When scheda_conservata_en (Italian: scheda_conservata) is present, the record is retained and no longer updated by the computation: state since when, why and the last financial year before using its figures. A period with perimetro_diverso belongs, wholly or for the listed items (voci), to a different entity (shell, SPAC, reverse-merger predecessor, divested scope): say so, use its en text and do not compare it with later periods. Descriptive data only: no forecast, no recommendation.

Discovered
list_datasets

List public MFM catalog entries, optionally filtered by kind or verification level, with explicit pagination. Catalog availability does not certify completeness of every financial indicator.

Discovered
list_user_proposals

Read the separate public user-proposal history, including final outcomes. These assertions are separate from official audits; next_cursor identifies another results page.

Discovered
portfolio_calculator

Run the MFM portfolio calculator, the same as the calculator page of the site, on positions the USER writes in the conversation. Returns, in order: "sintesi" (the page's «In short» box: {titolo, voci:[{chiave, titolo, testo, numeri}], nota}; composition and concentration against the MSCI World index, price paid for owner earnings against the S&P 500, earnings against the 10-year government bond, largest fall in past crises of the same type with name and years, currency exposure, latent tax; figures and comparisons only), then the page summary, A concentration looking through ETFs (HHI, equivalent companies, sectors, countries, MFM weighted X-ray of the latest reports), B currency risk, C latent tax and tax break-even fall (Italian rules for shares and ETFs when residence is IT), D the historical crises linked to the current MFM Market Weather one by one (name and years, fall in local and reference currency, amount on today's values, time under water, return needed to get back to the peak, inflation while waiting, real break-even), with the site's own sentences, formulas, declared limits and warnings. Each row: security = MFM company id (e.g. aapl), "COUNTRY:TICKER" (e.g. US:AAPL), ISIN, company name (e.g. Apple), or for an equity ETF the index it tracks or the ETF name (e.g. "S&P 500", "MSCI World", "Nasdaq-100", "Euro Stoxx 50", "FTSE All-World", "iShares Core MSCI World UCITS ETF"); current_value and book_cost (total amount paid) in the reference currency. Rows that cannot be resolved are listed with the reason (and candidate ids when several companies match) and left out; the others are computed. ISIN codes are recognised through the public OpenFIGI identifier service, as on the site (only the ISIN is sent, at most 10 per request). THE PORTFOLIO IS NOT STORED OR LOGGED: values exist only inside this request (only the codes of companies held directly are counted for the daily limit, without amounts); do not ask the user for personal data. Description only: historical and accounting figures, no forecast, no investment advice and no judgement; say so to the user. Quota: complete company pages are NOT consumed; companies held directly count toward the calculator limit of 300 companies a day per MFM account, as on the site (ETF-only portfolios count nothing). Clients that only expose search and fetch: search with "portfolio: residence=IT; currency=EUR; tax=26%; S&P 500 30000/25000; Apple 5000/1000; US:MSFT 4000/3500 USD; MSCI World 20000/18000 hedged" (each row: security value/book cost, optionally an exposure currency and "hedged"; "etf:" or "share:" before the name forces the type).

Discovered
quota_status

Read-only: how many complete company pages this MFM account can still read (10 every 5 minutes, 40 a day, 100 different companies a month) and how many selections (40 per calendar month, shared with the website), with reset times (UTC). Nothing is consumed. Clients that only expose search and fetch get the same answer from search with the query "quota" or from fetch with the id "quota".

Discovered
request_update

On explicit user request: analysis=full queues full calculations for a level 3 company overnight, permanently; five new companies per UTC day per account, globally deduplicated by company. The default analysis=pdf queues PDF/interim reading within 7 days, five requests per month per account.

Discovered
screen_companies

Filter and sort ALL MFM company profiles (about 10,700 listed companies) by the parameters the USER chooses, using the latest twelve months of each profile (the latest fiscal year or, when more recent, the reconstructed trailing twelve months; balance sheet at the end of that period; multi-year growth from the annual history): period_end in each result gives the end of that period, which is not necessarily a fiscal year end. Returns at most 10 companies with only the requested parameters, the audit level, a link and the exact fetch_id of the complete page. The order is the one chosen by the user: it is a data selection, not a recommendation, rating or investment advice; say so to the user. Ratios marked [fraction] are decimals (0.15 = 15%) both in filters and in results. Missing values never pass a filter or a sort. Quota per MFM account: 40 selections per calendar month, shared with the website; complete pages read afterwards with fetch count toward 10 every 5 minutes, 40 a day and 100 different companies a month (for more, contact the Observatory). BOND CALCULATOR: search "bond: etf=TLT" or "bond: settlement=2026-11-04; currency=EUR; price=100; 2027-11-04=105". No quota consumed. Metrics: anni_in_utile_5: Profitable years in the last 5; anni_oe_debito: Years of owner earnings to repay debt; anni_oe_debito_imp: Years of owner earnings to repay debt + commitments; anni_utile_debito: Years of earnings to repay debt; anni_utile_debito_imp: Years of earnings to repay debt + commitments; azioni_var3: Change in shares outstanding, 3 years [fraction]; conversione_utili_cassa: Cash conversion; copertura_interessi: Interest coverage; croe_lordo: CROE [fraction]; croe_tangibile: Tangible CROE [fraction]; croic_lordo: CROIC, gross (adjusted FCF) [fraction]; croic_lordo_imp: CROIC, gross (adjusted FCF) + commitments [fraction]; croic_lordo_media5: CROIC gross, 5-year average [fraction]; croic_tangibile: CROIC, tangible (adjusted FCF) [fraction]; croic_tangibile_imp: CROIC, tangible (adjusted FCF) + commitments [fraction]; debito_su_patrimonio: Debt / equity; debito_su_patrimonio_imp: Debt / equity + commitments; intensita_investimenti: Capital intensity [fraction]; margine_fcf: Adjusted FCF margin [fraction]; margine_netto: Net margin [fraction]; oe_attivo: Owner earnings to total assets [fraction]: Card owner earnings (metrics.owner_earnings) / closing total assets for the same fiscal year (values.attivo), in the same currency and unit. Only with immaterial non-controlling interests: their equity absent with evidence, zero with evidence, or in absolute value below 5% of positive total equity; their income, when available, in absolute value below 5% of net income for the same year (zero net income allowed only with zero minority income). Otherwise null with a reason. Unchanged numerator, including negatives; consolidated owner earnings are not reconstructed. MFM proxy: all capex treated as maintenance, additional working capital not deducted; neither a guaranteed lower bound nor distributable cash.; oe_attivo_media5: Owner earnings to total assets, 5-year average [fraction]: Arithmetic mean of the five annual oe_attivo ratios for consecutive distinct fiscal years, all available; otherwise null with a reason. Each ratio requires the same currency and unit for numerator and assets within its year; different currencies across years do not prevent averaging. It is not a ratio of cumulative amounts.; owner_earnings_cagr3: Owner earnings CAGR, 3 years [fraction]; ricavi_cagr3: Revenue CAGR, 3 years [fraction]; ricavi_cagr5: Revenue CAGR, 5 years [fraction]; roe_buffett_lordo: Buffett ROE, gross (income / adjusted capital) [fraction]; roe_buffett_lordo_imp: Buffett ROE, gross (income / adjusted capital) + commitments [fraction]; roe_buffett_tangibile: Buffett ROE, tangible (income / adjusted capital) [fraction]; roe_buffett_tangibile_imp: Buffett ROE, tangible (income / adjusted capital) + commitments [fraction]; roe_normale_lordo: ROE [fraction]; roe_normale_tangibile: Tangible ROE [fraction]; roi: ROI [fraction]; roic_lordo: Buffett ROIC, gross [fraction]; roic_lordo_imp: Buffett ROIC, gross + commitments [fraction]; roic_lordo_media5: Buffett ROIC gross, 5-year average [fraction]; roic_lordo_meno_wacc: Gross ROIC − Buffett WACC [fraction]; roic_lordo_meno_wacc_imp: Gross ROIC − Buffett WACC + commitments [fraction]; roic_lordo_min5: Buffett ROIC gross, 5-year minimum [fraction]; roic_manuali: Textbook ROIC [fraction]; roic_meno_wacc_manuali: Textbook ROIC − WACC [fraction]; roic_tangibile: Buffett ROIC, tangible [fraction]; roic_tangibile_imp: Buffett ROIC, tangible + commitments [fraction]; roic_tangibile_imp_media5: Buffett ROIC tangible + commitments, 5-year average [fraction]; roic_tangibile_meno_wacc: Tangible ROIC − Buffett WACC [fraction]; roic_tangibile_meno_wacc_imp: Tangible ROIC − Buffett WACC + commitments [fraction]; roic_tangibile_meno_wacc_rett: Tangible ROIC + commitments − adjusted WACC [fraction]; roic_tangibile_meno_wacc_sp: Tangible ROIC − WACC, no premium [fraction]; roic_tangibile_meno_wacc_sp_imp: Tangible ROIC − WACC, no premium + commitments [fraction]; utile_operativo_cagr3: Operating income CAGR, 3 years [fraction]; utile_operativo_cagr5: Operating income CAGR, 5 years [fraction]; utili_proprietario_su_attivo: Owner earnings / total assets [fraction]; variazione_derivati_3a: 3-year derivatives change [fraction]; wacc_buffett: Buffett WACC [fraction]; wacc_buffett_imp: Buffett WACC + commitments [fraction]; wacc_buffett_rett: Buffett WACC adjusted (derivatives 3y, MFM heuristic scenario) [fraction]; wacc_buffett_sp: Buffett WACC, no premium [fraction]; wacc_buffett_sp_imp: Buffett WACC, no premium + commitments [fraction]; wacc_manuali: Textbook WACC [fraction]

Discovered
search

Search MFM public companies, pages and published datasets by keyword, company name or ticker. An empty result means no MFM record matched those words: say that MFM does not publish it under those words and never attribute figures from other sources to MFM. Results contain document identifiers and public URLs; private portfolios and accounts are excluded. SELECTION BY PARAMETERS (for clients that only expose search and fetch): start the query with "screen:" followed by conditions separated by spaces, e.g. "screen: roe_buffett_lordo>0.15 roic_tangibile>=12% debito_su_patrimonio<0.8 country=US,DE level=1,2 sort=roic_tangibile order=desc limit=10". Ratios are fractions (0.15 = 15%; "15%" is accepted); options: country=, sector=, industry=, level=1,2,3, developed=true, name=, sort=metric, order=asc|desc, limit=1-10, columns=a,b. Each result is one company with the requested metrics in the title and text and the fetch id of its complete page. The order is the one chosen by the user: a data selection, never a recommendation. Quota per MFM account: 40 selections per calendar month, shared with the website. PORTFOLIO CALCULATOR (same clients): start the query with "portfolio:" followed by settings and lines separated by ";", e.g. "portfolio: residence=IT; currency=EUR; tax=26%; S&P 500 30000/25000; Apple 5000/1000; US:MSFT 4000/3500 USD; MSCI World 20000/18000 hedged" (each line: security current_value/book_cost in the reference currency; company id, COUNTRY:TICKER, ISIN, company name, or the index an equity ETF tracks). One result with the whole calculator summary in its text, the same as the portfolio_calculator tool; nothing is stored. BOND CALCULATOR: search "bond: etf=TLT" or "bond: settlement=2026-11-04; currency=EUR; price=100; 2027-11-04=105". No quota consumed. Metrics: anni_in_utile_5: Profitable years in the last 5; anni_oe_debito: Years of owner earnings to repay debt; anni_oe_debito_imp: Years of owner earnings to repay debt + commitments; anni_utile_debito: Years of earnings to repay debt; anni_utile_debito_imp: Years of earnings to repay debt + commitments; azioni_var3: Change in shares outstanding, 3 years [fraction]; conversione_utili_cassa: Cash conversion; copertura_interessi: Interest coverage; croe_lordo: CROE [fraction]; croe_tangibile: Tangible CROE [fraction]; croic_lordo: CROIC, gross (adjusted FCF) [fraction]; croic_lordo_imp: CROIC, gross (adjusted FCF) + commitments [fraction]; croic_lordo_media5: CROIC gross, 5-year average [fraction]; croic_tangibile: CROIC, tangible (adjusted FCF) [fraction]; croic_tangibile_imp: CROIC, tangible (adjusted FCF) + commitments [fraction]; debito_su_patrimonio: Debt / equity; debito_su_patrimonio_imp: Debt / equity + commitments; intensita_investimenti: Capital intensity [fraction]; margine_fcf: Adjusted FCF margin [fraction]; margine_netto: Net margin [fraction]; oe_attivo: Owner earnings to total assets [fraction]: Card owner earnings (metrics.owner_earnings) / closing total assets for the same fiscal year (values.attivo), in the same currency and unit. Only with immaterial non-controlling interests: their equity absent with evidence, zero with evidence, or in absolute value below 5% of positive total equity; their income, when available, in absolute value below 5% of net income for the same year (zero net income allowed only with zero minority income). Otherwise null with a reason. Unchanged numerator, including negatives; consolidated owner earnings are not reconstructed. MFM proxy: all capex treated as maintenance, additional working capital not deducted; neither a guaranteed lower bound nor distributable cash.; oe_attivo_media5: Owner earnings to total assets, 5-year average [fraction]: Arithmetic mean of the five annual oe_attivo ratios for consecutive distinct fiscal years, all available; otherwise null with a reason. Each ratio requires the same currency and unit for numerator and assets within its year; different currencies across years do not prevent averaging. It is not a ratio of cumulative amounts.; owner_earnings_cagr3: Owner earnings CAGR, 3 years [fraction]; ricavi_cagr3: Revenue CAGR, 3 years [fraction]; ricavi_cagr5: Revenue CAGR, 5 years [fraction]; roe_buffett_lordo: Buffett ROE, gross (income / adjusted capital) [fraction]; roe_buffett_lordo_imp: Buffett ROE, gross (income / adjusted capital) + commitments [fraction]; roe_buffett_tangibile: Buffett ROE, tangible (income / adjusted capital) [fraction]; roe_buffett_tangibile_imp: Buffett ROE, tangible (income / adjusted capital) + commitments [fraction]; roe_normale_lordo: ROE [fraction]; roe_normale_tangibile: Tangible ROE [fraction]; roi: ROI [fraction]; roic_lordo: Buffett ROIC, gross [fraction]; roic_lordo_imp: Buffett ROIC, gross + commitments [fraction]; roic_lordo_media5: Buffett ROIC gross, 5-year average [fraction]; roic_lordo_meno_wacc: Gross ROIC − Buffett WACC [fraction]; roic_lordo_meno_wacc_imp: Gross ROIC − Buffett WACC + commitments [fraction]; roic_lordo_min5: Buffett ROIC gross, 5-year minimum [fraction]; roic_manuali: Textbook ROIC [fraction]; roic_meno_wacc_manuali: Textbook ROIC − WACC [fraction]; roic_tangibile: Buffett ROIC, tangible [fraction]; roic_tangibile_imp: Buffett ROIC, tangible + commitments [fraction]; roic_tangibile_imp_media5: Buffett ROIC tangible + commitments, 5-year average [fraction]; roic_tangibile_meno_wacc: Tangible ROIC − Buffett WACC [fraction]; roic_tangibile_meno_wacc_imp: Tangible ROIC − Buffett WACC + commitments [fraction]; roic_tangibile_meno_wacc_rett: Tangible ROIC + commitments − adjusted WACC [fraction]; roic_tangibile_meno_wacc_sp: Tangible ROIC − WACC, no premium [fraction]; roic_tangibile_meno_wacc_sp_imp: Tangible ROIC − WACC, no premium + commitments [fraction]; utile_operativo_cagr3: Operating income CAGR, 3 years [fraction]; utile_operativo_cagr5: Operating income CAGR, 5 years [fraction]; utili_proprietario_su_attivo: Owner earnings / total assets [fraction]; variazione_derivati_3a: 3-year derivatives change [fraction]; wacc_buffett: Buffett WACC [fraction]; wacc_buffett_imp: Buffett WACC + commitments [fraction]; wacc_buffett_rett: Buffett WACC adjusted (derivatives 3y, MFM heuristic scenario) [fraction]; wacc_buffett_sp: Buffett WACC, no premium [fraction]; wacc_buffett_sp_imp: Buffett WACC, no premium + commitments [fraction]; wacc_manuali: Textbook WACC [fraction]

Discovered
submit_feedback

Prepare a technical proposal for the separate public User Register after explicit user publication consent. The author is masked and the declared model is public. Receipt status PENDING_TIMESTAMP is not public acceptance; publication follows verified timestamp proof. This cannot edit financial data or official audits.

Discovered
submit_peer_review

Prepare an evidence-based peer review for the separate 15-day User Register after explicit user publication consent. The author is publicly masked. Financial records and official audits remain unchanged. A proof-pending receipt is not yet public acceptance.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected388 ms11