Skip to main content
Glama
mDemarco12

bull-milker-mcp

by mDemarco12

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ENABLE_PROD_EXECUTIONNoSet to 'true' to allow real-money orders (requires ENABLE_TRADE_EXECUTION=true).false
MOOMOO_TRADE_PASSWORDNoLegacy plaintext trading password. Used only if the encrypted vault is not set up.
TAX_AUDIT_ENABLE_LIVENoSet to 'true' to enable live tax reporting tools (off by default).false
ENABLE_TRADE_EXECUTIONNoSet to 'true' to enable order placement tools (off by default).false
BULL_MILKER_VAULT_PASSPHRASENoMaster passphrase for the encrypted credential vault. Used to unlock the vault when placing orders.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
check_healthA

Check whether moomoo OpenD is reachable and logged in. Read-only — cannot place, modify, or cancel orders.

get_market_snapshotA

Get current price, volume, % change, and other live data for one or more stock codes (e.g. 'US.AAPL', 'US.TSLA'). Read-only — cannot place, modify, or cancel orders.

get_account_positionsA

Get current positions in the connected moomoo account. Read-only — cannot place, modify, or cancel orders. Does not by itself confirm whether the connected account is paper or live; cross-check with check_health if that matters for the current task.

get_portfolio_sector_exposureA

Compute sector/symbol concentration for the current portfolio. Returns total market value, breakdown by sector and symbol, and a list of concentration_flags for any position exceeding a 25% threshold. This is a deterministic calculation, not a model estimate. Read-only.

run_bull_milker_screenerA

Run the Bull Milker screener: turnover ratio, volume, and % change filters. Defaults are turnover 2-10%, volume 500k-5M, change 1-8% — override any bound to widen or narrow the scan. market is 'US', 'HK', 'SH', or 'SZ'. Read-only — returns candidates for you to evaluate, never places any order.

run_bull_milker_extended_screenerA

Bull Milker screener plus PE ratio filtering and short-interest enrichment (short_sell_rate, short_available_volume) per result.

Each result includes an institutional_pct field that is always None — moomoo's public OpenAPI does not expose institutional ownership data. Treat None as "unknown, not available," never as "0%." Read-only — returns candidates for you to evaluate, never places any order.

get_quarterly_transaction_summary_toolA

Compiles filled trades into quarterly buckets labeled Q126, Q226, Q326, Q426, etc. (Q<2-digit year>). Each quarter includes trade count, buy/sell split, gross notional traded, and symbols traded. No cost-basis matching — for realized gains/losses use get_quarterly_tax_summary instead.

start/end are 'YYYY-MM-DD' strings. If start is omitted, moomoo's default lookback (~90 days) applies and older quarters will be incomplete — the response includes a '_lookback_warning' field in that case. Read-only, works on paper trading (defaults to SIMULATE).

get_quarterly_tax_summary_toolA

Realized capital gain/loss by quarter (Q126 format), split into short-term and long-term, using FIFO cost-basis matching against your LIVE trading account's deal history.

IMPORTANT — LIVE ACCOUNT, NOT TAX ADVICE:

  • Reads your real account's historical deals. Read-only — cannot place, modify, or cancel orders. Requires TAX_AUDIT_ENABLE_LIVE=true in the server's .env; if that's not set, this raises a clear error rather than silently failing or falling back to paper data.

  • Cost basis uses FIFO (IRS default absent another election). If your broker uses average-cost or specific-lot-ID, these figures won't match your official 1099-B exactly.

  • Does not account for wash sales, dividends, or corporate actions (splits/mergers) affecting cost basis.

  • Present any numbers from this tool as a planning estimate to reconcile against the broker's 1099-B, never as a final tax figure.

start/end are 'YYYY-MM-DD' strings — for a full tax year, pass an explicit start (e.g. start='2026-01-01'), since the ~90-day default lookback will otherwise silently miss earlier quarters.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.3/5.0

Scored across 8 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: health check, market snapshot, account positions, portfolio exposure, two screeners (basic vs extended), and two quarterly summaries (transactions vs tax). The screeners and summaries are differentiated by their specific scope and outputs, so an agent should have no trouble selecting the right tool.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern with lowercase and underscores (check_, get_, run_). However, the two quarterly summary tools end with '_tool', which breaks the pattern slightly, and the use of 'run_' for screeners versus 'get_' for others is a minor deviation. Overall, the naming is predictable and readable.

Tool Count5/5

With 8 tools, the server is well-scoped for its apparent purpose of trading analysis and portfolio monitoring. Each tool serves a distinct function without redundancy, and the count falls comfortably within the typical range for a focused MCP server.

Completeness4/5

The server covers the core workflows: health check, market data, position reading, portfolio concentration, screening (basic and advanced), and quarterly reporting. Minor gaps exist, such as no historical price data or individual order lookup, but these are not critical given the server's explicit read-only and analysis-oriented focus. The tax summary's caveats are well-documented, and the presence of both screeners adds flexibility.

Maintenance

ActivitySlowing
ResponsivenessNo issues