Bullion Tracker MCP avatar

Bullion Tracker MCP

Pricing

from $5.00 / 1,000 add bullion items

Go to Apify Store
Bullion Tracker MCP

Bullion Tracker MCP

SQLite-backed bullion portfolio tracker with live spot price sync. Track gold, silver, platinum, palladium, and copper holdings. Calculates cost basis, unrealized gains, and portfolio performance.

Pricing

from $5.00 / 1,000 add bullion items

Rating

0.0

(0)

Developer

Brian Mowell

Brian Mowell

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

4 days ago

Last modified

Share

SQLite-backed bullion portfolio tracker with live spot price sync via yfinance.

Supported metals: Gold, Silver, Platinum, Palladium, Copper

Known products: American Eagle, Maple Leaf, Krugerrand, Buffalo, Philharmonic, Britannia, Panda


Tools

ToolDescriptionPPE
add_bullionAdd a holding to the portfolio$0.005
get_portfolioFull item list with live values$0.005
get_portfolio_summaryTotals grouped by metal$0.005
refresh_valuesSync all values to current spot prices$0.01
record_saleMark item sold, record realized gain$0.005
portfolio_performanceFull P&L: unrealized + realized gains$0.01
remove_bullionPermanently delete an item$0.005

Setup

No API keys required. Uses yfinance for spot prices (free).

Local Development

cd bullion-tracker
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python run_server.py

Server starts on http://localhost:4321/mcp

Optional: Custom DB path

export BULLION_DB_PATH="/path/to/bullion.db"
python run_server.py

Testing

from server import add_bullion, get_portfolio, get_portfolio_summary
# Add a 1 oz gold American Eagle
result = add_bullion(
user_id="user_123",
metal_type="gold",
weight_oz="1",
bullion_type="coin",
product_name="American Eagle",
purity=0.9167,
purchase_price=2050.00,
purchase_date="2024-01-15",
purchase_source="APMEX",
)
print(result)
# Add 10 oz silver bar
result = add_bullion(
user_id="user_123",
metal_type="silver",
weight_oz="10",
bullion_type="bar",
product_name="Generic Silver Bar",
purchase_price=280.00,
)
print(result)
# Add fractional gold
result = add_bullion(
user_id="user_123",
metal_type="gold",
weight_oz="1/4",
bullion_type="coin",
product_name="Maple Leaf",
purity=0.9999,
)
print(result)
# Get portfolio
portfolio = get_portfolio(user_id="user_123")
print(f"Total value: ${portfolio['total_value_usd']:,.2f}")
# Summary by metal
summary = get_portfolio_summary(user_id="user_123")
for metal in summary["summary"]:
print(f"{metal['metal_type'].title()}: {metal['total_oz']} oz = ${metal['total_value_usd']:,.2f}")

Deploy to Apify

rm -rf venv
apify push

Re-enable Actor Standby after push. No environment variables required.

Claude Desktop config

{
"mcpServers": {
"bullion-tracker": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://YOUR_USERNAME--bullion-tracker.apify.actor/mcp?token=YOUR_APIFY_TOKEN"]
}
}
}

PPE Pricing

EventPrice
add-bullion$0.005
portfolio-query$0.005
refresh-values$0.01
record-sale$0.005
portfolio-performance$0.01

80% revenue share on Apify.


Notes

  • Spot prices cached 1 hour via yfinance futures tickers
  • Fallback prices used if yfinance unavailable
  • SQLite stored at /tmp/bullion_tracker.db by default (Apify ephemeral storage)
  • user_id isolates portfolios — use a consistent ID per user
  • weight_oz accepts decimals ("0.5") and fractions ("1/4", "1/10")

License

MIT — Mowell Labs 2025