Initial commit: ag-bids MCP server
Exposes live + historical ag-bids commodity data (from the ag-monitor service at agbids.paul.farm) as MCP tools, sitting behind MetaMCP at https://mcp.jpaul.io/metamcp/ag-bids/mcp. Pattern mirrors zerto-docs-rag with one addition: HTTP Basic auth in front of the streamable-HTTP transport so namespace guessers can't reach the tools. Stdio transport is unaffected (used by local Claude Desktop dev). Tools (markdown returns, ~15 LOC each): best_local_bid(commodity) — where to sell corn/soy/wheat today, for the current calendar month only current_lime_price() — latest lime quotes ($/ton) current_input_price(product?) — MAP / Potash / Lime latest_prices(...) — filtered snapshot price_history(...) — per-(source,delivery) trend list_sources / list_commodities / list_deliveries source_health() — healthy / stale / down buckets todays_summary() — same shape as morning brief snapshot Data path: ag-bids-mcp -> X-API-Key -> /api/data/* on ag-monitor (reuses BRIEF_API_KEY). Tests: 24 covering the httpx client, markdown formatters, HTTP Basic middleware (401/200), and JSONL usage logging. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# --- MCP transport ---
|
||||
# stdio for local Claude Desktop dev, streamable-http for the deployed container.
|
||||
MCP_TRANSPORT=streamable-http
|
||||
MCP_HOST=0.0.0.0
|
||||
MCP_PORT=8000
|
||||
|
||||
# --- Upstream: ag-monitor (where the data actually lives) ---
|
||||
# Reuse the same key ag-monitor already issues for /api/brief/* — both clients
|
||||
# are internal-trusted, so a separate key is unnecessary friction.
|
||||
AG_BIDS_API_URL=https://agbids.paul.farm
|
||||
AG_BIDS_API_KEY=
|
||||
AG_BIDS_API_TIMEOUT_SECS=20
|
||||
|
||||
# --- HTTP Basic auth (REQUIRED — server refuses to start without both) ---
|
||||
# These guard the MCP itself. MetaMCP injects them on every upstream call.
|
||||
AG_BIDS_MCP_USER=
|
||||
AG_BIDS_MCP_PASS=
|
||||
|
||||
# --- Per-tool-call usage logging ---
|
||||
USAGE_LOG_DIR=/app/var/logs
|
||||
USAGE_LOG_KEEP_DAYS=90
|
||||
Reference in New Issue
Block a user