Skip to main content
Glama

Thesis

Самостоятельно размещаемое рабочее пространство для исследований по отдельным тикерам для розничных инвесторов. Захватывайте контент откуда угодно через общий лист PWA. Рабочее пространство предоставляет MCP-сервер, чтобы ваш собственный агент (Claude, ChatGPT, Codex CLI) выполнял синтез. Однопользовательский MVP — ваши данные остаются в вашем аккаунте Cloudflare.

Помощь в исследовании, а не совет. Агент пишет; вы решаете.

Архитектура

┌─────────────────────────────────────────────────────────────┐
│  Browser / Mobile                                           │
│  ┌──────────────────────────────────────────────────────┐   │
│  │  PWA  (Vite + React + Tailwind)                      │   │
│  │  - Web Share Target  - Workspace tabs                │   │
│  │  - Tiptap rich text  - Component renderer            │   │
│  └────────────────────┬─────────────────────────────────┘   │
└───────────────────────┼─────────────────────────────────────┘
                        │  /api/*  /mcp
┌───────────────────────▼─────────────────────────────────────┐
│  Cloudflare Worker  (Hono)                                  │
│  ┌───────────────────────────────┐  ┌──────────────────┐    │
│  │  Workspace Durable Object     │  │  WorkspaceAgent  │    │
│  │  SQLite + embedding BLOB      │  │  DO (Slice 4)    │    │
│  │  30 MCP tools                 │  │  nightly cron    │    │
│  └───────────────────────────────┘  └──────────────────┘    │
│  ┌───────────────────────────────────────────────────────┐   │
│  │  Data providers                                       │   │
│  │  Yahoo  Stooq  EDGAR  Finnhub  FRED                  │   │
│  └───────────────────────────────────────────────────────┘   │
│  ┌──────────────┐  ┌────────────┐  ┌──────────────────────┐  │
│  │  R2 (docs)   │  │  KV cache  │  │  CF AI Gateway       │  │
│  └──────────────┘  └────────────┘  └──────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

Future:
┌─────────────────────────┐
│  Auth app (Slice 5)     │
│  better-auth + Postgres  │
│  Docker → Fly.io        │
└─────────────────────────┘

Related MCP server: equity-desk

Быстрый старт

git clone <repo> && cd invest
npm install
cp apps/worker/.dev.vars.example apps/worker/.dev.vars
# Edit apps/worker/.dev.vars — set THESIS_BEARER_TOKEN, optionally FINNHUB_API_KEY + FRED_API_KEY

# Terminal 1 — worker on :8787
npm run dev:worker

# Terminal 2 — PWA on :5173 (proxies /api and /mcp to :8787)
npm run dev:pwa

Откройте http://localhost:5173. Добавьте bearer-токен в Настройках (используйте значение из .dev.vars).

Подключение агента (BYOA)

GET /api/mcp-info возвращает конечную точку MCP, список инструментов и инструкции по аутентификации. Страница настроек отображает ту же информацию с URL-адресами, готовыми для копирования.

  • Streamable HTTP (предпочтительно): POST /mcp, GET /mcp

  • Legacy SSE: GET /mcp/sse, POST /mcp/messages

  • Auth: Authorization: Bearer <token> или ?token=<token>

Переменные окружения

Все секреты помещаются в apps/worker/.dev.vars для локальной разработки. См. apps/worker/.dev.vars.example.

Var

Required

Notes

THESIS_BEARER_TOKEN

Yes

Общий секрет для всех API и MCP-запросов

FINNHUB_API_KEY

Optional

Бесплатно на finnhub.io — включает фундаментальные показатели, отчётность, новости

FRED_API_KEY

Optional

Бесплатно на fred.stlouisfed.org — включает макро-плитки

STOOQ_API_KEY

Optional

Капча 2025 — пропустите, чтобы использовать запасной вариант Yahoo

ANTHROPIC_API_KEY

Slice 4

Требуется для ночных запусков встроенного агента

CF_AIG_TOKEN

Slice 4

Токен Cloudflare AI Gateway

CF_ACCOUNT_ID

Slice 4

Ваш идентификатор аккаунта CF

AGENT_MONTHLY_TOKEN_CAP

Optional

По умолчанию 200000 токенов в месяц на рабочее пространство

Выпущенные слайсы

Полный журнал решений и история слайсов: docs/roadmap/GRILL-ME.md

Slice

Description

Status

W0–W5

Фундамент, авторство, синтез, линзы, доказательства, данные

✅

Slice 0

Стабилизация, документация Stooq, повтор EDGAR, theme-color

✅

Slice 1

Примитив композиции — layout_json + set_layout MCP

✅

Slice 1.5

Полная карта слотов + расширенный словарь компонентов

🔄

Slice 2

Поиск — эмбеддинги (BLOB cosine), инструмент retrieve, обратное заполнение

✅

Slice 3

Временной — catch_up, reactivate_check, интерфейс Catch Up

✅

Slice 4

Встроенный агент — WorkspaceAgent DO, ночной cron, AI Gateway

✅

Slice 5

Аутентификация — better-auth, Docker-приложение для аутентификации

Проектирование

Slice 6

Чат-интерфейс

Проектирование

Slice 7

Кросс-тикерный уровень Vectorize

Проектирование

Дымовые тесты

Категоризированные дымовые тесты находятся в smoke/.

# All Playwright specs (UI + E2E)
npm run smoke

# Individual shell scripts (worker API — no browser needed)
bash smoke/ingestion/capture.smoke.sh
bash smoke/claims/claims.smoke.sh
bash smoke/agent/agent.smoke.sh   # needs ANTHROPIC_API_KEY

Развёртывание

Cloudflare Worker + PWA

# 1. Build PWA into apps/pwa/dist
npm run build:pwa

# 2. Set production secrets (one-time)
cd apps/worker
wrangler secret put THESIS_BEARER_TOKEN
wrangler secret put ANTHROPIC_API_KEY
wrangler secret put CF_AIG_TOKEN
wrangler secret put FINNHUB_API_KEY
wrangler secret put FRED_API_KEY

# 3. Deploy worker + PWA assets
wrangler deploy

Worker обслуживает PWA с того же источника. /share-target, /mcp и /api/* — все являются собственными.

Полное руководство по развёртыванию, включая Docker-цель auth-app, DNS и послеразвёртывающие дымовые проверки: docs/deployment.md.

Технологический стек

Layer

Tech

Среда выполнения Worker

Cloudflare Workers + Durable Objects (SQLite)

Фреймворк API

Hono

MCP

Собственный JSON-RPC поверх HTTP + SSE (30 инструментов)

PWA

Vite 5 + React 18 + Tailwind 3

Форматированный текст

Tiptap

Эмбеддинги

Workers AI bge-small-en-v1.5 (384-мерный, BLOB cosine)

Агент

Обычный Durable Object (WorkspaceAgent) + CF AI Gateway

Документы

R2 + таблица соединений document_captures

Общие типы

packages/shared (Zod)

Внесение вклада

  1. Прочтите docs/STATUS.md — текущее состояние + план на будущее

  2. Прочтите docs/architecture/v2-embedded-agent.md — дизайн v2

  3. Запустите npm run typecheck перед отправкой

  4. Добавьте дымовое покрытие для новых конечных точек в smoke/

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to perform grounded equity research by analyzing tickers from SEC filings and market data, producing citation-guarded memos with pre-computed fundamentals.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Financial data and research MCP for AI agents: filings with full-text and fact search, statements as reported, earnings, insider and institutional ownership, corporate events, executives, analyst data, company discovery and research signals for US, China and Japan equities. Every figure traced to its filing. Browser sign-in.
    10
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to retrieve real-time market quotes, company financials, earnings calendars, news with sentiment, insider transactions, ETF holdings, and international ticker data via a market-data REST API.
    477 npm
    MIT