Skip to content
FormulaSignal logo

FormulaSignal MCP server

Which MCP servers are FormulaSignal's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.

read 2026-10-20

← Back to FormulaSignal

Whose server it is
  • Registry namecom.formulasignal/recordverified in the MCP registry

The registry name sits under formulasignal.com. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.

When we asked itchecked 2026-10-20
  • Stateanswerschecked 2026-10-20
  • Tools18
  • Server calls itselfformulasignal
  • Server version1.1.0
  • Protocol version2025-06-18

On 2026-10-20 the server answered initialize and tools/list without a sign-in. First answer in 78 ms.

Should an agent connect itNot proven either way yet
  • Whether its tools do the product's job has not been judged yet.

Once connected

  • watchlist.add, watchlist.remove change data without a sign-in: anyone with the address can call them.

Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.

Measured dailydaily checks: 9, the first on 2026-10-20
  • INITE MCP score76 of 100answers 100 · definitions 100 · context 71 · connects 100 · lowered by the warning signs below
  • Answered100% of days9 of 9 daily checks
  • Median first answer917 ms
  • Space in an agent's context≈ 8,855 tokensthe definitions of all its tools (18), which an agent carries on every turn
  • Tool definitionsA · 100 of 100
  • Typed results18 of 18 toolsdeclared outputSchema: results come typed, read once
  • Every tool passes all six checks.

What an agent can do with it

  • not sure · check a reorder's label against its last dated version
  • not sure · compare caffeine per serving across two dated labels
  • cannot · get emailed when a watched formula change is confirmed

Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?

Worth a look

  • Tools that change data, on a server that answers without a sign-in: watchlist.add, watchlist.remove

A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →

Tools it offers18 tools · read 2026-10-20
  • record.search

    Answer one specific, bounded question from FormulaSignal's covered pre-workout Record. When to use: Use for a single natural-language question about a covered product: what it declares now, whether it changed, what it costs per serving…

  • products.resolve

    Resolve a brand, product name, or alias to one canonical covered product. When to use: Call this first whenever you hold a user-supplied product name and need the canonical product_id every other capability takes. What it cannot provide…

  • products.get

    Return the controlled current Record for one covered product: identity, serving configuration, declared ingredients, captured price context, and freshness. When to use: Use when you need what a product declares right now, with the dates…

  • products.history

    Return the controlled historical timeline for one covered product, with each state classified by what it can actually support. When to use: Use to find out whether a product has changed, how deep the recoverable history is, and which…

  • signals.explain

    Explain one approved FormulaSignal Signal: a confirmed, reviewed change between two comparable product states. When to use: Use when a product record or history response named a signal_id and you need the before state, the after state…

  • signals.list

    Return approved FormulaSignal Signals in release order, newest first, for incremental polling. When to use: Use to keep a system in step with the Record. Pass `since` with the release date you last saw, or follow `next_cursor`, and filter…

  • products.compare

    Compare two or three covered products on consistent FormulaSignal criteria. When to use: Use when a user asks how covered products differ on formula, serving economics, stimulant load, or record depth. What it cannot provide: It returns…

  • products.serving_economics

    Return the captured commercial facts and the deterministic price arithmetic for one covered product. When to use: Use for package price, price basis, serving count, price per serving, and the date each was observed. What it cannot…

  • ingredients.research

    Return the dose range used in the selected evidence set for named ingredients, with the citation and its limitations. When to use: Use to place a declared amount against published work. Pass ingredient ids, or a product_id to read the…

  • ingredients.regulatory

    Return regulatory records and documented cautions for named ingredients, each carrying the class of record it actually is. When to use: Use when you need to know what filings, advisories, label warnings, interactions, or enforcement…

  • signals.snapshot

    Return a bounded summary of approved Signals and coverage state across the covered pre-workout set for a date window. When to use: Use for 'what changed in the category recently'. Pass from and to dates; the window is capped and the page…

  • ledger.list

    List the published Category Ledger editions: period, status, data-as-of date and the count released in each. When to use: Call this first to find which edition covers a period, then fetch that edition by id. What it cannot provide: It…

  • ledger.get

    Return one Category Ledger edition: the executive summary, confirmed changes released in the period, category benchmarks with their cohorts, serving economics, the product comparison, and the limitations. When to use: Use when an agent…

  • watchlist.list

    Return the watchlist of the one Founding Pro account this key is bound to, with each product's monitoring state. When to use: Use to answer what a person is watching, when each product was last read, when the next check is due, and…

  • watchlist.add

    Add one covered product to the bound account's watchlist. When to use: Use when a person asks to start watching a product. Resolve the product first if you were given a name rather than an id. What it cannot provide: It cannot add a…

  • watchlist.remove

    Remove one product from the bound account's watchlist. When to use: Use when a person asks to stop watching a product. Future alerts stop; everything already delivered stays. What it cannot provide: It cannot delete an account, cancel a…

  • watchlist.receipt

    Return the monitoring receipt for one period: valid checks, attempts that returned nothing, recoveries, and confirmed Signals. When to use: Use to answer whether anything a person watches changed in a period, and what monitoring did in…

  • record.version

    Return the public Record version, the methodology version, the supported category, coverage counts, and source freshness. When to use: Call this to state which version of FormulaSignal intelligence an answer came from, or to detect that…

How to connect

Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:

{
  "mcpServers": {
    "record": {
      "type": "http",
      "url": "https://formulasignal.com/mcp"
    }
  }
}

Add it

Claude Code, in a terminal

claude mcp add --transport http formulasignal https://formulasignal.com/mcp

Add to CursorAdd to VS Code

claude.ai, ChatGPT and other clients: add https://formulasignal.com/mcp as a custom connector in the settings.

OpenAPI spec

18 paths, read 2026-10-20. Open the spec ↗

Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.