Skip to main content
Glama

Junto

An investment committee for your AI agent.

Junto is a local first MCP server and command line tool for equity research. It gives Claude Code, Codex, Cursor, and OpenCode a repeatable research workflow with cited data, deterministic committee views, reproducible backtests, and an auditable track record.

Junto does not execute trades. It is not financial advice.

Why Junto

AI agents are good at reading and summarizing. They are less reliable when a question needs a consistent process. Junto turns an open ended request such as "should I look at NVDA" into a run you can inspect.

  • Five independent views. Business quality, valuation, growth, risk, and technicals each score the same evidence with fixed rules.

  • Citations on every run. Quotes, price history, fundamentals, and news keep their provider links.

  • Reproducible backtests. Signals use the close and execute at the next open. Costs and slippage apply on both sides.

  • An auditable record. Committee calls can be stored locally and marked to market after the stated horizon.

  • Local first state. Reports, cache, and the track record stay in ~/.junto unless you override JUNTO_HOME.

  • No API keys. Junto uses public market data and news endpoints.

  • No trade execution. Junto is research software only.

Related MCP server: financial-research-mcp

Quick start

Run the offline demo with no account, no API key, and no network access.

npx -y junto@latest demo NVDA --offline

Open the HTML report printed by the command. The demo uses a bundled dataset, so the market inputs stay fixed and no network requests are made.

Run a live committee for a US ticker or a China A share.

npx -y junto@latest committee AAPL --open
npx -y junto@latest committee 600519.SS --open

The --open flag opens the HTML report in your default browser.

Install

Junto runs on Node 20 or later and on Bun 1.0 or later.

npm install -g junto
junto --version

With Bun.

bun add -g junto
bunx junto serve

You can also run Junto without a global install.

npx -y junto@latest serve

Connect your agent

Junto exposes the same five tools to every MCP client.

Claude Code.

claude mcp add --transport stdio junto -- npx -y junto serve

Codex.

codex mcp add junto -- npx -y junto serve

Cursor project config at .cursor/mcp.json.

{
  "mcpServers": {
    "junto": {
      "command": "npx",
      "args": ["-y", "junto", "serve"]
    }
  }
}

OpenCode V2 project config at opencode.json.

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "servers": {
      "junto": {
        "type": "local",
        "command": ["npx", "-y", "junto", "serve"],
        "enabled": true
      }
    }
  }
}

See docs/mcp-clients.md for project level configs, local build paths, and troubleshooting.

CLI

Command

What it does

junto serve

Start the MCP server over stdio

junto demo [symbol]

Run a demo and write a report

junto research <symbol>

Print a cited research snapshot

junto committee <symbol>

Run the committee and write a memo

junto backtest <symbol>

Run a reproducible backtest

junto track

Evaluate the local track record

junto doctor

Check the local setup and data sources

Use junto help for all flags and examples.

MCP tools

Tool

What it returns

Local side effects

research_asset

Quote, fundamentals, technicals, news, citations, and limitations

Reads data only

run_committee

Five persona views, consensus, memo text, and report paths

Writes reports and appends to the track record by default

run_backtest

Metrics, trades, equity curve, and assumptions

Reads data only

get_track_record

Prior calls marked to market with hit, miss, and pending status

Reads data only

get_memo

A saved Markdown or HTML report by run id

Reads data only

All tools return JSON text content. run_committee also returns the full Markdown memo.

Reports and track record

Junto writes two report formats for each saved run.

~/.junto/reports/{runId}.md
~/.junto/reports/{runId}.html

The local track record is a JSONL file.

~/.junto/track-record.jsonl

Set JUNTO_HOME to move all state to another directory. The offline demo writes reports but does not append to the track record.

How it works

Junto builds one research snapshot per asset. The snapshot contains a quote, five years of daily adjusted prices, fundamentals when available, technical indicators, and recent news.

Five personas score the snapshot with fixed rules. Business quality covers margins, returns, and growth. Valuation covers earnings and book multiples. Growth covers reported growth and price momentum. Risk covers volatility, drawdown, and leverage. Technicals covers trend, RSI, MACD, and short term momentum.

The consensus is a weighted average. Business quality has a weight of 25 percent. Valuation, growth, and risk each have a weight of 20 percent. Technicals has a weight of 15 percent. Confidence falls when the personas disagree or when coverage is incomplete.

The default report uses a 50 and 200 day moving average cross when enough history is available. Otherwise it uses buy and hold. Signals use the close and execute at the next open. The report lists the assumptions and limitations.

News is context only and never changes the score. Junto does not use a language model to choose a stance. The same inputs and rules produce the same verdict.

Read docs/methodology.md for the full scoring and backtest specification.

Data sources

Provider

Used for

Notes

Eastmoney

Daily price history and fallback quotes

Primary history source for US and China A shares

Tencent

Live quotes, price to earnings, price to book, and market cap

Responses use GBK encoding

Nasdaq

US company profile and annual fundamentals

Uses browser style request headers

Yahoo Finance RSS

Recent news

Public RSS feed

Google News RSS

News when Yahoo has few items

Public RSS feed

Providers can be rate limited or unavailable. Junto records missing inputs as limitations instead of inventing data. Read docs/data-sources.md for provider behavior and symbol formats.

Privacy and local state

Junto has no telemetry and no account system. A live run contacts the data providers listed above. The offline demo reads only the bundled fixtures. The cache is safe to delete.

Variable

Default

Purpose

JUNTO_HOME

~/.junto

Cache, reports, and track record location

JUNTO_LOG

error

Log level for silent, error, info, or debug

JUNTO_TIMEOUT_MS

20000

Network request timeout

JUNTO_HORIZON_DAYS

90

Default committee horizon

There are no API keys to configure.

Sample report

Open the HTML sample or read the Markdown sample. Both files were generated from the bundled NVDA demo dataset.

Development

git clone https://github.com/truongdatdev/junto.git
cd junto
bun install
bun run check
bun run smoke
bun run build

bun run build writes a single Node compatible file to dist/index.js. bun run fixtures refreshes the demo datasets. Read docs/architecture.md for module boundaries and the data flow.

Documentation

Contributing

Issues and pull requests are welcome. Read CONTRIBUTING.md before you start. Report security problems through SECURITY.md, not a public issue.

License

MIT. See LICENSE.

Disclaimer

Junto is a research tool. It is not a registered investment adviser, broker, or fiduciary. The output is not investment advice, an offer, or a solicitation. It does not account for your objectives, financial situation, or needs. Markets involve risk, including loss of principal. Verify all data and consult a qualified professional before making any decision.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to operate a local financial terminal, including market data, backtesting, paper portfolio management, and news digest, through safe, gated tools over MCP.
    6
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to run a full quant research workflow over MCP: pulling data, authoring and backtesting strategies, running statistical validation and risk checks, and recording findings for future sessions.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to query financial datasets, including institutional holders, insider transactions, investor portfolios, and SEC filings, via MCP tools.
    18 npm
    MIT