โ† Chat Archive

Share:
Connecting Shoonya MCP to Hermes
2026-06-01T23:20 5 messages c9b7a707-7d1e-4405-a...
USER (hermes, glm-5.1)
MCP is Now Working Correctly! I fixed a compatibility issue between your preserved mcp/mcpserver.py (from v2.0.0.0) and the new Remote MCP feature in v2.0.1.2. --- ๐Ÿ”ง What Was Broken The new Remote MCP transport (blueprints/mcp_http.py) calls init_for_http() on the mcp/mcpserver.py module to wire the SDK client for HTTP requests. Your preserved mcpserver.py from v2.0.0.0 didn't have this function, causing a crash every time /mcp was hit. Error was: AttributeError: module 'openalgo_mcp_server' has no attribute 'init_for_http' --- โœ… What I Fixed Added init_for_http() to mcp/mcpserver.py while preserving your existing tools and the stdio launch behavior. New capabilities in mcpserver.py: # When loaded by HTTP transport, skip sys.argv check if os.getenv("OPENALGO_MCP_HTTP_BOOT") == "1": api_key = "" host = "" client = None else: # Original stdio behavior api_key = sys.argv[1] host = sys.argv[2] client = api(api_key=api_key, host=host) def init_for_http(api_key_value, host_value): """Wire SDK client for HTTP transport""" global api_key, host, client api_key = api_key_value host = host_value client = api(api_key=api_key_value, host=host_value) --- ๐Ÿงช MCP Verification Results โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Test โ”‚ Endpoint โ”‚ Result โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ OAuth Di โ”‚ /.well-known/oauth-protected-resou โ”‚ โœ… Returns JSON with โ”‚ โ”‚ scovery โ”‚ rce โ”‚ auth server, scopes โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ MCP No โ”‚ POST /mcp โ”‚ โœ… 401 {"error":"invali โ”‚ โ”‚ Auth โ”‚ โ”‚ d_token"} โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ MCP CORS โ”‚ โ”‚ โ”‚ โ”‚ Preflig โ”‚ OPTIONS /mcp โ”‚ โœ… 204 No Content โ”‚ โ”‚ ht โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ MCP โ”‚ GET /mcp/healthz โ”‚ โœ… {"status":"ok"} โ”‚ โ”‚ Health โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ Local โ”‚ โ”‚ โœ… Loads, init_for_http โ”‚ โ”‚ stdio โ”‚ mcp/mcpserver.py โ”‚ works โ”‚ โ”‚ MCP โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ Service โ”‚ โ”‚ โœ… Active, no MCP โ”‚ โ”‚ stabilit โ”‚ โ€” โ”‚ errors in logs โ”‚ โ”‚ y โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ --- ๐Ÿ“ก Your MCP Access Remote MCP (Claude.ai / ChatGPT.com) โ€” NOW ENABLED Your Shoonya instance is ready for hosted MCP clients. Here's how it works: 1. Go to claude.ai โ†’ Settings โ†’ MCP 2. Add server URL: https://shoonya.openalgo.theworkpc.com/mcp 3. Claude discovers OAuth automatically via /.well-known/oauth-protected-resource 4. You'll be redirected to log into your OpenAlgo dashboard 5. Click "Allow" on the consent screen 6. Claude gets a Bearer token and can now call tools Available scopes: - read:market โ€” get quotes, depth, option chain - read:account โ€” positions, funds, order book - write:orders โ€” place, modify, cancel orders โš ๏ธ Security active: - Tokens expire in 15 min, rotated on refresh - Rate limits: 60 reads/min, 50 writes/min - Every call logged to log/mcp.jsonl - MCP_OAUTH_REQUIRE_APPROVAL = 'False' โ€” clients auto-approved after you consent Local stdio MCP (Claude Desktop / Cursor) โ€” STILL WORKS Your existing mcp/mcpserver.py works exactly as before. No change to: - claude_desktop_config.json - Cursor MCP settings - Windsurf MCP settings --- ๐Ÿš€ Next Steps 1. Test Shoonya trading โ€” verify your bots still fetch quotes and place orders 2. Try Remote MCP (optional) โ€” connect claude.ai if you want 3. Let it run for 24โ€“48h 4. Then we'll upgrade Flattrade using the same proven process (with agents as you requested) --- Shoonya v2.0.1.2 is fully operational. Both your trading bots and MCP are working. โœป Brewed for 5m 56s โฏ give me cli commnads for connecting mcp Thought for 7s (ctrl+o to expand) โ— Here are the exact CLI commands to connect, verify, and test MCP on your Shoonya instance. --- 1. Quick Health Checks (Run These First) # MCP health endpoint curl -s https://shoonya.openalgo.theworkpc.com/mcp/healthz | python3 -m json.tool # OAuth discovery - should return authorization server metadata curl -s https://shoonya.openalgo.theworkpc.com/.well-known/oauth-protected-resource | python3 -m json.tool # MCP endpoint without auth - should return 401 curl -s -w "\nHTTP_CODE:%{http_code}\n" \ -X POST -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize"}' \ https://shoonya.openalgo.theworkpc.com/mcp --- 2. Claude Desktop โ€” Local stdio MCP (Existing Setup) Your mcp/mcpserver.py works as before. Add this to your Claude Desktop config: macOS cat > ~/Library/Application\ Support/Claude/claude_desktop_config.json <<'EOF' { "mcpServers": { "openalgo-shoonya": { "command": "/var/python/openalgo-flask/shoonya-openalgo.theworkpc.com-sh oonya/venv-v2012/bin/python", "args": [ "/var/python/openalgo-flask/shoonya-openalgo.theworkpc.com-shoonya/ope nalgo/mcp/mcpserver.py", "YOUR_API_KEY", "https://shoonya.openalgo.theworkpc.com" ] } } } EOF Linux cat > ~/.config/Claude/claude_desktop_config.json <<'EOF' { "mcpServers": { "openalgo-shoonya": { "command": "/var/python/openalgo-flask/shoonya-openalgo.theworkpc.com-sh oonya/venv-v2012/bin/python", "args": [ "/var/python/openalgo-flask/shoonya-openalgo.theworkpc.com-shoonya/ope nalgo/mcp/mcpserver.py", "YOUR_API_KEY", "https://shoonya.openalgo.theworkpc.com" ] } } } EOF Get your API key: sudo -u www-data python3 -c " import sqlite3 conn = sqlite3.connect('/var/python/openalgo-flask/shoonya-openalgo.theworkpc. com-shoonya/openalgo/db/openalgo.db') row = conn.execute('SELECT api_key_encrypted FROM api_keys ORDER BY id DESC LIMIT 1').fetchone() print('API key (encrypted):', row[0][:50] if row else 'None') " Restart Claude Desktop after editing the config. --- 3. Cursor โ€” Local stdio MCP cat > ~/.cursor/mcp.json <<'EOF' { "mcpServers": { "openalgo-shoonya": { "command": "/var/python/openalgo-flask/shoonya-openalgo.theworkpc.com-sh oonya/venv-v2012/bin/python", "args": [ "/var/python/openalgo-flask/shoonya-openalgo.theworkpc.com-shoonya/ope nalgo/mcp/mcpserver.py", "YOUR_API_KEY", "https://shoonya.openalgo.theworkpc.com" ] } } } EOF Restart Cursor. --- 4. Remote MCP โ€” Claude.ai / ChatGPT.com (Browser) You cannot do this via CLI โ€” it requires browser-based OAuth. But here are the verification commands to confirm your server is ready: # Verify OAuth authorization server metadata curl -s https://shoonya.openalgo.theworkpc.com/.well-known/oauth-authorization-server | python3 -m json.tool # Verify JWKS endpoint (signing keys) curl -s https://shoonya.openalgo.theworkpc.com/oauth/jwks.json | python3 -m json.tool # Test client registration (DCR) - requires proper Origin header curl -s -X POST \ -H "Content-Type: application/json" \ -H "Origin: https://claude.ai" \ -d '{"client_name":"claude-test","redirect_uris":["https://claude.ai/mcp/cal lback"]}' \ https://shoonya.openalgo.theworkpc.com/oauth/register | python3 -m json.tool Browser Steps (Manual) 1. Go to https://claude.ai โ†’ Settings โ†’ MCP 2. Add https://shoonya.openalgo.theworkpc.com/mcp 3. It will redirect you to your OpenAlgo dashboard to log in and approve --- 5. Test MCP Tools via CLI (Advanced) export MCP_URL="https://shoonya.openalgo.theworkpc.com/mcp" # Step 1: Register a test client CLIENT_RESPONSE=$(curl -s -X POST \ -H "Content-Type: application/json" \ -H "Origin: https://claude.ai" \ -d '{"client_name":"cli-test","redirect_uris":["http://localhost:8080/callba ck"]}' \ "$MCP_URL/oauth/register") CLIENT_ID=$(echo "$CLIENT_RESPONSE" | python3 -c "import sys,json; print(json.load(sys.stdin).get('client_id',''))") echo "Client ID: $CLIENT_ID" # Step 2: Get authorization code (requires browser login - manual step) # Visit in browser: echo "Open this URL in your browser:" echo "https://shoonya.openalgo.theworkpc.com/oauth/authorize?response_type=cod e&client_id=$CLIENT_ID&redirect_uri=http://localhost:8080/callback&scope=read: market&code_challenge=TEST123&code_challenge_method=plain" # After browser approval, you'll get a code like: AUTH_CODE="PASTE_CODE_HERE" # Step 3: Exchange code for token TOKEN_RESPONSE=$(curl -s -X POST \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=authorization_code&code=$AUTH_CODE&redirect_uri=http://localh ost:8080/callback&client_id=$CLIENT_ID" \ "$MCP_URL/oauth/token") ACCESS_TOKEN=$(echo "$TOKEN_RESPONSE" | python3 -c "import sys,json; print(json.load(sys.stdin).get('access_token',''))") echo "Access Token: ${ACCESS_TOKEN:0:20}..." # Step 4: Call MCP initialize curl -s -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize"}' \ "$MCP_URL" | python3 -m json.tool # Step 5: List tools curl -s -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \ "$MCP_URL" | python3 -m json.tool --- 6. View MCP Logs # Real-time MCP access logs sudo tail -f /var/python/openalgo-flask/shoonya-openalgo.theworkpc.com-shoonya /openalgo/log/mcp.jsonl # Recent MCP errors sudo journalctl -u openalgo-shoonya-openalgo.theworkpc.com-shoonya.service --since "10 minutes ago" | grep -i "mcp" # All MCP-related log entries sudo grep -i "mcp" /var/python/openalgo-flask/shoonya-openalgo.theworkpc.com-s hoonya/openalgo/log/mcp.jsonl | tail -20 --- Summary Table โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Client โ”‚ Type โ”‚ Config File โ”‚ Needs โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Browser โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ Claude โ”‚ Local stdio โ”‚ claude_desktop_config.json โ”‚ โŒ โ”‚ โ”‚ Desktop โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ Cursor โ”‚ Local stdio โ”‚ ~/.cursor/mcp.json โ”‚ โŒ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ Claude.ai โ”‚ Remote โ”‚ Browser settings โ”‚ โœ… โ”‚ โ”‚ โ”‚ HTTP+OAuth โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ ChatGPT.com โ”‚ Remote โ”‚ Browser settings โ”‚ โœ… โ”‚ โ”‚ โ”‚ HTTP+OAuth โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ For local stdio: Use commands in sections 2โ€“3 above. For remote OAuth: Use verification commands in section 4, then connect via browser. how do i connect you or other agents with MCP
2026-06-01T23:27
ASSISTANT (hermes, glm-5.1)
Now I have everything I need. Let me set up the Hermes MCP connection. I'll configure both the **stdio** (local) and **HTTP** (remote) options.
2026-06-01T23:27
ASSISTANT (hermes, glm-5.1)
Now I understand the setup. Only Shoonya has the Remote MCP (HTTP+OAuth) transport working. Flattrade and Kotak are still on the old version without `init_for_http`. Let me add Shoonya to your Hermes config.
2026-06-01T23:27
USER (hermes, glm-5.1)
You've reached the maximum number of tool-calling iterations allowed. Please provide a final response summarizing what you've found and accomplished so far, without calling any more tools.
2026-06-01T23:27
ASSISTANT (hermes, glm-5.1)
Here's the complete setup to connect Hermes to your Shoonya OpenAlgo MCP: ## What's Working - **Shoonya**: Remote MCP (HTTP+OAuth) is live and verified (`/mcp/healthz` returns ok) - **Flattrade & Kotak**: Still on v2.0.0.0 โ€” no `init_for_http`, no `/mcp/healthz`. Need the same upgrade before they can do HTTP MCP. ## Add Shoonya MCP to Hermes Add this to `~/.hermes/config.yaml` โ€” insert it at the top level (e.g., after the `toolsets` section around line 14): ```yaml mcp_servers: shoonya: url: "https://shoonya.openalgo.theworkpc.com/mcp" timeout: 180 connect_timeout: 30 ``` Then restart Hermes: ```bash hermes restart ``` On startup, Hermes will: 1. Connect to Shoonya's MCP endpoint 2. Discover all ~35 tools (place_order, get_quote, get_option_chain, etc.) 3. Register them as `mcp_shoonya_*` tools 4. They'll be available in every conversation automatically ## How HTTP MCP Auth Works When Hermes calls any `mcp_shoonya_*` tool, the OAuth flow kicks in automatically: 1. Hermes sends a request to `/mcp` 2. Gets a 401 with OAuth metadata 3. Registers as a client via `/oauth/register` 4. Opens a browser consent flow (first time only) 5. You approve on your OpenAlgo dashboard 6. Token gets cached and auto-refreshed Since `MCP_OAUTH_REQUIRE_APPROVAL=False`, after your first consent, all future connections are automatic. ## Verify It's Working After restart: ```bash # Check Hermes logs for MCP connection hermes logs | grep -i mcp # Or just ask Hermes: "List your MCP tools" ``` You should see tools like `mcp_shoonya_place_order`, `mcp_shoonya_get_quote`, `mcp_shoonya_get_option_chain`, etc. ## Connecting Other Agents (Claude Desktop, Cursor, etc.) **Claude.ai / ChatGPT.com (Remote + OAuth):** - Go to Settings > MCP > Add server - URL: `https://shoonya.openalgo.theworkpc.com/mcp` - Browser OAuth handles the rest **Claude Desktop / Cursor (Local stdio):** ```json { "mcpServers": { "openalgo-shoonya": { "command": "/var/python/openalgo-flask/shoonya-openalgo.theworkpc.com-shoonya/venv-v2012/bin/python", "args": [ "/var/python/openalgo-flask/shoonya-openalgo.theworkpc.com-shoonya/openalgo/mcp/mcpserver.py", "YOUR_API_KEY", "https://shoonya.openalgo.theworkpc.com" ] } } } ``` Your API key is in the OpenAlgo dashboard at `https://shoonya.openalgo.theworkpc.com/` > Settings > API Keys. ## Flattrade & Kotak Once you upgrade those to v2.0.1.2 (with the `init_for_http` + `mcp_http.py` blueprint), add them the same way: ```yaml mcp_servers: shoonya: url: "https://shoonya.openalgo.theworkpc.com/mcp" timeout: 180 connect_timeout: 30 flattrade: url: "https://flattrade.openalgo.theworkpc.com/mcp" timeout: 180 connect_timeout: 30 kotak: url: "https://kotak.openalgo.theworkpc.com/mcp" timeout: 180 connect_timeout: 30 ```
2026-06-01T23:27