Search / io.github.Blahaj-gif/hitl-finance-mcp
Finance MCP
L0· runs locallyMarket data, SEC filings and risk tools for Webull, Saxo and IBKR. Only you can send an order.
v0.3.1 · active · repository · website · descriptor JSON · versions
Search / io.github.Blahaj-gif/hitl-finance-mcp
L0· runs locallyMarket data, SEC filings and risk tools for Webull, Saxo and IBKR. Only you can send an order.
v0.3.1 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"hitl-finance-mcp": {
"command": "uvx",
"args": [
"hitl-finance-mcp==0.3.1"
],
"env": {
"WEBULL_APP_KEY": "${WEBULL_APP_KEY}",
"WEBULL_APP_SECRET": "${WEBULL_APP_SECRET}",
"WEBULL_REGION_ID": "us",
"WEBULL_ENVIRONMENT": "prod",
"FINANCE_BROKER": "webull",
"SAXO_ACCESS_TOKEN": "${SAXO_ACCESS_TOKEN}",
"SAXO_ENVIRONMENT": "sim",
"IBKR_BASE_URL": "https://localhost:5000/v1/api",
"BLS_API_KEY": "${BLS_API_KEY}"
}
}
}
}claude mcp add hitl-finance-mcp -e "WEBULL_APP_KEY=${WEBULL_APP_KEY}" -e "WEBULL_APP_SECRET=${WEBULL_APP_SECRET}" -e "WEBULL_REGION_ID=us" -e "WEBULL_ENVIRONMENT=prod" -e "FINANCE_BROKER=webull" -e "SAXO_ACCESS_TOKEN=${SAXO_ACCESS_TOKEN}" -e "SAXO_ENVIRONMENT=sim" -e "IBKR_BASE_URL=https://localhost:5000/v1/api" -e "BLS_API_KEY=${BLS_API_KEY}" -- uvx hitl-finance-mcp==0.3.1[mcp_servers.hitl-finance-mcp]
command = "uvx"
args = ["hitl-finance-mcp==0.3.1"]
env = { "WEBULL_APP_KEY" = "${WEBULL_APP_KEY}", "WEBULL_APP_SECRET" = "${WEBULL_APP_SECRET}", "WEBULL_REGION_ID" = "us", "WEBULL_ENVIRONMENT" = "prod", "FINANCE_BROKER" = "webull", "SAXO_ACCESS_TOKEN" = "${SAXO_ACCESS_TOKEN}", "SAXO_ENVIRONMENT" = "sim", "IBKR_BASE_URL" = "https://localhost:5000/v1/api", "BLS_API_KEY" = "${BLS_API_KEY}" }
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"hitl-finance-mcp": {
"type": "local",
"command": [
"uvx",
"hitl-finance-mcp==0.3.1"
],
"enabled": true,
"environment": {
"WEBULL_APP_KEY": "{env:WEBULL_APP_KEY}",
"WEBULL_APP_SECRET": "{env:WEBULL_APP_SECRET}",
"WEBULL_REGION_ID": "us",
"WEBULL_ENVIRONMENT": "prod",
"FINANCE_BROKER": "webull",
"SAXO_ACCESS_TOKEN": "{env:SAXO_ACCESS_TOKEN}",
"SAXO_ENVIRONMENT": "sim",
"IBKR_BASE_URL": "https://localhost:5000/v1/api",
"BLS_API_KEY": "{env:BLS_API_KEY}"
}
}
}
}{
"mcpServers": {
"hitl-finance-mcp": {
"command": "uvx",
"args": [
"hitl-finance-mcp==0.3.1"
],
"env": {
"WEBULL_APP_KEY": "${WEBULL_APP_KEY}",
"WEBULL_APP_SECRET": "${WEBULL_APP_SECRET}",
"WEBULL_REGION_ID": "us",
"WEBULL_ENVIRONMENT": "prod",
"FINANCE_BROKER": "webull",
"SAXO_ACCESS_TOKEN": "${SAXO_ACCESS_TOKEN}",
"SAXO_ENVIRONMENT": "sim",
"IBKR_BASE_URL": "https://localhost:5000/v1/api",
"BLS_API_KEY": "${BLS_API_KEY}"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=hitl-finance-mcp&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyJoaXRsLWZpbmFuY2UtbWNwPT0wLjMuMSJdLCJlbnYiOnsiV0VCVUxMX0FQUF9LRVkiOiIke1dFQlVMTF9BUFBfS0VZfSIsIldFQlVMTF9BUFBfU0VDUkVUIjoiJHtXRUJVTExfQVBQX1NFQ1JFVH0iLCJXRUJVTExfUkVHSU9OX0lEIjoidXMiLCJXRUJVTExfRU5WSVJPTk1FTlQiOiJwcm9kIiwiRklOQU5DRV9CUk9LRVIiOiJ3ZWJ1bGwiLCJTQVhPX0FDQ0VTU19UT0tFTiI6IiR7U0FYT19BQ0NFU1NfVE9LRU59IiwiU0FYT19FTlZJUk9OTUVOVCI6InNpbSIsIklCS1JfQkFTRV9VUkwiOiJodHRwczovL2xvY2FsaG9zdDo1MDAwL3YxL2FwaSIsIkJMU19BUElfS0VZIjoiJHtCTFNfQVBJX0tFWX0ifX0%3D"
}{
"servers": {
"hitl-finance-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"hitl-finance-mcp==0.3.1"
],
"env": {
"WEBULL_APP_KEY": "${WEBULL_APP_KEY}",
"WEBULL_APP_SECRET": "${WEBULL_APP_SECRET}",
"WEBULL_REGION_ID": "us",
"WEBULL_ENVIRONMENT": "prod",
"FINANCE_BROKER": "webull",
"SAXO_ACCESS_TOKEN": "${SAXO_ACCESS_TOKEN}",
"SAXO_ENVIRONMENT": "sim",
"IBKR_BASE_URL": "https://localhost:5000/v1/api",
"BLS_API_KEY": "${BLS_API_KEY}"
}
}
}
}{
"mcpServers": {
"hitl-finance-mcp": {
"command": "uvx",
"args": [
"hitl-finance-mcp==0.3.1"
],
"env": {
"WEBULL_APP_KEY": "${WEBULL_APP_KEY}",
"WEBULL_APP_SECRET": "${WEBULL_APP_SECRET}",
"WEBULL_REGION_ID": "us",
"WEBULL_ENVIRONMENT": "prod",
"FINANCE_BROKER": "webull",
"SAXO_ACCESS_TOKEN": "${SAXO_ACCESS_TOKEN}",
"SAXO_ENVIRONMENT": "sim",
"IBKR_BASE_URL": "https://localhost:5000/v1/api",
"BLS_API_KEY": "${BLS_API_KEY}"
}
}
}
}extensions:
"hitl-finance-mcp":
enabled: true
name: "hitl-finance-mcp"
type: stdio
cmd: "uvx"
args:
- "hitl-finance-mcp==0.3.1"
envs:
"WEBULL_APP_KEY": "${WEBULL_APP_KEY}"
"WEBULL_APP_SECRET": "${WEBULL_APP_SECRET}"
"WEBULL_REGION_ID": "us"
"WEBULL_ENVIRONMENT": "prod"
"FINANCE_BROKER": "webull"
"SAXO_ACCESS_TOKEN": "${SAXO_ACCESS_TOKEN}"
"SAXO_ENVIRONMENT": "sim"
"IBKR_BASE_URL": "https://localhost:5000/v1/api"
"BLS_API_KEY": "${BLS_API_KEY}"
timeout: 300
Placeholders to fill from your own secret store: ${WEBULL_APP_KEY}, ${WEBULL_APP_SECRET}, ${SAXO_ACCESS_TOKEN}, ${BLS_API_KEY}. The registry never accepts secret values.
This is a local package: the command runs on your machine.
Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.
protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)auth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dumptool list unknown (behind auth, not probed, or empty)stability.changes, stability.rug_pulltool list unknowndeps.known_vulnsno known advisory in 93 resolved packagesdeps.mcp_sdk_versionmcp 2.2.0, no known advisorydeps.resolvable[email protected] resolved: 93 packagesNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +website ~liveness-unmeasured ~updated-69d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
[email protected] PyPI92 dependencies, resolved · MCP SDK mcp 2.2.0 · advisories checked 2026-10-20
No known advisory affects this dependency graph.
Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
hitl-finance-mcp | pypi | 0.3.1 | uvx | WEBULL_APP_KEY, WEBULL_APP_SECRET, SAXO_ACCESS_TOKEN, BLS_API_KEY |
No tools observed. Local packages are never executed by the registry.
Schemas: list_tools.
{
"name": "io.github.Blahaj-gif/hitl-finance-mcp",
"title": "Finance MCP",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"version": "0.3.1",
"packages": [
{
"version": "0.3.1",
"transport": {
"type": "stdio"
},
"identifier": "hitl-finance-mcp",
"runtimeHint": "uvx",
"registryType": "pypi",
"registryBaseUrl": "https://pypi.org",
"environmentVariables": [
{
"name": "WEBULL_APP_KEY",
"isSecret": true,
"description": "Webull OpenAPI app key. Without it prices fall back to Yahoo and the account and order tools are unavailable; everything else still works."
},
{
"name": "WEBULL_APP_SECRET",
"isSecret": true,
"description": "Webull OpenAPI app secret. Signs every request; the app key alone cannot authenticate."
},
{
"name": "WEBULL_REGION_ID",
"default": "us",
"description": "Webull region: us, hk, jp, sg, th, my, uk, au, eu, br, mx, za."
},
{
"name": "WEBULL_ENVIRONMENT",
"default": "prod",
"description": "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."
},
{
"name": "FINANCE_BROKER",
"default": "webull",
"description": "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 and ibkr are written from published documentation and say so in every result they produce."
},
{
"name": "SAXO_ACCESS_TOKEN",
"isSecret": true,
"description": "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."
},
{
"name": "SAXO_ENVIRONMENT",
"default": "sim",
"description": "sim or live. Selects Saxo's simulation gateway or the live one."
},
{
"name": "IBKR_BASE_URL",
"default": "https://localhost:5000/v1/api",
"description": "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."
},
{
"name": "IBKR_TLS_INSECURE",
"description": "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."
},
{
"name": "SEC_USER_AGENT",
"description": "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."
},
{
"name": "BLS_API_KEY",
"isSecret": true,
"description": "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."
}
]
}
],
"repository": {
"url": "https://github.com/Blahaj-gif/Finance-mcp",
"source": "github"
},
"websiteUrl": "https://github.com/Blahaj-gif/Finance-mcp",
"description": "Market data, SEC filings and risk tools for Webull, Saxo and IBKR. Only you can send an order."
}