Koskamo

Finance MCP

An MCP server providing AI assistants with read access to brokerage accounts and market data via 38 tools covering Webull, Saxo, IBKR, Yahoo Finance, SEC EDGAR, and macro data. It enforces a human-in-the-loop model where the assistant can draft orders, but execution requires a user click in a Streamlit dashboard, ensuring no prompt can directly place trades.

Package and access

Local package with source-attributed installation metadata. Koskamo does not execute packages during review.

Finance MCP logo, by Blahaj-gifCommunity listingLocal stdioSource reviewed; not executedPublished by Blahaj-gif
You need:Use a read-scoped key where your broker offers one
Vendor documentation

Checks and signals

Each line is separate evidence, not a trust score.

  • Popularity 3 GitHub stars

What you can do with it

  • Retrieve real-time market data and indicators
  • Access SEC EDGAR filings and macroeconomic data
  • Draft trade orders for human review
  • Analyze risk and options math

Source and maintenance

Community listingRegistry 0.3.1MIT
Last repository push
Latest release
v0.3.1
Maintenance checked

Packages and installation

Source-provided package data. Koskamo has not executed or live-probed this package.

hitl-finance-mcp 0.3.1

pypiuvx
hitl-finance-mcp package definition
{
  "version": "0.3.1",
  "transport": "stdio",
  "identifier": "hitl-finance-mcp",
  "runtimeHint": "uvx",
  "registryType": "pypi",
  "registryBaseUrl": "https://pypi.org",
  "environmentVariables": [
    {
      "name": "WEBULL_APP_KEY",
      "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",
      "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",
      "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 (jane@example.com)'. 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",
      "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."
    }
  ]
}

Tools

Reported by the attributed source; not independently observed by Koskamo.

No tool definitions available.

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · repository · passed · metadata changed · updated
  • · backfill · recorded · Pre-expansion baseline; unobserved rich metadata remains unknown

Connect from your client

Each snippet configures the same source-provided package; replace placeholders before use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Cursor

Merge this local stdio configuration, replace every placeholder environment value, and restart Cursor. Koskamo has not executed this package.
Cursor configuration
{
  "mcpServers": {
    "finance-mcp": {
      "command": "uvx",
      "args": [
        "hitl-finance-mcp==0.3.1"
      ],
      "env": {
        "WEBULL_APP_KEY": "<YOUR_WEBULL_APP_KEY>",
        "WEBULL_APP_SECRET": "<YOUR_WEBULL_APP_SECRET>",
        "WEBULL_REGION_ID": "<YOUR_WEBULL_REGION_ID>",
        "WEBULL_ENVIRONMENT": "<YOUR_WEBULL_ENVIRONMENT>",
        "FINANCE_BROKER": "<YOUR_FINANCE_BROKER>",
        "SAXO_ACCESS_TOKEN": "<YOUR_SAXO_ACCESS_TOKEN>",
        "SAXO_ENVIRONMENT": "<YOUR_SAXO_ENVIRONMENT>",
        "IBKR_BASE_URL": "<YOUR_IBKR_BASE_URL>",
        "IBKR_TLS_INSECURE": "<YOUR_IBKR_TLS_INSECURE>",
        "SEC_USER_AGENT": "<YOUR_SEC_USER_AGENT>",
        "BLS_API_KEY": "<YOUR_BLS_API_KEY>"
      }
    }
  }
}

Cline

Merge this local stdio configuration, replace every placeholder environment value, and restart Cline. Koskamo has not executed this package.
Cline configuration
{
  "mcpServers": {
    "finance-mcp": {
      "command": "uvx",
      "args": [
        "hitl-finance-mcp==0.3.1"
      ],
      "env": {
        "WEBULL_APP_KEY": "<YOUR_WEBULL_APP_KEY>",
        "WEBULL_APP_SECRET": "<YOUR_WEBULL_APP_SECRET>",
        "WEBULL_REGION_ID": "<YOUR_WEBULL_REGION_ID>",
        "WEBULL_ENVIRONMENT": "<YOUR_WEBULL_ENVIRONMENT>",
        "FINANCE_BROKER": "<YOUR_FINANCE_BROKER>",
        "SAXO_ACCESS_TOKEN": "<YOUR_SAXO_ACCESS_TOKEN>",
        "SAXO_ENVIRONMENT": "<YOUR_SAXO_ENVIRONMENT>",
        "IBKR_BASE_URL": "<YOUR_IBKR_BASE_URL>",
        "IBKR_TLS_INSECURE": "<YOUR_IBKR_TLS_INSECURE>",
        "SEC_USER_AGENT": "<YOUR_SEC_USER_AGENT>",
        "BLS_API_KEY": "<YOUR_BLS_API_KEY>"
      }
    }
  }
}

VS Code

Merge this local stdio configuration, replace every placeholder environment value, and restart VS Code. Koskamo has not executed this package.
VS Code configuration
{
  "servers": {
    "finance-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "hitl-finance-mcp==0.3.1"
      ],
      "env": {
        "WEBULL_APP_KEY": "<YOUR_WEBULL_APP_KEY>",
        "WEBULL_APP_SECRET": "<YOUR_WEBULL_APP_SECRET>",
        "WEBULL_REGION_ID": "<YOUR_WEBULL_REGION_ID>",
        "WEBULL_ENVIRONMENT": "<YOUR_WEBULL_ENVIRONMENT>",
        "FINANCE_BROKER": "<YOUR_FINANCE_BROKER>",
        "SAXO_ACCESS_TOKEN": "<YOUR_SAXO_ACCESS_TOKEN>",
        "SAXO_ENVIRONMENT": "<YOUR_SAXO_ENVIRONMENT>",
        "IBKR_BASE_URL": "<YOUR_IBKR_BASE_URL>",
        "IBKR_TLS_INSECURE": "<YOUR_IBKR_TLS_INSECURE>",
        "SEC_USER_AGENT": "<YOUR_SEC_USER_AGENT>",
        "BLS_API_KEY": "<YOUR_BLS_API_KEY>"
      }
    }
  }
}

Claude Desktop

Merge this local stdio configuration, replace every placeholder environment value, and restart Claude Desktop. Koskamo has not executed this package.
Claude Desktop configuration
{
  "mcpServers": {
    "finance-mcp": {
      "command": "uvx",
      "args": [
        "hitl-finance-mcp==0.3.1"
      ],
      "env": {
        "WEBULL_APP_KEY": "<YOUR_WEBULL_APP_KEY>",
        "WEBULL_APP_SECRET": "<YOUR_WEBULL_APP_SECRET>",
        "WEBULL_REGION_ID": "<YOUR_WEBULL_REGION_ID>",
        "WEBULL_ENVIRONMENT": "<YOUR_WEBULL_ENVIRONMENT>",
        "FINANCE_BROKER": "<YOUR_FINANCE_BROKER>",
        "SAXO_ACCESS_TOKEN": "<YOUR_SAXO_ACCESS_TOKEN>",
        "SAXO_ENVIRONMENT": "<YOUR_SAXO_ENVIRONMENT>",
        "IBKR_BASE_URL": "<YOUR_IBKR_BASE_URL>",
        "IBKR_TLS_INSECURE": "<YOUR_IBKR_TLS_INSECURE>",
        "SEC_USER_AGENT": "<YOUR_SEC_USER_AGENT>",
        "BLS_API_KEY": "<YOUR_BLS_API_KEY>"
      }
    }
  }
}

Let your agent find its tools

Find servers like Finance MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.