Skip to main content
Glama

AI Trading Signals

Server Details

Live AI-generated crypto trading signals for agents. Returns coin, direction and confidence with no API key at all; a free account adds full reasoning and verified outcomes, and Pro unlocks entry, stop-loss, take-profit and leverage plus 30-day history.

Ownership verified
Status
Healthy
Uptime
99.4% over 25 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation5/5

get_signal (single by ID), get_signals (live list), get_signal_history (resolved historical), and get_stats (aggregates) each target a clearly distinct resource and use case. The singular/plural pair is immediately clarified by 'by ID' vs 'live signals', and the deprecated register is explicitly non-functional.

Naming Consistency5/5

Four tools follow a consistent get_<noun> pattern (get_signal, get_signals, get_signal_history, get_stats). register is a different verb but represents an action, not a retrieval, so it fits the verb_noun convention without confusion.

Tool Count5/5

Five tools is well-scoped for a read-only trading signals API: live signals, single signal, history, stats, and a signup redirect. No tool feels redundant, and the deprecated register does not inflate the count.

Completeness4/5

The surface covers the core lifecycle (live signals, single signal detail, historical resolution, aggregate performance) and works without an API key. Minor gap: no explicit endpoint for retrieving a specific resolved/historical signal by ID, though get_signal may cover it.

Available Tools

5 tools
get_signalGet Signal DetailA
Read-only
Inspect

Get one signal by its ID — live or already resolved — with its reasoning, live price, PnL and verification outcome (status pending, success or failed; whether take-profit or stop-loss was hit). Use it to follow up a signal from get_signals or get_signal_history, or to see how a past signal ended. Needs an API key (free or Pro); on the free plan entry, stop-loss, take-profit and leverage are null. Returns { success, signal, plan }, or { error: 'Signal not found' } for an unknown ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
apiKeyNoAPI key — omit if your client was installed with it (X-Api-Key header or ?apiKey=). Required for this tool; get one free at https://signals.x70.ai/mcp-signup.
signalIdYesThe signal ID (the id field returned by get_signals or get_signal_history).

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, yet the description still adds real context: API-key requirement, the free-plan behavior where entry/stop-loss/take-profit/leverage come back null, and the not-found error path. It stops short of noting rate limits or pagination, but for a single-record read those are largely irrelevant.

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?

Front-loads the core action, then routes the agent to siblings, then states auth and plan caveats, then return shapes. Every sentence carries a distinct load and nothing is redundant with the schema.

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?

There is no output schema, so the description's explicit return contract ({ success, signal, plan } and the not-found error) is necessary and present. With annotations covering the safety profile and the schema covering params, an agent has everything needed to call and interpret this tool.

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?

Schema description coverage is 100% and both parameters (apiKey, signalId) are already documented in the schema, including the signup URL. The description adds little parameter-level detail beyond restating the ID lookup, so the baseline 3 applies.

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?

States a specific verb and resource ('Get one signal by its ID') and immediately scopes it to 'live or already resolved', which distinguishes it from get_signals (list) and get_signal_history. The enumerated contents (reasoning, live price, PnL, verification outcome) tell an agent exactly what a call yields.

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

Usage Guidelines5/5

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

Explicitly names the trigger ('use it to follow up a signal from get_signals or get_signal_history') and the second scenario ('see how a past signal ended'). The alternatives are named rather than left to inference, so selection between the three sibling read tools is unambiguous.

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

get_signal_historyGet Signal HistoryA
Read-only
Inspect

List signals that have already resolved (success or failed), newest first, each with its verification outcome. Use it to review past performance signal by signal; for open signals use get_signals, for one signal by ID get_signal, for totals get_stats. Needs an API key. History depth: last 24 hours on the free plan; on Pro the days argument (up to 90). Entry, stop-loss, take-profit and leverage are null on free. Paginate by passing the last signal ID as cursor. Returns { signals[], nextCursor, hasMore, historyDepthDays, plan }.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter by coin symbol (e.g. BTC, ETH). Case-insensitive.
daysNoLookback window in days
limitNoMax signals per page (default 10, max 100)
apiKeyNoAPI key — omit if your client was installed with it (X-Api-Key header or ?apiKey=). Required for this tool; get one free at https://signals.x70.ai/mcp-signup.
cursorNoPagination cursor (signal ID). Pass the last signal ID from previous page to get next page.
statusNoFilter by verification outcomeall

TDQS

A4.7/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnly, non-destructive). The description adds substantive context beyond them: API key requirement, plan-dependent history depth (24h free vs. days up to 90 on Pro), fields nulled on free, and cursor-based pagination. It does not disclose rate limits or ordering edge cases, so it falls short of a 5.

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?

Front-loaded with the purpose, followed by routing alternatives, then prerequisites and pagination. Every sentence carries distinct information; no 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?

Covers purpose, alternatives, auth, plan constraints, nulled fields, pagination mechanics, and the response shape (signals[], nextCursor, hasMore, historyDepthDays, plan) — notable because no output schema exists. Nothing an agent needs to invoke this correctly is missing.

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?

Schema coverage is 100%, so the baseline is 3. The description earns extra by explaining plan-dependent semantics for 'days' and the exact cursor convention (pass the last signal ID from the previous page), which the schema states more tersely.

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?

States a specific verb and resource ('List signals that have already resolved... newest first, each with its verification outcome'), and explicitly distinguishes itself from three siblings (get_signals, get_signal, get_stats). An agent can pick the correct tool without opening any schema.

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

Usage Guidelines5/5

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

Names the routing condition for each alternative: open signals -> get_signals, single signal by ID -> get_signal, totals -> get_stats. The 'already resolved' scope is stated up front, making the when-to-use unambiguous.

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

get_signalsGet Live Trading Signals
Read-only
Inspect

List live crypto trading signals that are still open — coin, direction, confidence and the reasoning behind each. Use it to find current trade ideas; use get_signal for one signal by ID (live or resolved), get_signal_history for signals that already closed, and get_stats for aggregate hit rate. No key: a 3-signal preview. Free key: up to 100 signals, with entry, stop-loss, take-profit and leverage null (the response's announcement.upgradeUrl explains Pro). Pro: all levels. Returns { signals[], returned, totalMatching, filtersApplied, plan }, sorted by live PnL (best first). Optional filters narrow the list: direction, coins, confidence band, risk/reward, stop distance, open interest, 24h volume, tags, the anomaly that triggered it, days/hours to skip, a BTC 24h-return gate. Rate limits: 30 calls/hour per IP without a key, 300/hour on a free key.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoSingle coin symbol (e.g. BTC). Case-insensitive. Convenience alias for coinInclude=<coin>.
daysNoLookback window in days (1–30, default 7). Without a key or on the free plan only the last 24 hours are searched.
limitNoMax signals to return (default 10, max 100)
apiKeyNoOptional. Your Signals API key. Omit it for a 3-signal anonymous preview; get a free key at https://signals.x70.ai/mcp-signup for full metadata.
skipDOWNoComma-separated day names to skip (e.g. "Saturday,Sunday"). Mondays toxic, weekends weak.
coinOiMaxNoMaximum open interest in USD. R13 uses $500k-$10M.
coinOiMinNoMinimum open interest in USD (e.g. 500000 for $500k). OI <$500k coins historically toxic.
directionNoFilter by signal direction. "bullish" = long. Default = any.
coinVolMinNoMinimum 24h notional volume in USD.
coinExcludeNoComma-separated coin blocklist. Hyper-blacklist used by Lean v2-R: "kPEPE,ADA,HYPER,LDO,LINEA,2Z".
coinIncludeNoComma-separated coin allowlist (e.g. "BTC,ETH,SOL").
skipHourUtcNoComma-separated hours UTC to skip (0..23). EU/US overlap 9-13 weakest.
tagsIncludeNoComma-separated tags (any-of match).
btcRet24hMaxNoSkip if BTC 24h return % > this (e.g. 1.5). H1 regime gate: BTC rally rotates flow away from alts.
btcRet24hMinNoSkip if BTC 24h return % < this.
slDistPctMaxNoMaximum stop-loss distance in %.
slDistPctMinNoMinimum stop-loss distance in % (e.g. 3 = ≥3% to SL). SL≥3 drops the toxic [2,3) bucket.
confidenceMaxNoMaximum confidence (0..1). Best band 0.62-0.76.
confidenceMinNoMinimum confidence (0..1). Counter-intuitive: >0.76 historically underperforms.
primaryTriggerNoSentinel anomaly trigger name (e.g. "vpin_toxicity" for the S9 Vpin Sniper preset).
riskRewardRatioMaxNoMaximum risk/reward ratio. Champion v1 uses RR<1.5.
riskRewardRatioMinNoMinimum risk/reward ratio.
get_statsGet Trading Performance StatsA
Read-only
Inspect

Aggregate performance of signals created in the last N days (default 30) that have since resolved: hit rate, verified count, average leverage and a breakdown by direction; with an API key also average ROI per signal and cumulative ROI. Use it to judge recent reliability before acting — it returns no individual signals (use get_signals or get_signal_history for those). Public: works without a key. Past results don't predict future results.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLookback window in days (1–90, default 30), counted back from now by signal creation time.
apiKeyNoOptional for this tool — aggregate stats are public. Get a free key at https://signals.x70.ai/mcp-signup.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/non-destructive, so the safety profile is covered. The description adds genuinely non-obvious context: the tool works without a key, an API key unlocks extra ROI metrics, and it returns aggregates rather than signals. It does not disclose pagination or latency, but for an aggregate read tool in a public API this is solid.

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?

Front-loaded with the core purpose, and every clause carries information (scope, metrics, key behavior, sibling routing, disclaimer). The opening sentence is long and dense with many sub-clauses, which slightly hurts scannability but wastes nothing.

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?

No output schema exists, and the description compensates by enumerating the returned metrics and clarifying that individual signals are not returned. Combined with the schema's default/range for days, an agent has everything needed to call and interpret the result.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema by explaining what the apiKey parameter actually unlocks (average ROI per signal and cumulative ROI) rather than just restating that it is optional.

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?

States a precise verb+resource (aggregate performance of resolved signals) and enumerates the metrics returned (hit rate, verified count, avg leverage, direction breakdown, ROI). It also explicitly distinguishes itself from siblings by noting it returns no individual signals.

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

Usage Guidelines5/5

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

Gives an explicit use case ('judge recent reliability before acting') and routes the agent to alternatives for the excluded behavior: 'use get_signals or get_signal_history for those'. When-to-use and when-not-to-use are both covered.

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

registerRegister for Trading Signals APIAInspect

Deprecated: returns a sign-up link instead of creating an API key, ignores its arguments and stores nothing. Don't call it to get access — every other tool works without a key (get_signals returns a 3-signal preview, get_stats is public). Users create keys at https://signals.x70.ai/mcp-signup and set them as the X-Api-Key header. Kept only so older clients don't break.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoIgnored — kept for backward compatibility
emailNoIgnored — kept for backward compatibility
purposeNoIgnored — kept for backward compatibility
githubUrlNoIgnored — kept for backward compatibility

TDQS

A4.9/5.0
Behavior5/5

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

Goes well beyond the annotations: the tool is a no-op that ignores arguments, stores nothing, and only returns a sign-up link, and no authentication is required anywhere. It also discloses the real key-acquisition workflow and header name, which the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false) cannot convey. The readOnlyHint=false flag nominally implies side effects while the description says nothing is stored, but readOnlyHint=false is the non-assertive default and the description correctly warns the agent away, so this is informative rather than misleading.

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?

Front-loaded with the single most decision-relevant word ('Deprecated') and then packs deprecation reason, actual behavior, routing to alternatives, and the correct auth path into four tight sentences. Nothing is redundant with the annotations, and no sentence could be dropped without losing a decision input.

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 zero-required-parameter, no-output-schema tool, the description covers everything an agent needs: current behavior, absence of side effects, whether a key is needed, where to get one, and which siblings to use instead. It even explains the return value (a sign-up link) in the absence of an output schema.

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?

Schema coverage is 100% and every property already says 'Ignored — kept for backward compatibility'. The description adds tool-level closure by stating that the tool 'ignores its arguments', so an agent knows no argument combination changes the outcome and none need be constructed; that is meaningful beyond the per-field notes, though no format or syntax detail is added.

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?

States exactly what the tool is ('Deprecated: returns a sign-up link instead of creating an API key, ignores its arguments and stores nothing'), which is a precise verb+resource+outcome statement. It also distinguishes itself from siblings by naming get_signals and get_stats as the tools that actually work without a key.

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

Usage Guidelines5/5

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

Explicit when-not-to-use ('Don't call it to get access') plus the correct alternative path (create keys at the signup URL and send them via the X-Api-Key header). It even explains why it still exists ('Kept only so older clients don't break'), so the agent knows the call is only warranted for legacy compatibility.

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.

  1. 4 tool updates
    • Changedget_signal2 fields changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"Required. Get a free key at https://signals.x70.ai/mcp-signup."New value: +"API key — omit if your client was installed with it (X-Api-Key header or ?apiKey=). Required for this tool; get one free at https://signals.x70.ai/mcp-signup."
      • changedInput schema / properties / signalId / description
        Previous value: -"Signal ID to look up"New value: +"The signal ID (the id field returned by get_signals or get_signal_history)."
    • Changedget_signal_history1 field changed
      • changedInput schema / properties / apiKey / description
        Previous value: -"Required. Get a free key at https://signals.x70.ai/mcp-signup."New value: +"API key — omit if your client was installed with it (X-Api-Key header or ?apiKey=). Required for this tool; get one free at https://signals.x70.ai/mcp-signup."
    • Changedget_signals1 field changed
      • changedInput schema / properties / days / description
        Previous value: -"Lookback window in days"New value: +"Lookback window in days (1–30, default 7). Without a key or on the free plan only the last 24 hours are searched."
    • Changedget_stats1 field changed
      • changedInput schema / properties / days / description
        Previous value: -"Lookback period in days"New value: +"Lookback window in days (1–90, default 30), counted back from now by signal creation time."
  2. 1 tool update
    • Changedregister6 fields changed
      • changedInput schema / properties / email / description
        Previous value: -"Email address"New value: +"Ignored — kept for backward compatibility"
      • changedInput schema / properties / githubUrl / description
        Previous value: -"GitHub profile URL (https://github.com/...)"New value: +"Ignored — kept for backward compatibility"
      • changedInput schema / properties / name / description
        Previous value: -"Your full name"New value: +"Ignored — kept for backward compatibility"
      • changedInput schema / properties / purpose / description
        Previous value: -"What you are building (min 10 chars)"New value: +"Ignored — kept for backward compatibility"
      • removedInput schema / properties / purpose / minLength
        Removed value: -10
      • removedInput schema / required
        Removed value: -[
        -  "name",
        -  "email",
        -  "githubUrl",
        -  "purpose"
        -]
  3. 5 tool updates
    • First observedget_signal
    • First observedget_signal_history
    • First observedget_signals
    • First observedget_stats
    • First observedregister

Publisher details

Operator
Signals (signals.x70.ai), operated by an individual based in Thailand · Publisher source
Vendor relationship
First-party
Trust center
Not available
Restrictions
https://signals.x70.ai/pricing

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    24 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources