Skip to main content
Ithaca exposes 60+ MCP tools that an AI agent can call during a research session. Tools fall into two families: direct tools (first-class verbs implemented in the Ithaca service) and skill-backed tools (data-fetching capabilities backed by the skills catalog). Every call is traced, tenant-scoped, and replayable from the web UI.

Direct tools vs. skill-backed tools

Direct tools are the workflow verbs. Skill-backed tools are the data sources. The agent always starts with a direct tool (session_context) and ends with direct tools (propose_strategy, backtest_run).

Why the split matters

  • Direct tools have a fixed, small schema. They are the verbs the agent must use to drive the workflow. Their arguments never change between releases.
  • Skill-backed tools are discovered progressively. The agent doesn’t know all 50+ skill names up front — it uses search_skills to find relevant ones, then describe_skill to read the manifest, then run_skill to execute. This keeps the tool list small while letting the catalog grow without breaking older agents.
  • Both are traced identically. The human sees every call, argument, and result in the web UI regardless of family.

Progressive discovery with search_skills

Agents should never hard-code skill names. The catalog grows over time, and skills can be deprecated or versioned. Always discover skills through search_skillsdescribe_skillrun_skill.
The agent follows a three-step discovery loop:
  1. search_skills — pass a natural-language query (plus optional asset_class and intent) and get back a ranked list of matching skill IDs with one-line summaries.
  2. describe_skill — pass a skill_id (and optional version) to fetch the full manifest: input schema, output schema, cost, latency profile, and provider.
  3. run_skill — pass the skill_id, input dict, and mode to create a durable run. Poll with get_run or stream with subscribe_run.
This means a brand-new skill added to the catalog is immediately usable by any agent without a server upgrade — the agent discovers it at runtime.

Tool catalog by category

Session

Data & research

The full list of 50+ skill-backed tools lives in the Skills Catalog. The table above is a representative sample — use search_skills to find the rest.

Strategy

Backtest

Run management

Approvals

Artifacts

Skills (execution)

Skill-backed tools are invoked through run_skill. See the Skills Catalog for the full list of available skills.

The canonical workflow

1

Open a session

Call session_context with the user’s prompt. This opens a traced research run and attaches the question. Every subsequent call is scoped to this session.
2

Discover and run data skills

Call search_skills to find relevant data sources, describe_skill to read each manifest, then run_skill to fetch data. Poll get_run or stream subscribe_run for results.
3

Propose a strategy

Call propose_strategy with a declarative StrategySpec. The service validates it against the frozen contract and stores an immutable versioned row.
4

Backtest

Call backtest_run with the spec and a date range. The engine runs a deterministic backtest and returns metrics, an equity curve, and a risk attestation.
5

Request promotion (optional)

If the backtest looks good, the agent can request paper-trading promotion. A human approves or denies it from the web UI via list_approvals / decide_approval.

Session tools

session_context — open a traced research run.

Data tools

market_get_ohlcv, search_skills, describe_skill — fetch data and discover skills.

Strategy tools

propose_strategy — validate and store a declarative spec.

Backtest tools

backtest_run — deterministic backtest with full metrics.

Run management

run_skill, get_run, subscribe_run, cancel_run — durable run lifecycle.

Approval tools

list_approvals, decide_approval — the human’s promotion workflow.

Artifact tools

get_artifact — fetch the 8-file backtest artifact bundle.