
Artha Council
io.github.akira231097由 GitHub 帳號 akira231097 發布v1.4.0更新於 Oct 24, 2026
Auditable equity research and fail-closed broker execution for US and Indian cash equities.
概覽
本機 MCP 伺服器,用於可稽核的美股與印度股票研究、分析師角色辯論、持倉監控,以及受閘控的券商下單執行。
- 可以做什麼
- 篩選大範圍股票池、排序候選並依券商可行性與資料品質路由(漏斗、券商路由、機會偵察)。執行獨立的基本面、技術與風險分析師角色對候選進行辯論,並由 CIO 綜合與評分稽核。監控持倉與投資論點,觸發停損或失效複核,並給出持有、減碼、出場的賣出決策。分階段推理執行,訂單須通過確定性券商複核、下單閘控、回執與成交後對帳。追蹤投資組合容量、買入暫停、執行品質與健康檢查,可選 Telegram 通知。
- 適用情境
- 適合希望助理協助進行有狀態股票研究、論點追蹤與美股或印度現金股票持倉監控的使用者,之後可在明確限額下啟用券商下單。
- 執行需求
- 以本機 stdio 程序執行(提供容器映像);README 列出完整專案需 Python 3.12+ 與 Node.js 20+。需要持久資料目錄(ARTHA_MCP_DATA_DIR)與市場設定(ARTHA_MCP_MARKET)。可選金鑰:FINNHUB_API_KEY、FMP_API_KEY、GOOGLE_API_KEY、TELEGRAM_BOT_TOKEN 與 TELEGRAM_CHAT_ID;券商權杖 UPSTOX_ACCESS_TOKEN、UPSTOX_SANDBOX_ACCESS_TOKEN、KITE_API_KEY 與 KITE_ACCESS_TOKEN 僅對應轉接器需要。需能連線資料供應商與券商的網路。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Artha Council,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Artha Council
[Artha CI] [CodeQL] [OpenSSF Scorecard] [License]
Artha is an AI-assisted equity research and portfolio automation system. It narrows a broad US-stock universe, ranks opportunities, asks independent analyst roles to debate the strongest candidates, monitors active investment theses, and uses deterministic broker gates before an order can proceed.
Version 1.4 hardens the MCP server with source/build provenance for portable local or OAuth-protected remote access. It supports the existing US workflow and market-aware broker adapters for Indian cash equities without treating US research as India data. India adapters provide broker-verified instrument lookup and fail-closed, whole-share delivery limit execution with current static-IP requirements.
Created and maintained by Sarath (@akira231097).
See the design notes and architecture diagram for a visual walkthrough of the research, Council, execution, and audit boundaries.
Artha is research software, not financial advice. Public defaults cannot place live trades. Anyone enabling broker integration is responsible for reviewing the source, their configuration, broker terms, and applicable requirements.
Why Artha Exists
Most stock screeners stop after ranking tickers. Artha treats investing as a stateful operating system:
- Find candidates from a large universe.
- Verify data quality and execution feasibility.
- Give scarce Council attention to the strongest candidates.
- Separate investment judgment from order execution.
- Monitor every held thesis and send material changes to a sell Council.
- Reconcile intended actions against broker state.
- Preserve evidence and state transitions for audit.
System Pipeline
The sell side runs independently of new-buy capacity:
Important Design Rules
Research is not execution
The Council answers: "Is this investment attractive?"
The execution layer answers: "Can this exact order be placed safely now?"
A good company can be temporarily unbuyable because the quote is stale, the spread is too wide, the price moved above the approved cap, or broker review is incomplete. Those conditions do not rewrite the investment thesis.
Missing broker proof blocks an order
Money-moving paths fail closed. A model statement that a check passed is not enough; Artha requires the decisive structured broker output.
Portfolio monitoring continues when buys pause
Position limits and invested-capacity limits pause new buys only. Monitoring, sell review, reconciliation, health checks, and alerts continue running.
Major Components
artha/funnel.py- broad-universe promotion and multi-sleeve ranking.artha/broker_router.py- quote, liquidity, tradability, and data feasibility.artha/opportunity_scout.py- agentic pre-Council evidence review and ranking.artha/council.py- analyst roles, score audit, and CIO synthesis.artha/execution_officer.py- Stage A and Stage B execution reasoning.artha/alpha_shadow.py- non-authoritative alpha experiments and outcome tracking.artha/broker_capacity.py- portfolio and daily buy-capacity calculations.artha/stand_down.py- buy-only pause and next-session reset behavior.artha/sell_engine.py- position triggers and sell-side orchestration.artha/sell_council.py- hold, trim, and exit review.artha/position_classification.py- broker-position sector and industry repair.artha/execution_learning.py- post-trade execution-quality measurements.artha/fill_finalizer.py- broker-fill accounting and idempotent state finalization.artha/robinhood_bridge.py- broker handoff, review, clearance, and reconciliation.artha/scheduler.py- scheduled scans and lifecycle orchestration.artha/supervisor.py- production health and readiness checks.artha_mcp/- MCP tools, resources, prompts, authorization, jobs, redaction, research adapters, exact-order receipts, and broker reconciliation.dashboard/- local operator dashboard.
See Architecture for the complete component map.
Quick Start
Requirements: Python 3.12 or newer and Node.js 20 or newer.
Add your own provider credentials to .env. Keep every Robinhood setting at its
safe default while evaluating the system.
MCP
Connect any MCP-compatible host through local stdio using
.mcp.json.example, or deploy stateless Streamable HTTP
behind OAuth and TLS. The server starts read-only with its kill switch engaged.
The user supplies their own model subscriptions, data subscriptions, broker credentials, and notification credentials. The MCP server never provides or shares the maintainer's accounts. See Artha MCP and India Support for the exact capability and safety boundary. See MCP Updates for release fingerprints, rolling versus stable channels, and the fail-closed local-source promotion path.
Verification
Tests use synthetic fixtures and must not require real broker credentials.
Docker
The included image supports the core Python research CLI:
The broker snapshot helper is intentionally outside this minimal Python image; it requires a separately configured Node.js MCP runtime and broker access.
Dockerfile.mcp builds the non-root MCP image. The main image tag is refreshed
after each tested default-branch update; release versions remain immutable.
Public Release Boundary
This repository contains source, tests, documentation, and safe configuration templates. It intentionally excludes:
- API keys, OAuth tokens, and
.envfiles - broker account identifiers and snapshots
- portfolios, order history, and transaction records
- SQLite journals and runtime state
- generated dossiers, traces, reports, and logs
- Telegram tokens, chat identifiers, and callback tokens
- local OpenClaw, launchd, and workstation configuration
- third-party market-data payloads
Third-party data and services remain governed by their own licenses and terms. The Apache license covers Artha's source code, not provider data or broker access.
Project Documents
- Architecture
- Design notes and diagram
- Public release and data boundary
- Artha MCP
- MCP source alignment and updates
- India support
- Security policy
- Contributing
- Authors
- Changelog
- Apache License 2.0
License and Citation
Artha Council is licensed under Apache License 2.0. Distributed copies and modifications must retain the applicable license, copyright, and attribution notices described in NOTICE.
Use CITATION.cff to cite the project. GitHub exposes it through the repository's Cite this repository control.
來源:README.md,提交 bc3ef17
工具
0版本歷史
1- v1.4.0最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分