Artha Council
Auditable equity research and fail-closed broker execution for US and Indian cash equities.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
ghcr.io/akira231097/artha-council-mcp:1.4.0claude mcp add artha-council -e 'ARTHA_MCP_MARKET=<ARTHA_MCP_MARKET>' -e 'ARTHA_MCP_BROKER=<ARTHA_MCP_BROKER>' -e 'ARTHA_MCP_RESEARCH_MODE=<ARTHA_MCP_RESEARCH_MODE>' -e 'ARTHA_MCP_DATA_DIR=<ARTHA_MCP_DATA_DIR>' -e 'ARTHA_MCP_ACCESS_MODE=<ARTHA_MCP_ACCESS_MODE>' -e 'ARTHA_MCP_OPERATIONS_ENABLED=<ARTHA_MCP_OPERATIONS_ENABLED>' -e 'ARTHA_MCP_TRADING_ENABLED=<ARTHA_MCP_TRADING_ENABLED>' -e 'ARTHA_MCP_KILL_SWITCH=<ARTHA_MCP_KILL_SWITCH>' -e 'ARTHA_MCP_MAX_ORDER_VALUE=<ARTHA_MCP_MAX_ORDER_VALUE>' -e 'ARTHA_MCP_MAX_DAILY_ORDER_VALUE=<ARTHA_MCP_MAX_DAILY_ORDER_VALUE>' -e 'ARTHA_MCP_MAX_DAILY_ORDERS=<ARTHA_MCP_MAX_DAILY_ORDERS>' -e 'ARTHA_MCP_MAX_PENDING_JOBS=<ARTHA_MCP_MAX_PENDING_JOBS>' -e 'FMP_API_KEY=<your fmp_api_key>' -e 'FINNHUB_API_KEY=<your finnhub_api_key>' -e 'GOOGLE_API_KEY=<your google_api_key>' -e 'TELEGRAM_BOT_TOKEN=<your telegram_bot_token>' -e 'TELEGRAM_CHAT_ID=<your telegram_chat_id>' -e 'UPSTOX_ACCESS_TOKEN=<your upstox_access_token>' -e 'UPSTOX_SANDBOX_ACCESS_TOKEN=<your upstox_sandbox_access_token>' -e 'ARTHA_INDIA_STATIC_IP_REGISTERED=<ARTHA_INDIA_STATIC_IP_REGISTERED>' -e 'ARTHA_INDIA_DEMAT_SELL_AUTHORIZED=<ARTHA_INDIA_DEMAT_SELL_AUTHORIZED>' -e 'ARTHA_UPSTOX_ALGO_NAME=<ARTHA_UPSTOX_ALGO_NAME>' -e 'KITE_API_KEY=<your kite_api_key>' -e 'KITE_ACCESS_TOKEN=<your kite_access_token>' -- docker run -i --rm ghcr.io/akira231097/artha-council-mcp:1.4.0
{
"mcpServers": {
"artha-council": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/akira231097/artha-council-mcp:1.4.0"
],
"env": {
"ARTHA_MCP_MARKET": "<ARTHA_MCP_MARKET>",
"ARTHA_MCP_BROKER": "<ARTHA_MCP_BROKER>",
"ARTHA_MCP_RESEARCH_MODE": "<ARTHA_MCP_RESEARCH_MODE>",
"ARTHA_MCP_DATA_DIR": "<ARTHA_MCP_DATA_DIR>",
"ARTHA_MCP_ACCESS_MODE": "<ARTHA_MCP_ACCESS_MODE>",
"ARTHA_MCP_OPERATIONS_ENABLED": "<ARTHA_MCP_OPERATIONS_ENABLED>",
"ARTHA_MCP_TRADING_ENABLED": "<ARTHA_MCP_TRADING_ENABLED>",
"ARTHA_MCP_KILL_SWITCH": "<ARTHA_MCP_KILL_SWITCH>",
"ARTHA_MCP_MAX_ORDER_VALUE": "<ARTHA_MCP_MAX_ORDER_VALUE>",
"ARTHA_MCP_MAX_DAILY_ORDER_VALUE": "<ARTHA_MCP_MAX_DAILY_ORDER_VALUE>",
"ARTHA_MCP_MAX_DAILY_ORDERS": "<ARTHA_MCP_MAX_DAILY_ORDERS>",
"ARTHA_MCP_MAX_PENDING_JOBS": "<ARTHA_MCP_MAX_PENDING_JOBS>",
"FMP_API_KEY": "<your fmp_api_key>",
"FINNHUB_API_KEY": "<your finnhub_api_key>",
"GOOGLE_API_KEY": "<your google_api_key>",
"TELEGRAM_BOT_TOKEN": "<your telegram_bot_token>",
"TELEGRAM_CHAT_ID": "<your telegram_chat_id>",
"UPSTOX_ACCESS_TOKEN": "<your upstox_access_token>",
"UPSTOX_SANDBOX_ACCESS_TOKEN": "<your upstox_sandbox_access_token>",
"ARTHA_INDIA_STATIC_IP_REGISTERED": "<ARTHA_INDIA_STATIC_IP_REGISTERED>",
"ARTHA_INDIA_DEMAT_SELL_AUTHORIZED": "<ARTHA_INDIA_DEMAT_SELL_AUTHORIZED>",
"ARTHA_UPSTOX_ALGO_NAME": "<ARTHA_UPSTOX_ALGO_NAME>",
"KITE_API_KEY": "<your kite_api_key>",
"KITE_ACCESS_TOKEN": "<your kite_access_token>"
}
}
}
}
Environment variables
ARTHA_MCP_MARKETMarket profile: US or IN.ARTHA_MCP_BROKERBroker adapter: snapshot, upstox, zerodha, none, or plugin.ARTHA_MCP_RESEARCH_MODEResearch boundary: embedded, host_orchestrated, or plugin. India should use host_orchestrated or a market-native plugin.ARTHA_MCP_DATA_DIRPersistent directory for journals, receipts, jobs, portfolio state, and audit artifacts.ARTHA_MCP_ACCESS_MODECapability mode: read_only, operator, or trading. Defaults to read_only.ARTHA_MCP_OPERATIONS_ENABLEDExplicit operations switch. Defaults to false.ARTHA_MCP_TRADING_ENABLEDExplicit live-trading switch. Defaults to false.ARTHA_MCP_KILL_SWITCHFinal MCP placement kill switch. Defaults to true.ARTHA_MCP_MAX_ORDER_VALUEMaximum value of one order in the selected market currency. Defaults to 25 USD or 2500 INR.ARTHA_MCP_MAX_DAILY_ORDER_VALUEMaximum total daily order value in the selected market currency. Defaults to 50 USD or 5000 INR.ARTHA_MCP_MAX_DAILY_ORDERSMaximum number of broker placements per market day. Defaults to 2.ARTHA_MCP_MAX_PENDING_JOBSMaximum queued or running allowlisted workflows. Defaults to 8 and prevents an unbounded work queue.FMP_API_KEYsecret Optional Financial Modeling Prep key for embedded US research.FINNHUB_API_KEYsecret Optional Finnhub key for embedded US research enrichment.GOOGLE_API_KEYsecret Optional Google Gemini key for embedded Council roles and web-grounded research.TELEGRAM_BOT_TOKENsecret Optional Telegram bot token for Artha notifications.TELEGRAM_CHAT_IDsecret Optional Telegram destination used with TELEGRAM_BOT_TOKEN.UPSTOX_ACCESS_TOKENsecret Upstox live account/read token used for portfolio, quote, margin, and fee proof.UPSTOX_SANDBOX_ACCESS_TOKENsecret Separate Upstox sandbox token, required only when ARTHA_UPSTOX_SANDBOX=true.ARTHA_INDIA_STATIC_IP_REGISTEREDOperator attestation that this deployment IP is registered with the selected Indian broker.ARTHA_INDIA_DEMAT_SELL_AUTHORIZEDOperator attestation that required demat authorization is valid for Indian delivery sells.ARTHA_UPSTOX_ALGO_NAMEOptional exchange-approved algo name configured in the Upstox app.KITE_API_KEYsecret Required only for the Zerodha adapter.KITE_ACCESS_TOKENsecret Required only for the Zerodha adapter.
Frequently asked questions
What is Artha Council?
Auditable equity research and fail-closed broker execution for US and Indian cash equities.
How do I install Artha Council?
It runs on your machine. In Claude Code: claude mcp add artha-council -e 'ARTHA_MCP_MARKET=<ARTHA_MCP_MARKET>' -e 'ARTHA_MCP_BROKER=<ARTHA_MCP_BROKER>' -e 'ARTHA_MCP_RESEARCH_MODE=<ARTHA_MCP_RESEARCH_MODE>' -e 'ARTHA_MCP_DATA_DIR=<ARTHA_MCP_DATA_DIR>' -e 'ARTHA_MCP_ACCESS_MODE=<ARTHA_MCP_ACCESS_MODE>' -e 'ARTHA_MCP_OPERATIONS_ENABLED=<ARTHA_MCP_OPERATIONS_ENABLED>' -e 'ARTHA_MCP_TRADING_ENABLED=<ARTHA_MCP_TRADING_ENABLED>' -e 'ARTHA_MCP_KILL_SWITCH=<ARTHA_MCP_KILL_SWITCH>' -e 'ARTHA_MCP_MAX_ORDER_VALUE=<ARTHA_MCP_MAX_ORDER_VALUE>' -e 'ARTHA_MCP_MAX_DAILY_ORDER_VALUE=<ARTHA_MCP_MAX_DAILY_ORDER_VALUE>' -e 'ARTHA_MCP_MAX_DAILY_ORDERS=<ARTHA_MCP_MAX_DAILY_ORDERS>' -e 'ARTHA_MCP_MAX_PENDING_JOBS=<ARTHA_MCP_MAX_PENDING_JOBS>' -e 'FMP_API_KEY=<your fmp_api_key>' -e 'FINNHUB_API_KEY=<your finnhub_api_key>' -e 'GOOGLE_API_KEY=<your google_api_key>' -e 'TELEGRAM_BOT_TOKEN=<your telegram_bot_token>' -e 'TELEGRAM_CHAT_ID=<your telegram_chat_id>' -e 'UPSTOX_ACCESS_TOKEN=<your upstox_access_token>' -e 'UPSTOX_SANDBOX_ACCESS_TOKEN=<your upstox_sandbox_access_token>' -e 'ARTHA_INDIA_STATIC_IP_REGISTERED=<ARTHA_INDIA_STATIC_IP_REGISTERED>' -e 'ARTHA_INDIA_DEMAT_SELL_AUTHORIZED=<ARTHA_INDIA_DEMAT_SELL_AUTHORIZED>' -e 'ARTHA_UPSTOX_ALGO_NAME=<ARTHA_UPSTOX_ALGO_NAME>' -e 'KITE_API_KEY=<your kite_api_key>' -e 'KITE_ACCESS_TOKEN=<your kite_access_token>' -- docker run -i --rm ghcr.io/akira231097/artha-council-mcp:1.4.0. For other clients, paste the JSON configuration from this page into their MCP settings.
Does Artha Council need an API key?
Yes. It expects FMP_API_KEY, FINNHUB_API_KEY, GOOGLE_API_KEY, TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID, UPSTOX_ACCESS_TOKEN, UPSTOX_SANDBOX_ACCESS_TOKEN, KITE_API_KEY, KITE_ACCESS_TOKEN, which you set in its configuration.
Is Artha Council open source?
Its code is public on GitHub, but the repository does not declare a standard license.
Who maintains Artha Council?
It is published by akira231097. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.