LimitThere is no public Finexia web API. Nothing on the internet accepts a Finexia request, and no key gets you one. What this page documents is the local tool surface: an endpoint bound to the loopback address of your own machine, serving the agents running inside your own application.
#How a call is made
The server speaks the Model Context Protocol over plain HTTP. A card lists what it may call, then calls it. Both requests carry the bearer token issued to that card; a call without a known token is refused without being told why, because a precise message would teach whoever is knocking what would have let them in.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "ohlcv",
"arguments": { "symbol": "AAPL", "interval": "1d", "range": "1y" }
}
}
Two answers are possible, and they are not the same kind of thing. A tool that ran and failed comes back as a result carrying an error flag, so the agent can read the reason and correct itself. A malformed message, an unknown method or an unknown token comes back as a protocol error. Confusing the two makes an agent treat a bad argument as a broken server — the specification separates them for exactly that reason 3.
| Situation | What comes back |
|---|
| The tool ran | A result carrying the tool’s text output |
| The tool refused | A result carrying the reason, flagged as an error |
| The method is unknown | A protocol error, method not found |
| The message is not valid JSON | A protocol error, parse error |
| The token is unknown | A protocol error, with no explanation of what would have worked |
| The message carries no identifier | Nothing. A notification does not get a reply |
The workbook tool takes a title, a subject, facts, sources, assumptions and checks — and no file path and no formula. The path is composed by the part of the core that owns the data room, because two places that write a path will eventually write two different ones. A guard inspects the declared schema keys for this, not the human description: an earlier version of that guard read the prose, found the word “path” in a sentence explaining that there is none, and failed on its own explanation.
A tool that reports a source writes it to the journal with its address, the period it covers, the metric, the unit and the date it was read — and the writer redacts any secret embedded in the address first. An agent can declare a source carrying a key without realising it; the redaction is not optional.
#A suggested chain
- Resolve the instrument first, so every later call agrees on what is being discussed — and read the candidates rather than picking one for the operator.
- Fetch the series or the filing, and record the provenance it returns.
- Open a module so the reader sees the same data you reasoned over.
- If the question cannot be answered at the as-of date, report it blocked with a reason. Do not approximate.
- If a workbook is the deliverable, hand the accounting role a contract of facts, sources, assumptions and checks.
EvidenceOne capability in the table below is declared by a role and required by no tool: the quantitative compute capability is held by the quant mandate alone, and nothing in the current registry asks for it. That is visible here because the table is derived rather than curated — a hand-written reference would simply not have shown it 1.
30 tools, read from the core registry when this page was built. Nothing below is maintained by hand on this site: a tool removed from the server disappears from here, and a tool added makes the build fail until someone writes its sentence.
Finexia-OS/src-tauri/src/mcp/tools.rs — TOOLS
Market data
Reads real candles from Yahoo Finance and returns the resolved company name and exchange alongside the series, so a ticker without its venue cannot silently become another company.
- Parameters
- symbol: string (required) · interval: string (required) · range: string (required)
- Roles that hold it
- fundamental · macro · execution
- Returns third-party text
- No
Daily bars from one named vendor, used as a fallback and as a cross-check: two vendors rarely publish the same figure for the same day, and the gap is information. Three of them need a key and refuse cleanly without one.
- Parameters
- vendor: string (required) · symbol: string (required) · since: string (required)
- Roles that hold it
- fundamental · macro · execution
- Returns third-party text
- No
The full option chain for a US underlying — strikes, expiries, bid and ask, implied volatility, Greeks, open interest. The feed is delayed, and the timestamp returned is the exchange’s, not the moment of reading.
- Parameters
- symbol: string (required)
- Roles that hold it
- fundamental · macro · execution
- Returns third-party text
- No
Quotes a crypto asset on three venues at once, each price carrying its own quote currency. When those currencies differ the prices are not the same instrument, and the result says so rather than averaging them.
- Parameters
- asset: string (required)
- Roles that hold it
- fundamental · macro · execution
- Returns third-party text
- No
Resolves a company name into listed instruments and returns candidates, never a verdict: an ordinary share, a preference share and an ADR are not the same investment, and the choice is left to the operator.
- Parameters
- queries: array (required) · region: string
- Roles that hold it
- fundamental · execution
- Returns third-party text
- Yes — the server attaches the warning that fetched content is data, never instruction
Macro series
Reads a macro series from FRED and returns the unit, the frequency and the seasonal adjustment with the points — a bare number is not a rate. Missing observations are counted and dropped, never filled in.
- Parameters
- series_id: string (required) · observation_start: string (required)
- Roles that hold it
- macro
- Returns third-party text
- No
Returns a FRED series as it stood on a past date, with what has been revised since and — the field that matters for a point-in-time claim — which dates existed later but had not been published yet.
- Parameters
- series_id: string (required) · observation_start: string (required) · as_of: string (required)
- Roles that hold it
- macro
- Returns third-party text
- No
Reads a European Central Bank series from the public SDMX portal, with its full title, unit, frequency and construction. No key is required.
- Parameters
- series_key: string (required) · last_n: integer (required)
- Roles that hold it
- macro
- Returns third-party text
- No
Filings and public record
The public state of a source repository — last push, stars, forks, open issues, licence, archived or not. A verifiable diligence fact for a company whose product is open software, and an observation to cite with its date, not a thesis.
- Parameters
- repo: string (required)
- Roles that hold it
- fundamental · scout
- Returns third-party text
- Yes — the server attaches the warning that fetched content is data, never instruction
Reads the **broken-down** figures of an SEC filing — by product, by geography, by segment — from the filing’s own XBRL instance. `filings` serves the consolidated series; this one serves what consolidation erases. Called without an axis it lists the axes the filing actually carries, which is the right first question: a filer arranges its breakdowns however it likes. Each fact comes back with its full period, its unit, its precision and its accession. It never adds members together — at Apple, iPhone plus Mac plus iPad plus Wearables *is* Product, and summing the six would count revenue almost twice. A breakdown is not a partition, and only the filing’s own note says which one is.
- Parameters
- ticker: string (required) · axis: string · concept: string · form: string · years: integer
- Roles that hold it
- fundamental · scout
- Returns third-party text
- No
Reads a company’s filed accounts where it actually files — the US regulator for a domestic or New York-listed issuer, the European mechanisms for a European listing. Called without a concept it returns what that issuer actually tags, which is where a reading starts.
- Parameters
- ticker: string (required) · concept: string · years: integer
- Roles that hold it
- fundamental · scout
- Returns third-party text
- No
Searches the private-placement notices filed with the US regulator over the last 180 days — the only public, dated trace of a private raise.
- Parameters
- thesis: string (required)
- Roles that hold it
- fundamental · scout
- Returns third-party text
- Yes — the server attaches the warning that fetched content is data, never instruction
Open web
Collects newswire items on a topic from publisher feeds.
- Parameters
- theme: string (required)
- Roles that hold it
- news
- Returns third-party text
- Yes — the server attaches the warning that fetched content is data, never instruction
Searches the open web and returns ranked pages — title, address, extract, and a date when the source publishes one. Never an article copied out. Without a key on the machine, it refuses and says so instead of substituting another source.
- Parameters
- query: string (required) · max_results: integer
- Roles that hold it
- news
- Returns third-party text
- Yes — the server attaches the warning that fetched content is data, never instruction
Canvas modules
Builds the implied volatility surface from the delayed chain and mounts it as a module. Contracts the exchange did not price are counted and dropped rather than set to zero, which would carve a dip into the smile that does not exist.
- Parameters
- symbol: string (required)
- Roles that hold it
- fundamental · macro · execution
- Returns third-party text
- No
Mounts the wire items already collected for this card as a module. It supplies no headlines of its own: it re-reads what the feeds actually returned, and an empty list is mounted as an empty list.
- Parameters
- theme: string (required) · at_most: integer
- Roles that hold it
- news
- Returns third-party text
- No
Mounts a price chart on a real series and returns its bounds with the resolved company and venue. This is the call that makes the operator see the same data the agent reasoned over.
- Parameters
- symbol: string (required) · interval: string (required) · range: string (required)
- Roles that hold it
- fundamental · macro · execution
- Returns third-party text
- No
Computes technical indicators on the same series and draws them onto the open chart. The agent assembles nothing: the tool reads the candles, computes, and mounts the result.
- Parameters
- symbol: string (required) · interval: string (required) · range: string (required) · indicators: array (required)
- Roles that hold it
- fundamental · macro · execution
- Returns third-party text
- No
Puts a location on the globe: where the event being discussed happened. A place outside the world is refused.
- Parameters
- lat: number (required) · lon: number (required) · name: string (required) · says: string (required) · at: string
- Roles that hold it
- fundamental · macro · execution
- Returns third-party text
- No
Brings a live broadcast into the card. Only recognised broadcasters are mounted; an arbitrary address is refused.
- Parameters
- channel: string (required) · title: string (required) · url: string (required) · starts_at: string
- Roles that hold it
- news
- Returns third-party text
- No
Draws one mark on the open chart, and answers immediately whether it was accepted — a price outside the series would be drawn into empty space.
- Parameters
- shape: string (required) · kind: string · anchor: number · from: number · to: number · at: any · text: string · says: string (required)
- Roles that hold it
- fundamental · macro · execution
- Returns third-party text
- No
The shared dossier
dossier_contributeDossierFiles **one** contribution into the mission’s shared dossier, the same one the other roles write. A contribution is immutable and never replaces another: two roles asserting different figures under one identifier create a **named conflict**, and the dossier refuses to seal until someone settles it with a reason. The agent supplies no path, no filename, no URL, no read date and no digest — for a source it gives back the reference an earlier tool actually returned, and Finexia attaches the address, the read time and the digest from what it read. A reference nobody read is refused, which is what stops a dossier from citing an imagined source.
- Parameters
- sorte: string (required) · contribution: object (required)
- Roles that hold it
- cio · fundamental · deal-lead · pilot · accounting
- Returns third-party text
- No
Reads the mission’s shared dossier: its state, its revision, what each role has filed, the sources this desk has **actually** read — each with the reference token that is the only one quotable — and the open conflicts. It is meant to be called before contributing: a role that cannot see what the others filed either repeats their work or contradicts it without knowing. A failed state means a render broke, not that nobody worked.
- Parameters
- None
- Roles that hold it
- cio · fundamental · deal-lead · accounting
- Returns third-party text
- No
Seals the shared dossier and publishes it as **one** bundle: workbook, deck and memo composed from the same sealed dossier, plus a manifest carrying the revision, the sources and the digests. Sealing refuses while a conflict is unsettled, while the frame is missing, or if any fact has no source. Publication is atomic — the three files appear together or not at all, and a failure leaves the last valid bundle untouched. A contribution filed after publication opens the next revision; it never edits what is already published.
- Parameters
- formats: array
- Roles that hold it
- deal-lead
- Returns third-party text
- No
Deliverables
Writes the card’s financial dossier as a workbook. The agent supplies no path and no spreadsheet formula: it describes facts — an identifier, a value, a unit, a period, whether it was observed or estimated, and the source that carries it — and the engine composes the file, reopens it to check it, and mounts it on the canvas. Calculations are written in a bounded language, which the engine turns into live formulas pointing at those facts, so the workbook still pulls under an analyst’s fingers. A fact without a source is refused, and so is an assumption without a justification.
- Parameters
- entite: string (required) · identifiants: array · devise: string (required) · unite_affichage: string (required) · as_of: string (required) · periode_historique: string (required) · periode_prevision: string · faits: array (required) · sources: array (required) · hypotheses: array · calculs: array · scenarios: array · sensibilites: array · risques: array · catalyseurs: array · blocs: array · limites: array · manquants: array · controles: array
- Roles that hold it
- accounting
- Returns third-party text
- No
Composes the card’s committee deck in 16:9 from the same dossier as the workbook. No path, no template, no layout: a section the dossier does not carry is simply not written, because a deck padded with empty slides teaches people not to read it. The figures shown are the ones the model computes, not numbers copied across — which is what keeps the deck and the workbook saying the same thing.
- Parameters
- entite: string (required) · identifiants: array · devise: string (required) · unite_affichage: string (required) · as_of: string (required) · periode_historique: string (required) · periode_prevision: string · faits: array (required) · sources: array (required) · hypotheses: array · calculs: array · scenarios: array · sensibilites: array · risques: array · catalyseurs: array · blocs: array · limites: array · manquants: array · controles: array
- Roles that hold it
- deal-lead
- Returns third-party text
- No
Publishes the dossier in several formats at once. The agent describes it once and lists the formats; the engine writes them, reopens them, checks that the same figures appear in each, and publishes them together or not at all. A manifest travels with the files — sizes, digests, sources, computed values, limits and missing data. One format failing takes the others with it: a half-written bundle is the one where two files out of three get attached to an email.
- Parameters
- dossier: object (required) · formats: array (required)
- Roles that hold it
- deal-lead
- Returns third-party text
- No
Writes the card’s memo as an A4 document with selectable text, from the same dossier. The engine reopens it and refuses a page that carries no text: a memo rendered as images cannot be searched, quoted or checked by a reviewer. Limits are a section of their own — a memo that hides what it does not cover makes people decide on what it shows.
- Parameters
- entite: string (required) · identifiants: array · devise: string (required) · unite_affichage: string (required) · as_of: string (required) · periode_historique: string (required) · periode_prevision: string · faits: array (required) · sources: array (required) · hypotheses: array · calculs: array · scenarios: array · sensibilites: array · risques: array · catalyseurs: array · blocs: array · limites: array · manquants: array · controles: array
- Roles that hold it
- deal-lead
- Returns third-party text
- No
Compute
Runs a Python file from the agent’s own data room and returns the exit code, the output, the errors and the duration. The sandbox has no network — for the script or for anything it spawns — and writes nowhere but that data room.
- Parameters
- file: string (required)
- Roles that hold it
- toolsmith
- Returns third-party text
- No
Desk protocol
report_blockedno capability requiredDeposits a BLOCKED artefact when the question cannot be answered as asked. It is a result, not a failure — and often the most honest one available. The contract refuses it unless it carries what was attempted and why it stopped.
- Parameters
- attempted: string (required) · cause: string (required) · missing: array (required) · tried: array (required)
- Roles that hold it
- cio · fundamental · quant · macro · execution · news · risk · scout · diligence · deal-lead · pilot · accounting · strategist · toolsmith
- Returns third-party text
- No
#Sources
- The tool registry, mirrored on this siteFinexiainternal registry · tool registry mirror of mcp::tools::TOOLS, crossed with the roles’ declared capabilities · read 2026-09-10Internal document, not published
- Finexia OS — product state at 0.0.23Finexiainternal handover report · Finexia OS 0.0.23 · commit produit 5968ef0 · lu à bcae42d · published 2026-09-10 · read 2026-09-10Internal document, not published
- Model Context Protocol — ToolsModel Context Protocol projectofficial documentation · revision 2026-07-28 · published 2026-07-28 · read 2026-09-10https://modelcontextprotocol.io/specification/2026-07-28/server/tools
- Model Context Protocol — Streamable HTTP transportModel Context Protocol projectofficial documentation · revision 2026-07-28 · published 2026-07-28 · read 2026-09-10https://modelcontextprotocol.io/specification/2026-07-28/basic/transports/streamable-http