Earnings Watch

io.github.benjamin-di由 GitHub 帳號 benjamin-di 發布v0.3.3更新於 Nov 4, 2026

Verified issuer earnings calendars and results documents

已驗證STDIO僅桌面效率與工作流金融

概覽

AI 產生的概覽

本機 MCP 伺服器,讓助理取得經核驗的發行人財報行事曆、事件證據與官方業績文件連結,並維護個人追蹤清單。

可以做什麼
  • 查詢帶有時間不確定性的即將到來財報日期,並檢視事件證據、修訂與近期歷史
  • 取得官方業績文件連結及其核驗狀態,並讀取以游標為基礎的公開變更串流
  • 管理個人追蹤清單:追蹤或取消追蹤發行人、排入登記、處理歧義
  • 規劃選用的外部行事曆操作,並記錄用戶端確認的寫入
  • 檢視目錄與維護狀態,使用內建提示詞與即將事件行事曆資源
適用情境
適合需要以引用證據而非猜測日期來追蹤公司財報日期與業績文件,並維護個人追蹤清單或把財報事件同步到外部行事曆的情境。
執行需求
需要 Python 3.12+ 並在本機安裝該套件(例如透過 uv tool install),再設定以 stdio 執行 serve 指令的用戶端。資料存於 SQLite;抓取發行人頁面與模型擷取在另外的維護執行中進行。選用的模型後端需自行登入 Claude Code 或 Codex CLI;使用 OpenAI 相容的 Codex 端點需設定 codex_base_url 與 codex_key_env。未附帶發行人資料庫或行情資料訂閱。
安裝前請注意
服務執行時會讀取 SQLite 並更新個人追蹤與紀錄,追蹤清單變更會寫入本機。行事曆更新僅由伺服器規劃,須由用戶端透過其 Outlook 應用程式執行並回傳確認。模型維護使用你自己的 CLI 帳號及其額度與條款;請保護驗證檔案與資料磁碟區。HTTP 模式使用每人獨立的 bearer 權杖,須妥善保管。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Earnings Watch,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Earnings Watch

Verified issuer earnings calendars and results documents through a CLI, Python API and MCP server. Models propose dates; deterministic checks require quoted evidence and consistent issuer, period and timing. A call time never silently becomes a publication time.

Calendar updates are optional. Earnings Watch produces an operation plan; your MCP client uses its external Outlook app to apply it and acknowledges confirmed writes. No Microsoft credentials or calendar SDK are required by this package.

Maintained source and contributions: benjamin-di/earnings-watch. See Source and releases.

Requires Python 3.12+. Install the published package with uv tool install earnings-watch, or develop from a source checkout:

sh
make bootstrapuv run earnings-watch inituv run earnings-watch doctoruv run earnings-watch sources import examples/sources.yamluv run earnings-watch watch EXAMPLEuv run earnings-watch upcoming --format json

The example uses reserved domains and fictional data; replace its source URLs and issuer metadata before fetching. There is no bundled issuer universe or market-data subscription.

Maintenance and models

Serving reads SQLite and updates personal follows/ledgers; it never fetches issuer pages or calls a model. Run maintenance separately:

sh
uv run earnings-watch sweep --dry-runuv run earnings-watch sweepuv run earnings-watch sweep --docs-onlyuv run earnings-watch worker

The default backend is none: it preserves existing dates and still polls official release providers. To extract new dates, install and sign into your own Claude Code or Codex CLI, then configure it in earnings-watch.toml:

toml
[llm]backends = ["claude-code", "codex", "none"]max_calls_per_run = 20

Supported minimum versions are Claude Code 2.1.312 and Codex 0.164.0. Run earnings-watch doctor --live to check capabilities and an optional model canary. The package has no login flow. Model usage follows your CLI account's limits and terms. Only an explicit sign-in or account-limit refusal, or a configured Codex endpoint that is unreachable or failing before any output, tries the next backend; a timed-out run is not repeated in the same tick.

Codex runs with --ignore-user-config. To send it through an OpenAI Responses-compatible endpoint, set both codex_base_url and codex_key_env (the name of the environment variable holding its key) under [llm]; the key itself never goes in the file. Use https:// for any endpoint that is not on the local host. Claude Code receives ANTHROPIC_BASE_URL and CLAUDE_CODE_MAX_RETRIES from the environment, so a bounded retry count lets an unavailable endpoint fail before the task timeout.

MCP

A local client configuration, after initialization:

json
{"mcpServers":{"earnings":{"command":"earnings-watch","args":["serve","--stdio"]}}}
ToolPurpose
earnings_upcomingBounded upcoming dates with timing uncertainty
earnings_get_eventsEvidence, revisions and recent history
earnings_documentsOfficial result-document links and verification status
earnings_changesCursor-based public change feed
earnings_watchlistYour follows and registration states
earnings_watchFollow an issuer; queue registration or resolve ambiguity
earnings_unwatchRemove a manual follow
earnings_calendar_planPlan optional external calendar operations
earnings_calendar_ackRecord confirmed operations from a signed plan
earnings_statusCatalogue and maintenance status

Prompts: earnings_briefing, results_brief, sync_to_my_outlook. Resource: earnings://upcoming.ics. Exact times require verified clock and timezone evidence; otherwise calendar entries are all-day. Outlook operations never include attendees.

HTTP standalone mode uses a separate bearer token per person at /users/<id>/mcp. Gateway mode accepts a configured backend bearer and an immutable subject header from the admission gateway at /mcp. These modes are separate trust boundaries; see permissions.

Connections page and notifications

The optional Connections page provides Upcoming, Your companies, Notifications and Calendar in one place. Sign in, add companies or preview a holdings import, then subscribe to your private calendar feed. Facts are shared; holdings, watchlists, mutes, preferences and receipts are personal.

Results-out notifications are enabled for new people. Daily briefs and urgent changes are optional. Mail submission requires a separately configured transport; the server and acquisition worker never send messages themselves.

Docker Compose

sh
cp earnings-watch.example.toml earnings-watch.tomldocker compose builddocker compose run --rm server initdocker compose run --rm server users add exampledocker compose up -d

Save the returned token privately and use it only on that person's HTTP path. The server binds to loopback by default. Both images run as uid 1000; Compose drops capabilities, prevents privilege escalation and mounts the root filesystem read-only. The worker image includes pinned model CLIs; their auth volume is optional with backends=["none"]. Configure CLI sign-in outside the read-only worker before enabling model maintenance. Protect auth files and the data volume from other users.

Use --config PATH, --person ID, and --json with the CLI. Settings come from TOML and EARNINGS_WATCH_* environment variables. See operations, architecture, providers and design decisions.

Development

make check verifies lock drift, lint, formatting, types, dependency boundaries, offline tests and wheel/source builds. Tests use synthetic issuers and fake network/model/account boundaries. Real-model and real-page checks are separate operator gates. Read CONTRIBUTING.md and SECURITY.md.

See implementation status for completed capabilities, release gates and the production adapter work still required before cutover.

來源:README.md,提交 0d3c6cc

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:軟體包安裝失敗。

版本歷史

4
  1. v0.3.3最新Nov 4, 2026
  2. v0.3.1Nov 1, 2026
  3. v0.2.1Oct 31, 2026
  4. v0.1.0Oct 30, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分