Skip to main content
Glama
ThaiTrevor

gold-mcp

by ThaiTrevor

gold-mcp

License: MIT Python 3.10+ Version MCP CI PRs welcome

An MCP server that brings public gold (XAUUSD) market data into Claude, ChatGPT, Cursor, Windsurf, Cline, Zed, and any other Model Context Protocol client.

Free tier (13 tools + optional 8-tool MT5 BYOK adapter) is fully functional and stays free forever. Pro, Premium, and Ultra tiers add advanced TA, backtest, SMC suite, risk management, and AI analyst via an offline Ed25519 license key — no SaaS, no phone-home.

Educational and research use only — not financial advice.

Tiers

Tier

Tools

License

Suggested price

Free

13 (+8 optional MT5 BYOK)

None

$0

Pro

+7 (20 total)

GOLD_MCP_LICENSE_KEY env

$9-19/mo

Premium

+4 (24 total)

GOLD_MCP_LICENSE_KEY env

$29-49/mo

Ultra

+18 (42 total, 50 with MT5 BYOK)

GOLD_MCP_LICENSE_KEY env

$99-149/mo

Free — public gold data + realtime PAXG + MT5 BYOK (13 + 8 tools)

Public gold data (Yahoo Finance):

  • get_gold_price — latest gold close + 24h change

  • get_gold_ohlcv — historical bars (1m → 1mo)

  • get_macro_context — DXY, US10Y/02Y, SPX, VIX, BTC, silver, oil

  • get_gold_correlations — gold-vs-macro correlation matrix

  • get_gold_seasonality — day-of-week / monthly return stats

  • get_vn_macro — USD/VND + implied world-parity gold price in VND

  • estimate_vn_gold_premium — compare local VN quote to world parity

  • gold_market_snapshot — one-call aggregator + bulleted summary

  • diagnostic — show license tier + available tools

  • cache_purge — sweep expired cache entries

Realtime PAXG via Binance public WebSocket (NEW v4.1, no API key):

  • paxg_worker_status — WS worker health + tick count

  • get_paxg_tick — last PAXG tick (tracks XAU/USD within 0.1-0.3%)

  • get_paxg_ohlcv_realtime — aggregated PAXG bars from local tick log

MT5 BYOK adapter (NEW v4.1, optional via pip install 'gold-mcp[mt5]', Windows):

  • mt5_attach / mt5_detach / mt5_status — manage attached terminal

  • mt5_find_symbol — broker-specific XAUUSD symbol resolution

  • mt5_get_tick / mt5_get_ohlcv / mt5_get_ticks — read from your terminal

  • mt5_account_info — balance / equity / leverage

  • No credentials cross the server. You run your own MT5 terminal.

Pro — advanced TA + multi-timeframe + alerts

  • analyze_gold_advanced — Bollinger + Ichimoku + Fibonacci

  • multi_timeframe_snapshot — 5m / 1h / 4h / 1d in one call

  • gold_correlation_regime — detects DXY decoupling, etc.

  • get_gold_setups — multi-indicator confluence scanner

  • create_gold_alert / list_gold_alerts / delete_gold_alert

Premium — backtest + research

  • backtest_gold_strategy — 4 strategies, vectorized

  • gold_walk_forward — rolling out-of-sample validation

  • optimize_gold_strategy — grid search by Sharpe / PF / return

  • gold_intraday_seasonality — hourly / session bucketing

Ultra — institutional analyst toolkit (18 exclusive tools)

Smart Money Concepts (SMC)

  • smc_full_scan — composite SMC bias (structure + OB + FVG + sweeps)

  • detect_order_blocks — bullish/bearish OB with impulse ATR filtering

  • detect_fair_value_gaps — 3-candle imbalances + fill tracking

  • detect_liquidity_sweeps — stop-hunt detection (breach + reverse)

  • detect_market_structure — CHOCH/BOS labeling on swing fractals

Regime + Multi-Timeframe

  • classify_regime — composite Hurst exponent + Lo-MacKinlay variance ratio

  • mtf_alignment — D1/H4/H1 confluence with alignment score 0-100

Position sizing + risk

  • kelly_fraction — half-Kelly default for safety

  • fixed_fractional_size — classic R% sizing

  • optimal_f — Ralph Vince geometric-mean-maximizing f

  • risk_of_ruin — Monte Carlo ruin probability

Monte Carlo + VaR

  • monte_carlo_paths — bootstrap or parametric path simulation

  • value_at_risk — historical VaR + Conditional VaR

  • prob_hit_target_or_stop — MC trade probability with EV in R-multiples

AI Analyst (BYOK Anthropic)

  • ai_daily_briefing — structured JSON read from Claude Sonnet 4.6

  • ai_setup_explanation — cheaper Haiku 4.5 plain-English read

Report generation

  • generate_html_tearsheet — polished standalone HTML report

  • generate_markdown_briefing — portable Markdown daily summary

Related MCP server: tradingview-mcp

Quickstart

1. Install

git clone https://github.com/ThaiTrevor/gold-mcp.git
cd gold-mcp
pip install -e .

Python 3.10+. No other setup, no env vars, no data files.

2. Wire it into your MCP client

Claude Desktop

Edit %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "gold-mcp": {
      "command": "python",
      "args": ["-m", "gold_mcp.server"]
    }
  }
}

Restart Claude Desktop. The tools appear under the plug icon.

Claude Code (CLI)

claude mcp add --scope user gold-mcp -- python -m gold_mcp.server

Cursor / Windsurf / Cline / Continue / Zed

~/.cursor/mcp.json (or the equivalent file for your client):

{
  "mcpServers": {
    "gold-mcp": {
      "command": "python",
      "args": ["-m", "gold_mcp.server"]
    }
  }
}

ChatGPT Desktop / Agent mode

Settings → Connectors → Add MCP server:

Command: python
Args:    -m gold_mcp.server

3. Try it

Ask the model in plain English. Examples:

"What is gold doing right now and how does it compare to today's macro tape (DXY, yields, VIX)?"

"Show me the last 24 hourly bars of gold and the 60-day correlation with silver and DXY."

"Give me a market snapshot for gold — combine price, macro context, correlations, and the day-of-week seasonality."

"USD/VND right now and the implied world-parity gold price in VND per tael. If SJC is quoting 145 million, what's the premium?"

Why this exists

LLMs reason well about gold but they don't see live market data, the macro tape that moves gold, or a clean correlation matrix on demand. This server is a tiny, free bridge between an MCP client and the public Yahoo Finance data that any researcher already has access to — exposed as well-typed tools so the model picks the right one automatically.

It started as a study project to learn MCP architecture and turned into something useful enough to publish for the community.

Upgrading to Pro / Premium

Add GOLD_MCP_LICENSE_KEY to the env block of your MCP config:

"env": {
  "GOLD_MCP_LICENSE_KEY": "eyJ0aWVy...Ijoi.MEUCI..."
}

Restart your MCP client. Call diagnostictier_active should report pro or premium. New tools become available immediately.

See examples/claude_desktop_config_pro.json for the full template.

Architecture

gold_mcp/
  server.py            FastMCP wiring with 3-tier gating (21 tools max)
  gold_data.py         yfinance price + OHLCV
  macro_data.py        DXY/yields/SPX/VIX/BTC + correlations
  analytics.py         seasonality
  analyst.py           one-call aggregator (gold_market_snapshot)
  cache.py             TTL filesystem cache (60s → 24h)
  license.py           Ed25519 offline license verification
  issue_license.py     CLI: init-keys, issue, verify
  pro_tools.py         Pro tier: advanced TA, alerts, multi-timeframe
  premium_tools.py     Premium tier: backtest, walk-forward, optimizer
  adapters/
    vn_macro.py        USD/VND + world-parity gold

For vendors selling licenses, see the CLI:

python -m gold_mcp.issue_license init-keys
# Paste printed PUBLIC_KEY_B64 into gold_mcp/license.py

python -m gold_mcp.issue_license issue --tier pro --email u@x.com --days 30

Or run the Lemon Squeezy webhook handler (port from mcp-byok-template — swap the env-var name from MCP_BYOK_LICENSE_KEY to GOLD_MCP_LICENSE_KEY).

Contributing

This project is small on purpose. We welcome contributions that fit the same pattern:

  • Small, focused tools that wrap one public data source

  • Return structured JSON with named keys + a short interpretation field

  • No private data, no scraped credentials, no broker-specific paths

  • No tools that produce trading recommendations

See CONTRIBUTING.md for details and SECURITY.md for how to report security issues.

Testing

pip install -e ".[dev]"
pytest

CI runs the suite on Linux, macOS, and Windows across Python 3.10/3.11/3.12 on every push and pull request.

Disclaimer

gold-mcp is a data and analysis tool for educational and research purposes only. Nothing returned by any tool constitutes investment advice, a recommendation, or a solicitation. Markets carry risk; you are responsible for your own decisions.

License

MIT — see LICENSE.

Available Tools

13 tools
cache_purgeB

Sweep expired entries from the on-disk cache.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only says 'sweep expired entries' without disclosing the destructive nature, irreversibility, or potential side effects on the cache. With no annotations available, the description carries the full burden and fails to convey that this is a mutation operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that immediately states the action and target. It is front-loaded and contains no redundant or vague wording, earning a perfect conciseness score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters), the description states the core purpose. However, it lacks critical context about operational impact (e.g., that it permanently removes data, whether it blocks, or if it's part of routine maintenance), leaving the description incomplete for safe invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema coverage is trivially 100%. The description correctly does not need to explain parameters, and the baseline of 4 applies due to the absence of parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('sweep') and resource ('on-disk cache') to clearly state the tool's function. It unambiguously distinguishes this from sibling data-retrieval tools like get_gold_price and gold_market_snapshot.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool or when to avoid it. The description does not mention alternatives, prerequisites, or typical scenarios, leaving the agent to infer usage solely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diagnosticA

Show server license tier and available tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'Show' implies a read-only, non-mutating operation, which is reasonably transparent. However, it doesn't explicitly state safety characteristics, auth requirements, or side effects, leaving some uncertainty for safety-critical agents.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence of eight words, front-loaded with the action. No wasted words or redundant details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter diagnostic tool with no output schema, the description adequately states the output contents. It could optionally mention the response format or that it's safe to call, but given the simplicity, it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the schema already covers everything. The baseline for 0-param tools is 4, and the description adds no unnecessary param information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Show') and identifies two concrete resources: server license tier and available tools. This clearly distinguishes it from sibling tools focused on gold data and cache/paxg management.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies clear usage context: use when you need server diagnostic information. No sibling serves this purpose, so the context is clear. However, it doesn't explicitly state when not to use it or mention alternatives, lacking an exclusion clause.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

estimate_vn_gold_premiumC

Compare a user-supplied local VN gold price to world parity.

ParametersJSON Schema
NameRequiredDescriptionDefault
local_price_vnd_per_taelYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral traits. It only says 'compare' and gives no details on how world parity is obtained, whether live data is fetched, what the output format is, or whether there are side effects. This is a significant transparency gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that communicates the core idea efficiently. It is appropriately sized for a tool with one parameter, though it lacks any structural elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, but the description omits essential context: what 'world parity' means, how the premium is calculated, and what output the agent should expect. With no output schema and no annotations, this under-specification makes it difficult to invoke the tool confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the parameter. It vaguely refers to a 'user-supplied local VN gold price' but does not explain the required unit (VND per tael) or format. The parameter name carries the meaning, but the description adds little beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: comparing a user-supplied local VN gold price to world parity. The verb 'compare' and the specific resource ('local VN gold price' vs 'world parity') distinguish it from siblings like get_gold_price which simply fetch prices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention exclusions or name other tools that might be more appropriate, leaving the agent to infer usage context from the description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_gold_correlationsC

Correlation of gold daily returns vs the macro basket.

ParametersJSON Schema
NameRequiredDescriptionDefault
lookback_daysNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry full behavioral disclosure. It only states what is being correlated; it does not explain the macro basket composition, computation method, output format, lookback behavior, or whether this is a safe read-only operation. This is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no filler. It is front-loaded and communicates the core purpose efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no annotations, and only one line of prose, the description leaves major unanswered questions: what exactly is in the 'macro basket', what does the returned correlation look like, and how does the lookback affect results. The tool is too under-specified for reliable autonomous use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one parameter, lookback_days, with 0% schema description coverage and no mention in the description. While the parameter name implies a time window, the description fails to clarify the unit (trading vs calendar days), any allowed range, or the default behavior beyond the schema default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's output as the correlation of gold daily returns versus a macro basket, which distinguishes it from siblings like get_gold_price, get_gold_ohlcv, and get_gold_seasonality. It lacks an explicit verb such as 'calculates' or 'returns', but the meaning is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives like get_macro_context or get_gold_price. There is no mention of exclusions, prerequisites, or scenarios where another tool would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_gold_ohlcvA

Historical OHLCV bars for gold from Yahoo Finance.

Args: timeframe: One of "1m", "5m", "15m", "30m", "1h", "4h", "1d", "1wk", "1mo". lookback: Number of most recent bars to return.

ParametersJSON Schema
NameRequiredDescriptionDefault
lookbackNo
timeframeNo1h

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. It adds the source (Yahoo Finance) and valid timeframes, which is useful. However, it does not disclose potential data delays, rate limits, or the exact return format, leaving some ambiguity for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: one opening sentence plus two argument explanations. Every word adds value, and it is well-structured with the core purpose front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-parameter tool with no output schema or annotations, the description is largely complete. It defines both parameters and the data source. The main gap is the lack of an explicit return structure, but the tool name and context make this reasonable to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0%, the description fully compensates by explicitly listing valid timeframes and explaining 'lookback' as the number of recent bars. This adds critical meaning beyond the schema's type/default information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as retrieving historical OHLCV bars for gold from Yahoo Finance. The verb 'get' with the specific resource 'gold OHLCV bars' is concise and distinguishes it from siblings like get_gold_price and get_paxg_ohlcv_realtime.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided. The description does not state when to use this tool versus alternatives such as get_gold_price for spot prices or get_paxg_ohlcv_realtime for real-time data. There is no mention of preferred contexts or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_gold_priceA

Latest gold (XAUUSD / GC=F) price and 24h change from Yahoo Finance.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the data source ('from Yahoo Finance') and clearly indicates a read-only price query. It does not mention delays, caching, or other behaviors, but for a simple parameterless fetch, this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single concise sentence that conveys all necessary information without redundancy. It is front-loaded and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple parameterless tool with no output schema, the description fully covers what the tool does and what it returns. No additional context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description does not need to explain any parameter semantics, as there are none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('get') with a clear resource ('gold price') and explicitly mentions the data scope ('Latest gold (XAUUSD / GC=F) price and 24h change'). This clearly distinguishes it from sibling tools like get_gold_ohlcv, which focus on historical data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for current price checks but does not explicitly state when to use it over alternatives like get_gold_ohlcv or get_macro_context. There is no explicit exclusion or alternative naming, so the guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_gold_seasonalityB

Historical seasonality stats for gold returns.

Args: group_by: "dow" (day of week) or "month". lookback_years: Years of history to include.

ParametersJSON Schema
NameRequiredDescriptionDefault
group_byNodow
lookback_yearsNo

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It implies a read-only operation via 'historical' but does not explicitly state that, nor does it mention side effects, permissions, rate limits, or output format. This lack of transparency is a gap for a tool that has no other metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with no filler text. The first sentence states the purpose, and the Args list efficiently covers the parameters. Every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is no output schema and no annotations, the description should explain what the tool returns and any relevant behavioral details. It only says 'historical seasonality stats' without describing the output structure, statistical measures, or any caveats. This is incomplete for a tool with two parameters and no other metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds the allowed values for group_by ('dow' or 'month'), which are not present in the schema's input properties. However, it merely restates lookback_years ('Years of history to include') without adding deeper meaning, and it does not explain how parameters affect the output.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Historical seasonality stats for gold returns.' It uses a specific resource (gold returns) and distinguishes itself from sibling tools like get_gold_price and get_gold_ohlcv, which address different data types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. The description does not mention use cases, exclusions, or alternative tools, leaving the agent without explicit context on appropriate invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_macro_contextB

Macro snapshot relevant to gold: DXY, US10Y/02Y, SPX, VIX, BTC, silver, oil.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden of behavioral disclosure. It only lists the asset names and says 'snapshot', but does not describe output format, data recency, whether values are real-time or delayed, or any other operational traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence that efficiently conveys the tool's content. Every word earns its place and there is no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lists the included macro indicators, which is useful for a zero-parameter tool. However, without an output schema or annotations, it lacks information about the returned data structure, time period, or precision, leaving some gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4 per the rubric. There is no parameter schema to explain, and the description is not expected to add parameter detail beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides a macro snapshot relevant to gold, listing specific instruments (DXY, US10Y/02Y, SPX, VIX, BTC, silver, oil). It is specific and not a tautology, though it does not explicitly differentiate from sibling tools like get_gold_price or get_vn_macro.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives, nor any exclusions or context. The phrase 'relevant to gold' implies a high-level macro context role, but there is no explicit recommendation or comparison with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_paxg_ohlcv_realtimeA

Build OHLCV bars from PAXG tick stream on the fly.

Args: seconds_per_bar: Bar size in seconds (1-300). 10 = 10-second bars. lookback_bars: How many most-recent bars to return (1-500).

ParametersJSON Schema
NameRequiredDescriptionDefault
lookback_barsNo
seconds_per_barNo

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses the on-the-fly aggregation behavior and parameter bounds, but omits the return format, how in-progress bars are handled, and any streaming/latency caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One purpose sentence plus a compact argument list. Every line earns its place; the example is slightly redundant but harmless. The tool's purpose is stated first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool with no output schema, it covers purpose and both parameters adequately. However, it lacks usage-vs-alternative guidance and does not describe the return structure beyond the self-explanatory 'OHLCV bars'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description fully compensates: both parameters get units, valid ranges, semantics, and a clarifying example (10 = 10-second bars). This is exactly the compensation needed when the schema is bare.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Build') and identifies the resource precisely (OHLCV bars from the PAXG tick stream). It clearly distinguishes itself from siblings like get_gold_ohlcv (standard gold OHLCV) and get_paxg_tick (raw tick vs. aggregated bars).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied by 'tick stream on the fly,' suggesting real-time PAXG aggregation, but the description never explicitly states when to use this tool vs. alternatives or mentions exclusions. An explicit contrast with get_gold_ohlcv or get_paxg_tick would elevate this.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_paxg_tickB

Most recent PAXG trade — free real-time gold proxy via Binance.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description must explain behavior. It mentions the data source (Binance) and that it is a free real-time proxy, but it doesn't disclose potential delays, availability limitations, or what might happen if Binance is unreachable. The read-only nature is implied but not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that conveys the essential purpose without wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no parameters, the description should clarify what a 'trade' contains (e.g., price, volume, timestamp) or at least that it returns a price tick. It gives a general idea but lacks specifics for a tool that returns a data payload.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema confirms this with 100% coverage. The baseline for no parameters is 4, and the description adds no unnecessary parameter detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the most recent PAXG trade, a real-time gold proxy via Binance. It distinguishes itself from other gold-related tools by specifying the exact resource (PAXG) and the nature (latest trade), though it doesn't explicitly contrast with siblings like get_gold_price.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for real-time gold pricing but provides no guidance on when to choose this over alternatives such as get_gold_price or get_paxg_ohlcv_realtime. No when-to-use or when-not-to-use context is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_vn_macroB

USD/VND + cross rates + implied world-parity gold price in VND.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full burden of behavioral disclosure. It reveals the data categories but not whether this is a read-only market snapshot, how current the data is, whether it is computed/cached, or what units/formats are returned. The phrase 'implied world-parity' hints at calculation but lacks detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact fragment that conveys the essential content in under 90 characters. No filler or redundant detail. It is front-loaded and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless tool with no output schema, the description names the key return values, which is largely sufficient. However, it lacks an explicit statement of how the result is structured (e.g., object with keys for usd_vnd, cross_rates, gold_vnd) or any caveats, so it is not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. There is nothing to document, and the description does not introduce parameter confusion. It correctly implies a parameterless request.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly enumerates the tool's content: USD/VND rate, cross rates, and implied world-parity gold price in VND. Although it lacks an explicit verb, the name 'get_vn_macro' and the listed outputs make the purpose unambiguous. It differentiates from sibling tools like get_gold_price and get_macro_context by specifying VND-centric macro data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over siblings such as get_macro_context or estimate_vn_gold_premium. The description only states what the tool returns, leaving the agent to infer use cases. No exclusions or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gold_market_snapshotC

One-call structured snapshot of gold's current market state.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeframeNo1h

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as whether it is read-only, what return format is expected, or any side effects. The phrase 'structured snapshot' implies a read operation but is not explicit, and nothing about permissions or rate limits is mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words, but it is under-specified. It does not provide enough detail for an agent to understand the tool's full behavior, so it is not concise in the sense of earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one parameter, no annotations, and no output schema, the description carries the full burden of explaining what the snapshot includes and how to use it. It fails to describe the return structure or the effect of the timeframe parameter, making it insufficient for reliable tool selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has a single 'timeframe' parameter with a default of '1h' but no description. Since schema coverage is 0%, the description should explain the parameter, but it does not mention timeframe at all, leaving the agent without guidance on valid values or how it affects the snapshot.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says 'One-call structured snapshot of gold's current market state,' but it does not specify what data the snapshot contains (price, OHLC, correlations, etc.). It provides a general sense of 'market state' but lacks specificity to fully distinguish it from sibling tools like get_gold_price or get_gold_ohlcv.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus sibling tools. There is no mention of scenarios where this snapshot is preferred, nor any exclusions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

paxg_worker_statusA

Health of the local PAXG tick-capture worker.

Returns alive=true if the last tick is fresher than 30 seconds. If alive=false with reason=db_missing or no_heartbeat, start the worker: python -m gold_mcp.realtime.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the exact threshold (30 seconds), the possible reasons for false status (db_missing, no_heartbeat), and the recommended remediation command. This is rich behavioral detail for a health-check tool, making the tool's behavior fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, stating the purpose in the first line, then providing result details and an actionable command in two sentences. Every sentence adds value with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, so the description must explain what returns look like. It does so clearly: alive=true/false with reasons, and a follow-up action. For a simple health-check tool, this is complete and self-contained, covering all necessary context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so schema coverage is trivially 100%. The description adds no parameter-specific information, but none is needed. With 0 params, the baseline is 4, and the description instead explains the output semantics, which is the relevant information for the user.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as a health check for the local PAXG tick-capture worker, with a specific behavior: returning alive=true if the last tick is fresher than 30 seconds. This distinguishes it from sibling tools like get_paxg_tick or diagnostic, as it focuses on worker status rather than data retrieval or general diagnostics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear conditions for action: if alive=false with reason=db_missing or no_heartbeat, start the worker with a specific command. This gives explicit guidance on when to use the result, though it doesn't explicitly mention alternative tools or when not to use this tool. The conditional action effectively conveys usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 13 tool updatesv4.1.2
    • First observedcache_purge
    • First observeddiagnostic
    • First observedestimate_vn_gold_premium
    • First observedget_gold_correlations
    • First observedget_gold_ohlcv
    • First observedget_gold_price
    • First observedget_gold_seasonality
    • First observedget_macro_context
    • First observedget_paxg_ohlcv_realtime
    • First observedget_paxg_tick
    • First observedget_vn_macro
    • First observedgold_market_snapshot
    • First observedpaxg_worker_status

TDQS

B3.4/5.0

Scored across 13 tools

Disambiguation5/5

Each tool targets a distinct data type or action: spot price, OHLCV, macro snapshot, correlations, seasonality, VND, premium estimation, composite snapshot, cache management, worker health, and PAXG real-time. No two tools serve the same purpose.

Naming Consistency3/5

Most tools use a 'get_' prefix (get_gold_price, get_gold_ohlcv, get_macro_context, etc.), but there are exceptions like 'diagnostic', 'gold_market_snapshot', 'cache_purge', and 'paxg_worker_status' that break the pattern, with 'cache_purge' using a reversed verb-noun structure.

Tool Count5/5

13 tools cover the domain of gold market data, macro context, VN-specific analysis, PAXG real-time, and system administration, each with a distinct purpose. This is a well-scoped set within the recommended 3-15 range.

Completeness4/5

The server covers core gold data (price, OHLCV), analysis (correlations, seasonality), macro context, VN premium calculations, and real-time PAXG proxy, making it fairly comprehensive. Minor gaps include lack of multi-currency support or historical real-time data, but these are not critical for the stated purpose.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Free MCP server for real-time cryptocurrency data. Get token prices, market overview, top movers, historical charts, and detailed token info directly in Claude Code, Cursor, or any MCP-compatible AI tool. Powered by CoinGecko with 70+ token mappings and built-in caching.
    5
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    The most complete AI-powered trading toolkit for Claude and MCP clients, offering backtesting, live sentiment, Yahoo Finance, and 30+ technical analysis tools in one MCP server.
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    A local MCP server that gives Claude and other MCP clients access to Federal Reserve Economic Data (FRED) — 800,000+ economic time series covering GDP, inflation, employment, interest rates, and more.
    3
    2
    -
  • A
    license
    B
    quality
    D
    maintenance
    MCP server that exposes QuantXData's institutional crypto market data APIs to AI assistants, enabling natural language queries for trades, order books, OHLCV, options, and more across 120+ exchanges.
    12
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ThaiTrevor/gold-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server