Torus
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TORUS_HOME | No | Overrides the default graph location (`~/.torus`). Set it under `env` so every app shares one graph. | |
| TORUS_HARNESS | No | Set by `torus setup` to `claude-desktop` or `codex` so the MCP server carries the workflow (instructions, prompts/skills, live capture) itself. | |
| TORUS_TOOLSET | No | Which tools are exposed: `analyst` (33 tools, default on Claude Desktop and Codex) or `full` (all 45 tools). | |
| TORUS_CAPTURE_MODE | No | What Claude records while researching: `live`, `balanced` (default) or `curator`. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| briefA | One-call briefing at the start of a turn: spots known companies in |
| recallA | Prior theses, claims and rejected hypotheses about entities and/or a question. Call this before starting research so you build on earlier work. |
| get_entityB | Resolve an entity and list its current relations. |
| searchB | Keyword search over current claims, evidence and theses. |
| timelineA | History of one entity, oldest first: claims recorded, corrected or
retracted about it, theses on it created or changed, and events (filings,
news) that name it. Each change has a time, kind, object id and one-line
summary. Use it to see how the view on a company evolved; use |
| what_changedB | Everything recorded or revised across the graph since a point in time. |
| upsert_entityB | Create an entity (or merge into the one with the same canonical_key). |
| merge_entitiesB | Fold a duplicate entity into the one to keep; its links move over. |
| record_evidenceB | Record a source. Re-recording the same URI returns the existing record. |
| record_claimA | Save one finding about one or more entities, tied to its sources. |
| supersede_claimB | Correct a claim: the old version stays in history, the new one is current. |
| retract_claimB | Withdraw a claim that turned out to be wrong (kept in history). |
| record_relationA | Link two entities, e.g. TSMC SUPPLIES NVIDIA. Re-recording an existing link updates it (confidence, backing claim, dates) instead of duplicating it. |
| record_thesisA | Save a new investment thesis and the claims it rests on. |
| update_thesisA | Revise a thesis: status, confidence, the claims it rests on, and its triggers, in one atomic step. Everything is kept in its history. |
| record_rejected_hypothesisB | Record an idea that was checked and ruled out, so it isn't re-explored. |
| add_eventA | Record an event and raise alerts on theses it may affect (through the companies involved and their suppliers, customers and competitors). |
| impactB | Dry run: which theses would an event on these entities affect, and why? Records nothing. |
| list_alertsA | Alerts raised by events on theses, highest score first. Each shows how its score was built: graph score x event materiality x (1 + trigger match). |
| alert_statsA | How useful alerts have been: verdicts, and the share judged related (precision) by source, form, hops and materiality. |
| resolve_alertA | Judge an alert after reading the event and the thesis's claims; the thesis is updated accordingly and the change logged with the alert. |
| neighborsA | The entity's neighbourhood: companies within |
| find_pathsA | How two entities are connected, e.g. ASML -SUPPLIES-> TSMC -SUPPLIES-> AMD. Shortest and most confident paths first. |
| watchA | Watch a company: its new SEC filings become events (on the next
|
| unwatchA | Stop watching a company you added with |
| list_watchesB | What the watchers follow: the watchlist, open-thesis entities, feeds. |
| next_distillationA | Lease the oldest research session waiting to be distilled into the graph. |
| complete_distillationA | Finish a leased distillation job (or hand it back if it failed). |
| onboardA | Start covering companies: add them, watch their filings, suggest starter packs, and queue a mapping job for each (run by the company-mapper subagent, which reads their annual reports and records suppliers, customers and competitors). |
| seed_starter_packA | Add a curated starter pack of companies and supplier/competitor links. Never overrides links research recorded. |
| next_mappingA | Lease the next onboarded company to map from its annual report. Until
|
| complete_mappingA | Finish a leased mapping job (or hand it back if it failed). |
| recent_recordsA | List what the most recent research sessions recorded (claims, theses,
relations, sources, ruled-out ideas), newest session first, with each
session's id and whether each record can still be undone. Read-only. Use it
when the user asks what Torus saved, then pass the session id and records
to |
| undo_recordsA | Revert records the user doesn't want: claims are retracted (corrections go back to the earlier version), theses the session created are archived, links retired, ruled-out ideas withdrawn. History keeps everything. |
| whatifA | What if this happened? Which theses would it reach, through which links, and would it raise alerts. Records nothing. |
| thesis_memoB | Write a thesis up as a memo (Markdown and a standalone HTML page): what it rests on with sources and quotes, triggers, events and verdicts, ruled-out ideas and history. Saved under TORUS_HOME/memos. |
| open_explorerB | Write the interactive graph explorer HTML file (under TORUS_HOME/explorer.html) and open it in the user's browser. |
| thesis_weak_pointsA | Where a thesis is weakest: thin or expiring assumptions, strong supplier or customer dependencies it never mentions, triggers that can't fire on events, and opposing views already in the graph. Input for /torus:challenge. |
| track_thesisB | Put a thesis on the scorecard: its return against a benchmark from an entry price and date, in the direction of its stance. |
| scorecardB | How tracked theses have done against their benchmarks, their outcomes, and calibration: did the user's confidence match how often they were right? |
| set_thesis_outcomeA | Record whether a thesis turned out right, wrong or unclear (overrides the automatic outcome; used for calibration). |
| auditA | Health check of the research graph: expired or thinly sourced assumptions, theses past their horizon or gone stale, claims that may conflict, unconfirmed starter links, orphans. Each finding suggests a fix. |
| digestA | What happened in the research over the last days: new alerts by thesis,
thesis status and confidence changes, theses coming due, audit counts,
scorecard moves and activity. |
| filing_diffA | What changed in a section of a company's latest filing against the previous one of the same form: new, dropped and reworded sentences. |
| filing_textA | Read a company's SEC filing as text, by section, from EDGAR (cached).
Long sections come in pages: pass |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| status | Show the state of the Torus research memory - theses at risk, recent changes, and research on a given company. Use when the user asks what Torus knows, what changed recently, or which theses need attention. |
| review_alerts | Review open Torus alerts - new events (filings, news) that may affect existing investment theses - and record whether each supports, weakens or breaks the thesis. Use when the user asks to review alerts or asks which theses are affected by recent news. |
| onboard | Start covering a list of companies with Torus - add them, watch their SEC filings, seed matching starter packs, and map their suppliers, customers and competitors from their annual reports. Use when the user shares a watchlist or portfolio, or asks Torus to start following some companies. |
| ingest | Read a document into the Torus research graph - an SEC filing (by company and form), what changed since the previous filing, a web page, or a transcript or PDF - and record its key facts as sourced claims linked to existing theses. Use when the user shares a filing, transcript, report or link to add to Torus, or asks what changed in a company's latest 10-K or 10-Q. |
| whatif | Scenario analysis on the Torus research graph - which theses a hypothetical event (a fab outage, export rule, CEO exit, lost customer) would reach, through which supplier/customer/competitor links, and what it would mean for each. Use when the user asks "what happens to my theses if X". |
| challenge | Stress-test a Torus thesis - find its weakest assumptions, unwatched supplier/customer dependencies and opposing evidence, then propose risk claims and triggers for the user to approve. Use when the user asks to challenge, red-team, stress-test or poke holes in a thesis. |
| audit | Health check of the Torus research memory - find expired or thinly sourced assumptions, theses past their horizon or gone stale, claims that may conflict, and unconfirmed starter links, then fix them with the user. Use when the user asks whether their research is still current or trustworthy, or asks to audit their Torus graph. |
| scorecard | Track how the user's Torus theses have played out - returns against a benchmark in the direction of each thesis, drawdowns, right/wrong outcomes, and calibration (does their confidence match how often they're right). Use when the user asks how their calls did, or wants to track a thesis against a stock. |
| memo | Write a Torus thesis up as a shareable memo - the claims it rests on with sources and quotes, triggers, events and how they were judged, ruled-out ideas, scorecard and history - as Markdown and a standalone HTML page. Use when the user wants to share, export or write up a thesis. |
| undo | Show what Torus recorded in recent research sessions and revert what the user doesn't want - wrong claims, a thesis recorded by mistake, a bad link. Use when the user says Torus recorded something wrong, asks to undo, or asks what was saved. |
| explore | Open the Torus visual graph explorer - an interactive map of companies, supplier/customer/competitor links, theses, events and alerts - in the user's browser. Use when the user asks to see, visualise or map their research graph. |
| save_this_chat | Save the research from the current conversation into the Torus graph - sources, atomic claims, supplier/customer/competitor links, theses and ruled-out ideas that weren't recorded yet. Use when the user asks to save, capture or distill this chat into Torus. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| digest_resource | Theses at risk and what changed in the last 7 days. |
TDQS
Scored across 45 tools
Most tools target a clearly distinct resource+action (record_claim vs supersede_claim vs retract_claim, watch/unwatch/list_watches, next/complete pairs for jobs), and descriptions explicitly disambiguate near-neighbours like timeline vs what_changed vs recent_records. A few pairs still blur: whatif vs impact are both dry-run reaches, and brief vs recall vs digest all surface prior context, though the descriptions do differentiate them on close reading.
There is a solid verb_noun family (record_claim, record_thesis, update_thesis, merge_entities, resolve_alert, complete_mapping) and consistent next_/complete_ job pairs, but it sits alongside many bare single-word tools (brief, recall, search, neighbors, timeline, impact, audit, digest) and noun-phrase tools (alert_stats, thesis_weak_points, filing_diff). The mixed style is readable and roughly maps verbs to mutations and nouns to read-only views, but it is not a single predictable convention.
45 tools is far above the ergonomic range and puts heavy pressure on tool selection even with distinct descriptions. The domain is broad (graph research, alerting, job leasing, filings, memos, scorecard), so each tool is plausibly motivated, but the surface would benefit from consolidation or grouping.
Coverage is unusually thorough: full entity/claim/thesis/relation/evidence lifecycle, corrections with history, event-driven alerts, watchlist management, job leasing for distillation and mapping, memos, explorer export, scorecard and audit. Minor gaps exist — there is no direct get_thesis or list_theses retrieval tool, with thesis inspection routed through brief, recall, thesis_memo and update_thesis.