{"apiVersion":"v1","directorySlug":"stocklify-mcp-e2fb4a425b","title":"Stocklify · Stocklify","description":"Company financials, original reports, screening and your investment research in one workspace.","pageUrl":"https://www.mcpbundles.com/skills/stocklify-mcp-e2fb4a425b","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://stocklify.app/mcp","hostedMcpUrl":null,"toolCount":78,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"app.stocklify/stocklify-mcp-e2fb4a425b","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"search","description":"Find companies by ticker, name, ISIN or WKN. Returns ids to pass to fetch. Use this first when the user names a company in words.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","maxLength":200}},"additionalProperties":false},"title":"Search companies","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search","displayName":"Search companies"},{"name":"get_gaps","description":"Every decision-relevant figure this company does NOT have, each with the reason it is absent. A gap is never just a blank here: it is either 'undefiniert' (the denominator is not positive — a company at a loss has no P/E, one with negative tangible book has no P/TBV), 'ohne_us' (only published under a US filing obligation — for shortFloat that is the vendor's ratio to float, NOT a silent market: 13 national supervisors publish net short POSITIONS and get_short_interest reads them, but a position","inputSchema":{"type":"object","required":["symbol"],"properties":{"symbol":{"type":"string"}},"additionalProperties":false},"title":"What is missing for one company, and why","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_gaps","displayName":"What is missing for one company, and why"},{"name":"coverage","description":"How much of the universe carries each field, and the as-of date — for a single field as well as for the thinnest ones. Ask this before treating a thin field as evidence: under 80 % coverage a pillar component is not load-bearing (CLAUDE.md 7).","inputSchema":{"type":"object","required":[],"properties":{"field":{"type":"string"}},"additionalProperties":false},"title":"What the data actually covers","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"coverage","displayName":"What the data actually covers"},{"name":"get_financials","description":"Revenue, the three margins, operating cash flow, free cash flow, capital expenditure, debt, cash, share count, dividends paid, buybacks and the return ratios — as time series, annual (five fiscal years plus TTM) or quarterly (up to FIFTEEN quarters plus a TTM row — measured 2026-09-02, 2,531 of the 2,719 companies with quarterly data carry more than twelve). Amounts are in the company's REPORTING currency and are not converted; the currency travels with every series. Margins are delivered as per","inputSchema":{"type":"object","required":["symbol"],"properties":{"since":{"type":"integer","maximum":2100,"minimum":1990},"period":{"enum":["annual","quarterly"],"type":"string"},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Statement history","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_financials","displayName":"Statement history"},{"name":"get_segment_revenue","description":"Revenue broken down by business segment, by product or service, and by geography, read off the XBRL axes inside the company's own filing — the dimensions the companyfacts endpoint cannot return. Each figure carries its period, the concept it was filed under and the accession it came from. Members are XBRL identifiers exactly as filed, not labels. An empty answer always says which kind of empty it is: not_collected, not_parsed, no_breakdown_axis or no_revenue_on_axis. Organic growth is not return","inputSchema":{"type":"object","required":["symbol"],"properties":{"kind":{"enum":["segment","geography","product"],"type":"string"},"limit":{"type":"integer","maximum":1000,"minimum":1},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Revenue by segment, product and region","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_segment_revenue","displayName":"Revenue by segment, product and region"},{"name":"get_tax_rate_reconciliation","description":"The effective income tax rate reconciliation from the company's own tagged filing: statutory rate, every bridging item — foreign rate differential, state taxes, credits, share-based compensation, valuation allowance — and the effective rate, per period. Each item carries both the value as filed and the value as presented, because filers tag benefits positive and present them negated, and the difference is nine percentage points on a real example. Every period says whether the bridge closes and b","inputSchema":{"type":"object","required":["symbol"],"properties":{"symbol":{"type":"string"}},"additionalProperties":false},"title":"Statutory-to-effective tax rate bridge","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_tax_rate_reconciliation","displayName":"Statutory-to-effective tax rate bridge"},{"name":"get_disclosure_notes","description":"The notes a company tags in its own filing — tax, leases, pensions, contingencies, goodwill, deferred revenue, provisions, minority interests, discontinued operations, segments, debt and the rest. Called without a topic it returns the index of every note the filing tags, with sizes; called with one it returns that note's text, paged. Each boundary is the filer's own tagging rather than a heading search, so a note that cross-references another is still the whole note. A topic with nothing under i","inputSchema":{"type":"object","required":["symbol"],"properties":{"topic":{"type":"string"},"offset":{"type":"integer","minimum":0},"symbol":{"type":"string"},"maxChars":{"type":"integer","maximum":40000,"minimum":500}},"additionalProperties":false},"title":"Notes to the accounts, bounded by the filer","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_disclosure_notes","displayName":"Notes to the accounts, bounded by the filer"},{"name":"get_valuation","description":"The current multiples, the company's OWN historical range for each, the sector median, and the peer group. NO single fair value and no discounted cash flow: this database holds no intrinsic-value model, and one invented here would be an opinion wearing a number's clothes. The scenarios are the company's own five-year range — nothing more is claimed for them. Multiples a sector switches off are marked, not silently omitted. Scoped earnings produce separately labelled continuing-operations and rep","inputSchema":{"type":"object","required":["symbol"],"properties":{"symbol":{"type":"string"}},"additionalProperties":false},"title":"Multiples, own history and sector","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_valuation","displayName":"Multiples, own history and sector"},{"name":"get_filings","description":"Every filing for ONE company, newest first, with form, date, what the form means, a direct EDGAR link, and whether it postdates the metrics snapshot — the one case where a document provably supersedes the figures on file. Paginated. Coverage depends on the identified issuer and stored filings; missing home-regulator evidence remains explicit. Retrieval time for returned records is unknown unless separately established; source-wide dates cannot supply it.","inputSchema":{"type":"object","required":["symbol"],"properties":{"form":{"type":"string"},"page":{"type":"integer","minimum":1},"limit":{"type":"integer","maximum":100,"minimum":1},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Filings for one company","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_filings","displayName":"Filings for one company"},{"name":"get_transcripts","description":"The earnings calls on file: quarter, date, summary and source link. Each call states whether the FULL TEXT is present, was never fetched, or does not exist at the source — three different things that must not be read as one. A summary is not the call, and this tool never implies otherwise.","inputSchema":{"type":"object","required":["symbol"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","maximum":100,"minimum":1},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Earnings calls","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_transcripts","displayName":"Earnings calls"},{"name":"get_transcript","description":"The text of ONE earnings call: speaker turns with names, roles and timestamps. Ask `get_transcripts` first for the call ids. `section` selects 'prepared', 'qa' or 'all' — prepared remarks are approved in advance and the Q&A is not, so quoting one as the other misrepresents it. `speaker` narrows to one person. The response is capped; a long call is returned in pages.","inputSchema":{"type":"object","required":["symbol"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","maximum":100,"minimum":1},"callId":{"type":"integer","maximum":999999999,"minimum":1},"symbol":{"type":"string"},"section":{"enum":["prepared","qa","all"],"type":"string"},"speaker":{"type":"string"}},"additionalProperties":false},"title":"One earnings call, in full","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_transcript","displayName":"One earnings call, in full"},{"name":"search_transcripts","description":"Search the earnings calls for a phrase and get ranked excerpts back, each with the call, the speaker, the timestamp and whether it was said in the prepared remarks or under questioning. `symbol` narrows to one company, omitted it searches every company. Supports quoted phrases and -exclusions. An excerpt is evidence of what was SAID, not of what is true.","inputSchema":{"type":"object","required":["query"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","maximum":50,"minimum":1},"query":{"type":"string"},"since":{"type":"string"},"symbol":{"type":"string"},"section":{"enum":["prepared","qa","all"],"type":"string"},"speaker":{"type":"string"},"withText":{"type":"boolean"}},"additionalProperties":false},"title":"Search what was said on the calls","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search_transcripts","displayName":"Search what was said on the calls"},{"name":"get_filing_section","description":"The text of a named section of a 10-K or 10-Q: legalProceedings, riskFactors, mdna, controls or properties. Returns the section with its accession number and a character offset you can cite. Ask get_filings first for the accession, or omit it for the most recent periodic report. A section that merely cross-references the notes is reported as such — a short Legal Proceedings item is usually a pointer, not a position.","inputSchema":{"type":"object","required":["symbol","section"],"properties":{"offset":{"type":"integer","minimum":0},"symbol":{"type":"string"},"section":{"enum":["legalProceedings","riskFactors","mdna","controls","properties"],"type":"string"},"maxChars":{"type":"integer","maximum":40000,"minimum":500},"accession":{"type":"string"}},"additionalProperties":false},"title":"One section of a filing","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_filing_section","displayName":"One section of a filing"},{"name":"get_dividend_history","description":"Ex-date, payment date and amount per share for each recorded payment, plus the TTM dividend, yield, payout ratio, growth rates and the number of consecutive growth years. Amounts arrive from the source as strings with a currency symbol and are parsed, not assumed to be dollars. Each payment carries one of three statuses, because the source lists declared future payments beside settled ones: announced (the ex-date has not arrived), ex_dividend (it has, but the payment date has not, or no payment","inputSchema":{"type":"object","required":["symbol"],"properties":{"limit":{"type":"integer","maximum":200,"minimum":1},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Dividend record","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_dividend_history","displayName":"Dividend record"},{"name":"get_quote","description":"The most recent stored quote: price, change, change percent, previous close, the day's high and low, volume, the 52-week high and low, and the drawdown from that high. The currency, the venue and the market state come from the row rather than from an assumption. This is the LAST observation, not a live stream — `fetchedAt` and `ageMinutes` are part of the answer, and a quote older than half an hour says so in a warning rather than being served as if it were current.","inputSchema":{"type":"object","required":["symbol"],"properties":{"symbol":{"type":"string"}},"additionalProperties":false},"title":"The last price observed","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_quote","displayName":"The last price observed"},{"name":"get_price_history","description":"Daily open, high, low, close and volume over a range, adjusted for splits and dividends where the source supplied an adjusted close. Only DAILY data is stored: `weekly` and `monthly` are the last trading day of each period, not re-aggregated candles, and the envelope says so — a weekly high that is really one day's high would otherwise be read as the week's.","inputSchema":{"type":"object","required":["symbol"],"properties":{"limit":{"type":"integer","maximum":2000,"minimum":1},"range":{"enum":["1m","3m","6m","1y","2y","5y","max"],"type":"string"},"symbol":{"type":"string"},"interval":{"enum":["daily","weekly","monthly"],"type":"string"}},"additionalProperties":false},"title":"The daily series","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_price_history","displayName":"The daily series"},{"name":"get_analyst_estimates","description":"Analyst count, the distribution of ratings, the price-target range and the growth estimates. This is OTHER PEOPLE'S OPINION and is labelled as such in every answer — it is never company-reported data. A missing low target stays missing; the corridor is not completed. No record of past forecast accuracy exists here, so these cannot be weighted by track record.","inputSchema":{"type":"object","required":["symbol"],"properties":{"symbol":{"type":"string"}},"additionalProperties":false},"title":"The outside view","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_analyst_estimates","displayName":"The outside view"},{"name":"get_profile","description":"Identity and description: name, sector, industry, country, exchange, ISIN, reporting currency, its SEC filing standing, the business description, employees, year founded and named leadership. The filing standing is two facts, not one: whether the company owes US filings, and whether EDGAR carries an identity for it here. 369 companies have one without the other, and the difference decides whether an empty filing list is a fact about the company or a gap in this archive. Form 25 and Form 15 notic","inputSchema":{"type":"object","required":["symbol"],"properties":{"symbol":{"type":"string"}},"additionalProperties":false},"title":"What the company is","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_profile","displayName":"What the company is"},{"name":"get_company_events","description":"Material events extracted for one company, newest first — the compact view: id, type, date, title, summary, materiality and its rule, source, and the evidence that binds a news-built event to this company (subjectEvidence). Critical and high events resting only on name-matched news are withheld by default and counted in withheldUnverified, the same rule as get_events. get_events answers the same log with filters (since, until, event_type, materiality) and 23 fields per row including the evidence","inputSchema":{"type":"object","required":["symbol"],"properties":{"limit":{"type":"integer","maximum":100,"minimum":1},"symbol":{"type":"string"},"include_unverified":{"type":"boolean"}},"additionalProperties":false},"title":"Extracted material events","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_company_events","displayName":"Extracted material events"},{"name":"get_insider_transactions","description":"SUPERSEDED BY get_insider, which answers the same question over the same rows and carries more of them: the decoded transaction code, the 10b5-1 flag AND the holding after the transaction. This tool stays because callers key on it; prefer get_insider for new work. Form 3/4/5 transactions for one company, in snake_case. READ THE WARNING: it states, measured at the time of the call, how many rows this table holds and how many companies they cover. A company outside that covered set has no rows her","inputSchema":{"type":"object","required":["symbol"],"properties":{"limit":{"type":"integer","maximum":100,"minimum":1},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Insider dealings, with their limits","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_insider_transactions","displayName":"Insider dealings, with their limits"},{"name":"get_event","description":"A single consolidated event with its classification rule, external identifiers (SEC accession number where there is one) and any duplicate marks. Duplicate marks are recorded and never applied — nothing was merged on them.","inputSchema":{"type":"object","required":["event_id"],"properties":{"event_id":{"type":"string"}},"additionalProperties":false},"title":"One event in full","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_event","displayName":"One event in full"},{"name":"get_event_sources","description":"The individual reports backing one event: source, canonical URL, publication time and how that time was obtained. Call this only when a classification needs checking — it is the expensive half on purpose.","inputSchema":{"type":"object","required":["event_id"],"properties":{"limit":{"type":"integer","maximum":100,"minimum":1},"event_id":{"type":"string"}},"additionalProperties":false},"title":"The reports behind one event","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_event_sources","displayName":"The reports behind one event"},{"name":"get_insider","description":"Individual insider transactions with the transaction code spelled out and the 10b5-1 flag kept separate. Codes are not interchangeable: only P is an open-market purchase, while F (tax withholding) and A (grant) happen automatically and say nothing about anyone's view.","inputSchema":{"type":"object","required":["symbol"],"properties":{"code":{"type":"string"},"limit":{"type":"integer","maximum":200,"minimum":1},"since":{"type":"string"},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Form 4 transactions","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_insider","displayName":"Form 4 transactions"},{"name":"get_insider_activity","description":"Deterministic aggregates over open-market transactions: buyer counts, cluster sizes, CEO/CFO/director participation, value against market cap, and where the current cluster sits in the company's own history. Numbers only — no signal label, no score. Planned 10b5-1 sales are reported apart from discretionary ones.","inputSchema":{"type":"object","required":["symbol"],"properties":{"symbol":{"type":"string"}},"additionalProperties":false},"title":"Insider activity, aggregated","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_insider_activity","displayName":"Insider activity, aggregated"},{"name":"get_recent_material_changes","description":"The screening entry point: which companies recorded material changes in a window, grouped by company and ordered by severity. This is the one tool that answers 'where should I look' rather than 'tell me about this stock'. Recorded changes, not recommendations.","inputSchema":{"type":"object","required":[],"properties":{"limit":{"type":"integer","maximum":100,"minimum":1},"since":{"type":"string"},"sector":{"type":"string"},"country":{"type":"string"},"event_types":{"type":"string"},"include_unverified":{"type":"boolean"},"minimum_materiality":{"type":"string"}},"additionalProperties":false},"title":"Where something moved, across the universe","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_recent_material_changes","displayName":"Where something moved, across the universe"},{"name":"get_source","description":"The documents behind the figures. Without an endpoint: which payloads are retained for this company, with content hash, retrieval date and size. With one: that payload as it was retrieved, so a figure can be checked against its source rather than trusted. Price history and the live quote feed are licensed and are served by no tool. A filing's primary document, stored under `filing-text:<accession>`, is served paged with maxChars and offset.","inputSchema":{"type":"object","required":["symbol"],"properties":{"offset":{"type":"integer","maximum":50000000,"minimum":0},"symbol":{"type":"string"},"version":{"type":"integer","maximum":10000,"minimum":1},"endpoint":{"type":"string"},"maxChars":{"type":"integer","maximum":40000,"minimum":500}},"additionalProperties":false},"title":"The retained source payload","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_source","displayName":"The retained source payload"},{"name":"explain_metric","description":"The formula behind one metric for one company, with every operand and its value. `origin` says which of three things it is: `derived` (computed here, the formula is exact), `reported` (the provider computed it; the stated method is given and the working is not ours to show) or `filed` (read from a statement, no arithmetic). Where rebuilding a reported metric from the columns would give a different number — the provider using average balances against a point-in-time column, for instance — the ans","inputSchema":{"type":"object","required":["symbol","metric"],"properties":{"metric":{"type":"string"},"symbol":{"type":"string"},"fiscalPeriod":{"type":"string"}},"additionalProperties":false},"title":"Where a number came from","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"explain_metric","displayName":"Where a number came from"},{"name":"get_point_in_time","description":"Reported observations from the retained SEC and ESEF routes, by period, with the first filing beside the latest filing allowed by knownOn. knownOn bounds the filing date, not the reporting period or first retrieval; this is an as-filed timeline. Returns original source values, units, filing identifiers and comparisonVersion. comparisonStatus distinguishes comparable changes from possible_scale_change and incomparable units. Unresolved analytical values are null; rawValue retains the stored evide","inputSchema":{"type":"object","required":["symbol","metric"],"properties":{"limit":{"type":"integer","maximum":40,"minimum":1},"metric":{"type":"string"},"symbol":{"type":"string"},"knownOn":{"type":"string"}},"additionalProperties":false},"title":"What was known on a date","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_point_in_time","displayName":"What was known on a date"},{"name":"get_legal_matters","description":"The legal proceedings a company describes in its own annual report. Says whether Item 3 describes the matters, says there is nothing material, or points at a note — ten of eighteen filings measured point elsewhere — and follows the pointer into the contingencies note. Each matter carries the court or regulator, any docket numbers, what is alleged, where it stands, the period, the company's response and any recorded provision, plus the passage all of it was read from. A field the filing does not","inputSchema":{"type":"object","required":["symbol"],"properties":{"symbol":{"type":"string"},"accession":{"type":"string"}},"additionalProperties":false},"title":"Legal proceedings from the filing","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_legal_matters","displayName":"Legal proceedings from the filing"},{"name":"get_estimate_history","description":"The analyst consensus for one company as it was observed on each day it was recorded, with the step between adjacent observations classified as a revision, a source change or unchanged. Always states `historyStartsAt`: nothing before the first observation was collected and it cannot be recovered. A revision is only ever computed between two observed vintages, never between a vintage and the current value. Analyst accuracy reports `insufficient_history` with the depth until the series spans a for","inputSchema":{"type":"object","required":["symbol"],"properties":{"limit":{"type":"integer","maximum":400,"minimum":1},"symbol":{"type":"string"}},"additionalProperties":false},"title":"The consensus as it was observed, and what moved","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_estimate_history","displayName":"The consensus as it was observed, and what moved"},{"name":"get_data_conflicts","description":"Every place two sources carry the same fact about one company and give different answers: the SEC-derived and screener-derived pillar scores, and differing figures in later filings, including unresolved scale changes. Returns BOTH readings with their sources, how far apart they are, the selection rule a caller could apply — stated, never applied here — and a resolution state that distinguishes a disagreement nobody has examined from one explained by a revision or by a difference in method. An em","inputSchema":{"type":"object","required":["symbol"],"properties":{"limit":{"type":"integer","maximum":100,"minimum":1},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Where two sources disagree, with both readings kept","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_data_conflicts","displayName":"Where two sources disagree, with both readings kept"},{"name":"health","description":"Liveness and readiness in one answer: whether the process is serving, whether the database responds, and which required relations are missing if any. Never returns the database's own error text, which carries hostnames and query fragments. A degraded answer is a complete answer, not a failure.","inputSchema":{"type":"object","required":[],"properties":{},"additionalProperties":false},"title":"Whether the service is up and its database usable","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"health","displayName":"Whether the service is up and its database usable"},{"name":"list_capabilities","description":"Every tool this server publishes, with its auth, cost and trust class, and -- where the capability is under contract -- its contract version, coverage target and the limitations recorded against it. The limitations are part of the answer rather than a footnote: a catalogue that lists only what a tool does invites the reader to assume everything else is included.","inputSchema":{"type":"object","required":[],"properties":{"capability":{"type":"string"}},"additionalProperties":false},"title":"Every published tool, with its contract version and known limits","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_capabilities","displayName":"Every published tool, with its contract version and known limits"},{"name":"list_sources","description":"Every source this system is allowed to read, with its lifecycle stage (shadow, candidate, authoritative, retired), access method, authority level, jurisdiction, rate policy, declared cadence and last recorded health. A source in `shadow` or `candidate` is fetched and compared and depended upon by nothing; only `authoritative` answers production metrics. History depth is part of the contract for this endpoint and is recorded nowhere, so it is returned as null with the reason rather than estimated","inputSchema":{"type":"object","required":[],"properties":{"stage":{"type":"string"},"source":{"type":"string"}},"additionalProperties":false},"title":"Every registered source, with its lifecycle stage and access profile","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_sources","displayName":"Every registered source, with its lifecycle stage and access profile"},{"name":"get_schema","description":"The JSON Schema for a named tool's arguments and, where it is described, its structured response, plus a versioned interpretation policy covering population, time, units, missing values, applicability and decision limits. A documented policy is not evidence that all response checks passed. Generated from the same definitions that produce `tools/list`, so the two cannot disagree. Naming a tool that does not exist returns the list of names rather than an empty object.","inputSchema":{"type":"object","required":["tool"],"properties":{"tool":{"type":"string"}},"additionalProperties":false},"title":"One tool's request and response schema","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_schema","displayName":"One tool's request and response schema"},{"name":"get_data_dictionary","description":"The field catalogue: every metric's label, kind, group, parent, and the MEASURED share of the universe for which it exists. Coverage is part of the definition, not a footnote -- filtering on a metric that exists for 45 % of companies is a second filter the result does not show. States what `null` means for each kind, which is never zero and not always the same thing.","inputSchema":{"type":"object","required":[],"properties":{"limit":{"type":"integer","maximum":400,"minimum":1},"prefix":{"type":"string"}},"additionalProperties":false},"title":"Every metric, with its unit, its group and how populated it is","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_data_dictionary","displayName":"Every metric, with its unit, its group and how populated it is"},{"name":"get_quality_report","description":"Per source: when it last ran and how it answered, with refusals (403), throttling (429) and timeouts counted separately because they mean different things. Plus how many securities carry a second reading that could disagree, and the findings the data audit has recorded. An empty findings list means nothing was found by the checks that exist, which is not the same as nothing being wrong, and the answer says so.","inputSchema":{"type":"object","required":[],"properties":{"limit":{"type":"integer","maximum":100,"minimum":1}},"additionalProperties":false},"title":"How fresh the sources are, and what is known to be wrong","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_quality_report","displayName":"How fresh the sources are, and what is known to be wrong"},{"name":"get_peers","description":"Peers in four tiers -- direct competitors, same business model, priced alike, same sector -- each with the rule it qualified under and how nearly it did. A tier is returned EMPTY rather than filled from a wider one: a company with no earnings has no valuation peers, and supplying sector names there would answer a different question under the same label. Sector peers carry no comparability ratio because they qualified on none.","inputSchema":{"type":"object","required":["symbol"],"properties":{"tier":{"type":"string"},"limit":{"type":"integer","maximum":25,"minimum":1},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Comparison groups by tier, with why each peer qualifies","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_peers","displayName":"Comparison groups by tier, with why each peer qualifies"},{"name":"get_guidance_accuracy","description":"Management guidance held against what was actually reported: how many forecasts landed INSIDE the guided range, how many ABOVE it and how many BELOW. The direction is half the answer -- beating a range and missing it are different findings about a management, and a hit rate alone reports them as one. Measured 2026-09-02: 8,470 scorable pairs over 942 companies. Only LEVEL guidance is scored (a figure in currency or per share); growth and margin guidance is counted and named in the answer but not","inputSchema":{"type":"object","required":["symbol"],"properties":{"symbol":{"type":"string"}},"additionalProperties":false},"title":"Whether guidance came true — and why that cannot be scored yet","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_guidance_accuracy","displayName":"Whether guidance came true — and why that cannot be scored yet"},{"name":"search_documents","description":"Search across the three document stores this repository holds, and each store is searched by what it actually has indexed -- stated here rather than promised as one thing. EARNINGS CALLS: real full text over the speaker turns, the same index search_transcripts uses, covering the calls whose turns are on file. SEC FILINGS: the form type only in THIS tool. The narrative blocks of a filing ARE indexed since T-686 -- 2.59 million of them over 3,175 issuers, measured 2026-09-04 -- and search_filing_t","inputSchema":{"type":"object","required":[],"properties":{"limit":{"type":"integer","maximum":100,"minimum":1},"query":{"type":"string"},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Search filings, calls and IR pages together","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search_documents","displayName":"Search filings, calls and IR pages together"},{"name":"search_filing_text","description":"Full-text search over the narrative blocks of filings — the notes, the accounting policies, the contingencies, the segment discussion — as the issuer tagged them. Each hit names the accession, the topic and the period, and carries the phrase in context. Supports the websearch syntax: quotes for a phrase, `or`, and a leading `-` to exclude. THE ANSWER STATES HOW MUCH IS INDEXED: the corpus is being backfilled block by block, and until that finishes a search sees less than is held — a number, not","inputSchema":{"type":"object","required":["query"],"properties":{"limit":{"type":"integer","maximum":100,"minimum":1},"query":{"type":"string"},"topic":{"type":"string"},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Find a phrase inside the notes of a filing","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search_filing_text","displayName":"Find a phrase inside the notes of a filing"},{"name":"get_one_off_items","description":"The unusual items in a company's income statement, year by year, with an adjusted figure BESIDE the reported one and never instead of it. Each adjustment names its item and its amount, so a reader can disagree with it. AN ITEM THAT RECURS IS NOT ADJUSTED OUT: an item standing in at least 3 of the last 5 years is marked `recurring` and held back from the adjustment, because a charge that comes every year is a cost of the business — Intel carried merger and restructuring charges in 2022, 2023, 202","inputSchema":{"type":"object","required":["symbol"],"properties":{"years":{"type":"integer","maximum":25,"minimum":1},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Reported, adjusted and recurring earnings, side by side","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_one_off_items","displayName":"Reported, adjusted and recurring earnings, side by side"},{"name":"get_cost_of_capital","description":"Cost of equity, cost of debt and WACC, built from the components this store actually carries — and explicit about the one it does not. THE MARKET RISK PREMIUM IS NOT HELD ANYWHERE and is not invented: pass `marketRiskPremium` in percent and the answer computes with YOUR assumption written into it; omit it and you get the components plus the statement that CAPM cannot be closed. The risk-free rate comes from the curve of the company's REPORTING currency — UST_10Y for USD, EA_YC_10Y for EUR; JPY,","inputSchema":{"type":"object","required":["symbol"],"properties":{"symbol":{"type":"string"},"marketRiskPremium":{"type":"number","maximum":25,"minimum":0}},"additionalProperties":false},"title":"Cost of capital, assembled from what is held","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_cost_of_capital","displayName":"Cost of capital, assembled from what is held"},{"name":"get_sector_valuation","description":"For one company, the substitute valuation methods its SECTOR calls for — the same list that switches the standard multiples off (CLAUDE.md 3) — with each one either computed or refused by name. REITs are asked for p_to_affo and nav_discount_pct, banks for p_to_tangible_book and cet1_buffer_bp, semiconductors and industrials for ev_to_midcycle_ebitda, software for rule_of_40. NO SINGLE FAIR VALUE comes out of this and none is intended: a method that cannot be computed says why, so the gap is visi","inputSchema":{"type":"object","required":["symbol"],"properties":{"symbol":{"type":"string"}},"additionalProperties":false},"title":"The valuation methods this sector's handbook names","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_sector_valuation","displayName":"The valuation methods this sector's handbook names"},{"name":"get_document_versions","description":"The stored versions of one endpoint's payload for one company, with the content hash, the retrieval time and the HTTP status of each. Two versions carrying the same hash are the same document fetched twice, and the answer counts distinct contents separately so a re-fetch is not read as a change.","inputSchema":{"type":"object","required":["symbol","endpoint"],"properties":{"symbol":{"type":"string"},"endpoint":{"type":"string"}},"additionalProperties":false},"title":"Every stored version of one fetched document","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_document_versions","displayName":"Every stored version of one fetched document"},{"name":"get_document_diff","description":"Changes between two versions of a document, ALWAYS stating which of two comparisons it performed: two versions of a fetched payload (what the source changed between our fetches) or a filing and the filing it amends (what the issuer restated). These answer different questions and are never merged. The answer also names what was NOT compared, because a diff that reports only what it looked at lets a reader conclude the rest was unchanged. Measured 2026-08-31, only 2 of 253,032 stored payloads have","inputSchema":{"type":"object","required":["symbol"],"properties":{"limit":{"type":"integer","maximum":100,"minimum":1},"symbol":{"type":"string"},"endpoint":{"type":"string"}},"additionalProperties":false},"title":"What changed between two versions, and which comparison that was","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_document_diff","displayName":"What changed between two versions, and which comparison that was"},{"name":"get_source_lineage","description":"Traces one field for one company back through the recorded formula, the source it resolves to and the stored payloads with their content hashes. States the DEPTH it reached: the full chain including a formula, a method on record that is the PROVIDER's rather than a derivation performed here, the source only, a field computed here whose formula is not recorded, or unresolved. Measured 2026-09-11 only 18 of 358 catalogue fields carry a recorded formula, so a missing one is a gap in the provenance","inputSchema":{"type":"object","required":["symbol","field"],"properties":{"field":{"type":"string"},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Where one published value came from","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_source_lineage","displayName":"Where one published value came from"},{"name":"get_changes_since","description":"Recorded arrivals in the supported domains for one company between two generations: filings, events, insider transactions, fundamentals, estimate observations and guidance extraction/processing events. Each domain retains its documented filing or observation time; this is not a complete first-seen database log. `sinceGeneration` is the build you last reviewed; omit `untilGeneration` to use the current published build. This endpoint does not compare computed values or saved snapshots. Guidance us","inputSchema":{"type":"object","required":["symbol","sinceGeneration"],"properties":{"symbol":{"type":"string"},"sinceGeneration":{"type":"string"},"untilGeneration":{"type":"string"}},"additionalProperties":false},"title":"What arrived for one company between two model builds","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_changes_since","displayName":"What arrived for one company between two model builds"},{"name":"get_reference_rates","description":"Foreign-exchange REFERENCE rates with the pair, the fixing date and time, the source, and -- where the pair is not quoted directly against the euro -- the two legs it was triangulated from. Every answer states that a reference rate is a daily fixing for accounting and not a tradeable market rate. A currency the publisher does not quote gets no rate rather than an estimated one. Measured 2026-09-02: the ECB publishes on TRADING DAYS only -- 64 fixings over 90 calendar days, 29 currencies -- so a","inputSchema":{"type":"object","required":["base","quote"],"properties":{"on":{"type":"string"},"base":{"type":"string"},"quote":{"type":"string"}},"additionalProperties":false},"title":"Reference rates, with the fixing and any triangulation stated","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_reference_rates","displayName":"Reference rates, with the fixing and any triangulation stated"},{"name":"get_market_calendar","description":"The trading calendar for a venue: its ISO 10383 MIC, its time zone, and the sessions, holidays and half-days the pinned calendar library holds. States the library version and the date the calendar was last reviewed, because a calendar that goes stale in silence answers confidently and wrongly while an absent one makes a caller ask. A venue the map does not cover returns unsupported with its name, never a default calendar. Measured 2026-09-02: 35 of the 42 mapped venues resolve, 26,383 sessions o","inputSchema":{"type":"object","required":[],"properties":{"venue":{"type":"string"},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Trading days, sessions and holidays for one venue","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_market_calendar","displayName":"Trading days, sessions and holidays for one venue"},{"name":"get_guidance_history","description":"Stored dated changes to management's own guidance: metric, period, the range before and after, unit, the direction, the reason given, and the sentence it was said in. `previousFrom` says whether the earlier range was quoted in the same sentence or inferred from an earlier call. Read from extracted statements in transcripts, filings and structured disclosures; each row retains its source. Complete coverage of intervening disclosures, including 8-K filings, is not verified. Missing changes do not","inputSchema":{"type":"object","required":["symbol"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","maximum":100,"minimum":1},"metric":{"type":"string"},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Guidance changes, dated and quoted","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_guidance_history","displayName":"Guidance changes, dated and quoted"},{"name":"get_source_candidates","description":"The publication addresses a discovery run found on a company's own domain: a pollable RSS or Atom feed and a newsroom page, each with the method that found it — advertised by the page, or answered at a well-known path. An issuer that has not been probed answers `not_probed` rather than an empty list, because 'nothing was found' and 'nothing has looked' are different answers. Archives and API paths are part of this endpoint's contract and are discovered by nothing, so `missing` carries exactly `a","inputSchema":{"type":"object","required":["symbol"],"properties":{"symbol":{"type":"string"}},"additionalProperties":false},"title":"Feeds and newsrooms discovered on an issuer's own site","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_source_candidates","displayName":"Feeds and newsrooms discovered on an issuer's own site"},{"name":"get_segment_economics","description":"Per reportable segment and period, off the XBRL segment axis in the company's own filing: revenue, operating income, pre-tax and net income, cost of revenue, SG&A, R&D, depreciation and amortisation, capex, and the period-end assets and goodwill — each with the concept and accession it was read from. Derived: operating margin, incremental margin (same-length periods one year apart), capex to revenue and return on segment assets, every one with its formula stated in the answer. Members are XBRL i","inputSchema":{"type":"object","required":["symbol"],"properties":{"limit":{"type":"integer","maximum":1000,"minimum":1},"member":{"type":"string"},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Economics per reportable segment","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_segment_economics","displayName":"Economics per reportable segment"},{"name":"get_capital_allocation_history","description":"Per fiscal year from the company's own SEC filings: operating cash flow, capex, acquisitions, buybacks, dividends, debt issued and repaid, stock-based compensation and D&A, each with its accession and revision. Derived with the formula stated in the answer: free cash flow, the mix of uses, effective tax rate, NOPAT, invested capital, ROIC, reinvestment rate, incremental ROIC over three and five years, payout of FCF. A metric the company has not filed is named as not filed and every ratio that ne","inputSchema":{"type":"object","required":["symbol"],"properties":{"since":{"type":"integer","maximum":2100,"minimum":1990},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Capital allocation, year by year, from the filings","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_capital_allocation_history","displayName":"Capital allocation, year by year, from the filings"},{"name":"get_debt_structure","description":"Each debt instrument the company tags on the XBRL instrument axis — face and carrying amount, stated and effective rate (filed as fractions), variable-rate spread, term, maturity date where a date is filed, facility capacity and drawn amount, conversion price — the latest value per field with its date and accession; and the six-bucket maturity wall as filed, with the share due within 24 months (formula in the answer, null over a partial wall). Members are the filer's own identifiers. Fixed vs. f","inputSchema":{"type":"object","required":["symbol"],"properties":{"limit":{"type":"integer","maximum":2000,"minimum":1},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Debt instruments and the maturity wall","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_debt_structure","displayName":"Debt instruments and the maturity wall"},{"name":"get_backlog","description":"Remaining performance obligations (RPO) at each balance-sheet date, the timing schedule as filed (a start date and a period such as P12M with the amount or share expected in that window — not summed, not converted), and contract liabilities current, non-current and total, each with its accession; plus RPO over the latest filed annual revenue, formula stated. Book-to-bill is returned as not_tagged_in_xbrl because no filer in the corpus tags orders or backlog — a measured absence, never a zero. A","inputSchema":{"type":"object","required":["symbol"],"properties":{"limit":{"type":"integer","maximum":3000,"minimum":1},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Remaining performance obligations and contract liabilities","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_backlog","displayName":"Remaining performance obligations and contract liabilities"},{"name":"get_short_interest","description":"Two series from FINRA for a US listing: the open short POSITION per settlement date (twice a month) with FINRA's own days-to-cover as published, and the daily short sale VOLUME from the consolidated Reg SHO file with its share of that day's total volume. They are different quantities — a share sold short and covered the same day is in the volume and in no position — and nothing here computes one from the other. Says when collection began (2026-09-02); nothing earlier exists here. A non-US listin","inputSchema":{"type":"object","required":["symbol"],"properties":{"limit":{"type":"integer","maximum":400,"minimum":1},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Short position and daily short volume, kept apart","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_short_interest","displayName":"Short position and daily short volume, kept apart"},{"name":"get_options_surface","description":"Per trading day, read off CBOE's delayed option chain for a US listing: ATM implied volatility at 30/60/90/180 days, the 25-delta put-minus-call skew at 30 and 90 days, the expected move to the next earnings date (ATM straddle over spot), the put/call open-interest ratio, and CBOE's published iv30 — each with the formula stated in the answer. The chain is NOT archived, so the figures are derived_unarchived and cannot be recomputed here. An implied volatility is a price for a move, not a forecast","inputSchema":{"type":"object","required":["symbol"],"properties":{"limit":{"type":"integer","maximum":400,"minimum":1},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Option-surface metrics per trading day","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_options_surface","displayName":"Option-surface metrics per trading day"},{"name":"get_macro_series","description":"Observed macroeconomic series kept as vintages: US real GDP, unemployment, CPI, housing starts, industrial production, capacity utilisation, the 10-year Treasury, the high-yield OAS, the Chicago Fed NFCI and the 30-year mortgage rate from ALFRED as publisher as-of vintages; BLS CPI and payrolls, the Treasury par curve, ECB EUR/USD, euro-area AAA yields and the CISS, Eurostat GDP and the OECD composite leading indicators as first-seen vintages. Without series: the catalogue with history_starts_at","inputSchema":{"type":"object","required":[],"properties":{"asOf":{"type":"string"},"limit":{"type":"integer","maximum":2000,"minimum":1},"since":{"type":"string"},"series":{"type":"string"}},"additionalProperties":false},"title":"Macro series as vintages","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_macro_series","displayName":"Macro series as vintages"},{"name":"get_macro_sensitivity","description":"For one company: ordinary least squares of year-over-year growth in quarterly revenue and operating income from the earliest retained filing per period, on the year-over-year change of each macro series (real GDP, unemployment, CPI, housing starts, industrial production, capacity utilisation, the 10-year yield, the mortgage rate, the high-yield spread, NFCI) averaged over the same fiscal quarter, at lag 0 and lag 1 — using the macro vintage that was public on the quarter's filing date, never tod","inputSchema":{"type":"object","required":["symbol"],"properties":{"metric":{"type":"string"},"series":{"type":"string"},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Macro sensitivity, as historical association","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_macro_sensitivity","displayName":"Macro sensitivity, as historical association"},{"name":"get_sector_kpis","description":"For a bank: the insured bank subsidiary's quarterly call-report figures as the FDIC computes them — net interest margin, ROA, ROE, efficiency ratio, net charge-offs, noncurrent assets, allowance, tier 1 leverage and risk-based ratios, uninsured deposits — with the holding-to-bank link shown as what it is (a name match) and historyStartsAt per bank. For insurers, REITs, software, retail, energy and pharma: the sector's tagged XBRL concepts from the company's own annual filings (premiums and benef","inputSchema":{"type":"object","required":["symbol"],"properties":{"limit":{"type":"integer","maximum":200,"minimum":1},"symbol":{"type":"string"}},"additionalProperties":false},"title":"Sector KPIs from the sources that tag them","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_sector_kpis","displayName":"Sector KPIs from the sources that tag them"},{"name":"get_institutional_ownership","description":"From the SEC's Form 13F data sets: the managers that reported holding this company at a quarter end, each with its share count, reported value, filing date and whether the row is an amendment; the change against the quarter before per manager (new, added, trimmed, unchanged) and the managers that are gone; the concentration of the ten largest as a share of REPORTED shares, never of a float no filing carries; put and call positions listed apart from stock; and the quarters on file. A 13F covers l","inputSchema":{"type":"object","required":["symbol"],"properties":{"limit":{"type":"integer","maximum":200,"minimum":1},"symbol":{"type":"string"},"knownAsOf":{"type":"string"},"quarterEnd":{"type":"string"}},"additionalProperties":false},"title":"Institutional holders from Form 13F","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_institutional_ownership","displayName":"Institutional holders from Form 13F"},{"name":"get_beneficial_ownership","description":"Schedule 13D filings for this company, rule-read from the primary document: the reporting person, the shares beneficially owned, the percent of class as the FILER states it, the sole and shared voting and dispositive powers, the date of the event that required the filing, and the purpose words found in Item 4 (board_seat, control, strategic_alternatives, merger_or_sale, discussions, investment_only) with the filer's own sentence on request. Beside them, the 13D and 13G filings the index carries,","inputSchema":{"type":"object","required":["symbol"],"properties":{"limit":{"type":"integer","maximum":200,"minimum":1},"symbol":{"type":"string"},"excerpts":{"type":"boolean"}},"additionalProperties":false},"title":"Schedule 13D: a stake with a stated intent","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_beneficial_ownership","displayName":"Schedule 13D: a stake with a stated intent"},{"name":"get_research_overview","description":"Start company research here. Returns stored data availability by task, history gaps, limitations and suggested next tool calls. Public and independent of personal theses or research progress. Availability does not certify current data or an investment decision.","inputSchema":{"type":"object","required":["symbol"],"properties":{"symbol":{"type":"string"}},"additionalProperties":false},"title":"Research data overview","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_research_overview","displayName":"Research data overview"}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Stocklify-Stocklify&config=eyJ1cmwiOiAiaHR0cHM6Ly9zdG9ja2xpZnkuYXBwL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Stocklify-Stocklify%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fstocklify.app%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Stocklify-Stocklify%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fstocklify.app%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Stocklify+%C2%B7+Stocklify&connectorUrl=https%3A%2F%2Fstocklify.app%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Stocklify-Stocklify\" --url \"https://stocklify.app/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/stocklify-mcp-e2fb4a425b","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/stocklify-mcp-e2fb4a425b/tools/{tool}","mcpServerUrl":"https://stocklify.app/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/stocklify-mcp-e2fb4a425b?live=1"}