NestDaddy

Finance MCP

io.github.Blahaj-gif/hitl-finance-mcp · v0.5.0

Market data, SEC filings and risk tools for Webull, Saxo and IBKR. Only you can send an order.

Connect Runs on your machine

Terminal
claude mcp add hitl-finance-mcp -e WEBULL_APP_KEY=<WEBULL_APP_KEY> -e WEBULL_APP_SECRET=<WEBULL_APP_SECRET> -e WEBULL_REGION_ID=<WEBULL_REGION_ID> -e WEBULL_ENVIRONMENT=<WEBULL_ENVIRONMENT> -e FINANCE_BROKER=<FINANCE_BROKER> -e SAXO_ACCESS_TOKEN=<SAXO_ACCESS_TOKEN> -e SAXO_ENVIRONMENT=<SAXO_ENVIRONMENT> -e IBKR_BASE_URL=<IBKR_BASE_URL> -e IBKR_TLS_INSECURE=<IBKR_TLS_INSECURE> -e SEC_USER_AGENT=<SEC_USER_AGENT> -e BLS_API_KEY=<BLS_API_KEY> -- uvx hitl-finance-mcp==0.5.0
claude_desktop_config.json
{
  "mcpServers": {
    "hitl-finance-mcp": {
      "command": "uvx",
      "args": [
        "hitl-finance-mcp==0.5.0"
      ],
      "env": {
        "WEBULL_APP_KEY": "<WEBULL_APP_KEY>",
        "WEBULL_APP_SECRET": "<WEBULL_APP_SECRET>",
        "WEBULL_REGION_ID": "<WEBULL_REGION_ID>",
        "WEBULL_ENVIRONMENT": "<WEBULL_ENVIRONMENT>",
        "FINANCE_BROKER": "<FINANCE_BROKER>",
        "SAXO_ACCESS_TOKEN": "<SAXO_ACCESS_TOKEN>",
        "SAXO_ENVIRONMENT": "<SAXO_ENVIRONMENT>",
        "IBKR_BASE_URL": "<IBKR_BASE_URL>",
        "IBKR_TLS_INSECURE": "<IBKR_TLS_INSECURE>",
        "SEC_USER_AGENT": "<SEC_USER_AGENT>",
        "BLS_API_KEY": "<BLS_API_KEY>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "hitl-finance-mcp": {
      "command": "uvx",
      "args": [
        "hitl-finance-mcp==0.5.0"
      ],
      "env": {
        "WEBULL_APP_KEY": "<WEBULL_APP_KEY>",
        "WEBULL_APP_SECRET": "<WEBULL_APP_SECRET>",
        "WEBULL_REGION_ID": "<WEBULL_REGION_ID>",
        "WEBULL_ENVIRONMENT": "<WEBULL_ENVIRONMENT>",
        "FINANCE_BROKER": "<FINANCE_BROKER>",
        "SAXO_ACCESS_TOKEN": "<SAXO_ACCESS_TOKEN>",
        "SAXO_ENVIRONMENT": "<SAXO_ENVIRONMENT>",
        "IBKR_BASE_URL": "<IBKR_BASE_URL>",
        "IBKR_TLS_INSECURE": "<IBKR_TLS_INSECURE>",
        "SEC_USER_AGENT": "<SEC_USER_AGENT>",
        "BLS_API_KEY": "<BLS_API_KEY>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "hitl-finance-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "hitl-finance-mcp==0.5.0"
      ],
      "env": {
        "WEBULL_APP_KEY": "<WEBULL_APP_KEY>",
        "WEBULL_APP_SECRET": "<WEBULL_APP_SECRET>",
        "WEBULL_REGION_ID": "<WEBULL_REGION_ID>",
        "WEBULL_ENVIRONMENT": "<WEBULL_ENVIRONMENT>",
        "FINANCE_BROKER": "<FINANCE_BROKER>",
        "SAXO_ACCESS_TOKEN": "<SAXO_ACCESS_TOKEN>",
        "SAXO_ENVIRONMENT": "<SAXO_ENVIRONMENT>",
        "IBKR_BASE_URL": "<IBKR_BASE_URL>",
        "IBKR_TLS_INSECURE": "<IBKR_TLS_INSECURE>",
        "SEC_USER_AGENT": "<SEC_USER_AGENT>",
        "BLS_API_KEY": "<BLS_API_KEY>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
WEBULL_APP_KEY
Optional, secret
Webull OpenAPI app key. Without it prices fall back to Yahoo and the account and order tools are unavailable; everything else still works.
WEBULL_APP_SECRET
Optional, secret
Webull OpenAPI app secret. Signs every request; the app key alone cannot authenticate.
WEBULL_REGION_ID
Optional
Webull region: us, hk, jp, sg, th, my, uk, au, eu, br, mx, za.
WEBULL_ENVIRONMENT
Optional
prod trades the real account. paper repoints the ENTIRE client at Webull's sandbox, quotes included, and needs separate sandbox credentials — production keys return 401 there.
FINANCE_BROKER
Optional
Which broker adapter the account and order tools use, and where prices come from: webull, saxo or ibkr. Only the tools the configured broker can serve are registered, so the tool list never advertises one that would refuse. Webull is the only adapter that has been run against a live account; saxo a…
SAXO_ACCESS_TOKEN
Optional, secret
Only for FINANCE_BROKER=saxo. A 24-hour simulation token comes from Saxo's Developer Portal with no approval process and no live money; live access needs the OAuth2 code flow. UNVERIFIED ADAPTER.
SAXO_ENVIRONMENT
Optional
sim or live. Selects Saxo's simulation gateway or the live one.
IBKR_BASE_URL
Optional
Only for FINANCE_BROKER=ibkr. This is the Client Portal Web API, not the TWS socket API: run IBKR's Client Portal Gateway and log in at https://localhost:5000 in a browser first. A paper account works and is the better choice. UNVERIFIED ADAPTER.
IBKR_TLS_INSECURE
Optional
Set to 1 to accept the Client Portal Gateway's self-signed certificate unverified, or point IBKR_CACERT at it instead. This is a decision about the connection carrying your orders, so it is never made for you.
SEC_USER_AGENT
Optional
A descriptive User-Agent with a real contact address, e.g. 'Jane Doe ([email protected])'. The SEC's fair-access policy requires it and the filings tools refuse to send requests without one rather than risk an IP ban.
BLS_API_KEY
Optional, secret
Optional. BLS allows 25 macro queries a day without a key; a free key raises it to 500 and extends history from 10 to 20 years.

Details

Package[email protected] (PYPI, stdio)
First published6 Nov 2026
Last updated6 Nov 2026
Registry nameio.github.Blahaj-gif/hitl-finance-mcp

More finance and crypto servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.