Reference

Tool API reference

Every tool the local server exposes, the capability it requires, its parameters and the roles that hold it — generated from the core registry, not maintained by hand.

AVAILABLEWritten and covered by tests — not yet observed in a live runFinexia · published · updated · 4 sources · Finexia OS 0.0.23

Shipped in the current build. You can do this on your own machine today.

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.

SituationWhat comes back
The tool ranA result carrying the tool’s text output
The tool refusedA result carrying the reason, flagged as an error
The method is unknownA protocol error, method not found
The message is not valid JSONA protocol error, parse error
The token is unknownA protocol error, with no explanation of what would have worked
The message carries no identifierNothing. A notification does not get a reply

#What a tool may not carry

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

  1. 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.
  2. Fetch the series or the filing, and record the provenance it returns.
  3. Open a module so the reader sees the same data you reasoned over.
  4. If the question cannot be answered at the as-of date, report it blocked with a reason. Do not approximate.
  5. 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.

#The tools

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

ohlcvOhlcv

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
vendor_barsOhlcv

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
options_chainOhlcv

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
crypto_quoteOhlcv

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

Macro series

macro_seriesMacro

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
vintage_seriesMacro

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
euro_seriesMacro

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

github_repoFilings

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
filing_segmentsFilings

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
filingsFilings

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
offeringsFilings

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

wireWeb

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

Canvas modules

vol_surfaceOhlcv

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
news_openWeb

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
chart_openOhlcv

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
chart_indicatorsOhlcv

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
placeOhlcv

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
broadcastWeb

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
annotateOhlcv

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_contributeDossier

Files **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
dossier_statusDossierLu

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
dossier_publishBundle

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

workbook_createWorkbook

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
deck_createDeck

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
bundle_createBundle

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
memo_createMemo

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

python_runExecute

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 required

Deposits 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

  1. 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
  2. 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
  3. 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
  4. 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