Skip to main content
Glama
tickory

Tickory MCP Server

Official
by tickory

Tickory MCP Server

Real-time crypto scanner alerts, ad hoc scan execution, and TradingView relay routing, delivered straight to your AI agent.

Tickory monitors Binance Futures markets using programmable CEL rules and TradingView relay routing. This MCP server lets any agent framework create scans, run saved or ad hoc scans, configure relay sources and routes, inspect relay traces, read alert events, and understand why alerts triggered — all through the Model Context Protocol.

Tickory Server MCP server

Quick demo

You: "Create a scan that fires when RSI drops below 30 on any coin with volume over $100k"

Agent (via tickory_create_scan): Done — scan "Oversold Bounce" created.

You: "Run it now"

Agent (via tickory_run_scan): 3 matches found: ETHUSDT, SOLUSDT, DOGEUSDT.

You: "Why did ETH match?"

Agent (via tickory_explain_alert_event): RSI-14 was 24.7, below your threshold of 30.
  Volume gate passed: $487k USDT > $100k minimum. CEL expression evaluated true.

Related MCP server: horus-flow-mcp

Relay flow example

You: "Set up a TradingView relay to my Telegram"

Agent (via tickory_create_relay_source): Created source "Momentum Strategy".
  Webhook URL: https://api.tickory.app/api/webhooks/tradingview/src_123
  Payload template includes your source secret and TradingView placeholders.

Agent (via tickory_add_relay_route): Telegram relay route created.

You: "Why didn't my last webhook alert send?"

Agent (via tickory_list_relay_events): 1 recent event found for source src_123.
Agent (via tickory_get_relay_trace): Route route_123 failed downstream with timeout.
Agent (via tickory_replay_relay_event): Failed route queued for replay.

Install

npm / npx

npx @tickory/mcp

The npm package downloads the matching GitHub Release binary for macOS and Linux during install, so npx @tickory/mcp works without a separate build step.

Go install

go install github.com/tickory/tickory-mcp@latest

Pre-built binaries

Download from GitHub Releases for Linux and macOS (amd64/arm64).

Build from source

git clone https://github.com/tickory/tickory-mcp.git
cd tickory-mcp
go build -o tickory-mcp .

Setup

  1. Get a Tickory account at tickory.app

  2. Create a scoped API key in your dashboard under Settings > API Keys

  3. Configure the MCP server:

export TICKORY_API_BASE_URL=https://api.tickory.app
export TICKORY_API_KEY=tk_xxxxxxxx_yyyyyyyyyyyyyyyyyyyyyyyy

Relay workflows require API keys with both manage_routing and read_events. Saved-scan and ad hoc scan execution both require manage_scans.

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "tickory": {
      "command": "npx",
      "args": ["@tickory/mcp"],
      "env": {
        "TICKORY_API_BASE_URL": "https://api.tickory.app",
        "TICKORY_API_KEY": "tk_xxxxxxxx_yyyyyyyyyyyyyyyyyyyyyyyy"
      }
    }
  }
}

Claude Code

Add to your .mcp.json:

{
  "mcpServers": {
    "tickory": {
      "command": "npx",
      "args": ["@tickory/mcp"],
      "env": {
        "TICKORY_API_BASE_URL": "https://api.tickory.app",
        "TICKORY_API_KEY": "tk_xxxxxxxx_yyyyyyyyyyyyyyyyyyyyyyyy"
      }
    }
  }
}

Cursor / Windsurf / other MCP clients

Point either to npx @tickory/mcp or to the standalone tickory-mcp binary with the environment variables above. The server uses stdio (newline-delimited JSON-RPC 2.0).

Tools

Tool

Description

tickory_list_scans

List scans visible to the API key owner

tickory_get_scan

Fetch one scan by ID

tickory_create_scan

Create a new scan with CEL expression and hard gates

tickory_update_scan

Replace an existing scan definition

tickory_run_scan

Trigger a scan run immediately

tickory_run_ad_hoc_scan

Execute a one-off expression immediately without creating a saved scan

tickory_describe_indicators

Describe available CEL variables, recommended guards, and example expressions

tickory_list_alert_events

List alert events with cursor pagination

tickory_get_alert_event

Fetch one alert event by UUID

tickory_explain_alert_event

Explain why an alert triggered or was suppressed

tickory_create_relay_source

Create a TradingView relay source and return the paste-ready TradingView setup payload

tickory_list_relay_sources

List TradingView relay sources and direct-route summaries

tickory_add_relay_route

Add one direct relay route to telegram, webhook, discord, or email

tickory_list_relay_events

List recent inbound relay events for one TradingView source

tickory_get_relay_trace

Fetch the full lifecycle trace for one relay source event

tickory_replay_relay_event

Replay one failed relay route when the backend allows it

All tools return schema_version: "v1" for contract stability.

tickory_run_scan executes an existing saved scan by scan_id. tickory_run_ad_hoc_scan executes a one-off expression and does not create or update a saved scan, so the returned run payload may have an empty scan_id.

Configuration

Variable

Required

Default

Description

TICKORY_API_BASE_URL

Yes

Tickory API base URL

TICKORY_API_KEY

Yes

Scoped API key (tk_...)

TICKORY_TIMEOUT_SECONDS

No

15

HTTP timeout for API requests

CLI flags (--api-base-url, --api-key, --timeout) override environment variables.

Error handling

Upstream HTTP errors are mapped to deterministic MCP error codes:

HTTP Status

MCP Code

Retryable

400

invalid_request

No

401

unauthorized

No

403

forbidden

No

404

not_found

No

409

conflict

No

429

rate_limited

Yes

5xx

upstream_error

Yes

Scoped API key permissions

Scope

What it allows

read_events

Read alert events, relay traces, scan runs, activity

manage_scans

Create/read/update/delete scans, execute scans

manage_routing

Create/manage relay sources and routes

Create keys with the minimum scopes needed. See the developer docs for details.

Protocol versions

This server negotiates MCP protocol versions: 2024-11-05, 2025-03-26, 2025-06-18, 2025-11-05, and 2025-11-25.

License

MIT

Available Tools

18 tools
tickory_add_relay_routeB

Add one direct relay destination to a TradingView source for telegram, webhook, discord, or email delivery.

ParametersJSON Schema
NameRequiredDescriptionDefault
delivery_emailNoDestination email address. Required when destination_type=email.
destination_typeYesDirect destination type.
filter_expressionNoOptional CEL filter expression evaluated against the inbound payload.
source_idYesTradingView relay source identifier.
telegram_chat_idNoTelegram chat identifier. Required when destination_type=telegram.
webhook_urlNoDestination webhook URL. Required when destination_type=webhook or destination_type=discord.

Output Schema

ParametersJSON Schema
NameRequiredDescription
routeYes
schema_versionYesTickory MCP tool schema version.

TDQS

B3.1/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 shoulder the burden of behavioral disclosure. The description only says 'add' with no mention of side effects, idempotency, error behavior, or required permissions. An agent cannot infer whether this operation is destructive or safe.

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, efficient sentence with no redundant or extraneous information. Every word contributes to the core function.

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 that an output schema exists (context indicates true), return values need not be explained. The description covers the basic functionality, but fails to note conditional parameter dependencies (e.g., email required when destination_type=email) which are in the schema but not highlighted. Also, the existence of a source is implied but not clarified. Overall, adequate but with gaps.

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%, so each parameter is already described in the schema. The tool description does not add meaningful new context about parameters; it only briefly mentions delivery types which are already in the enum. Thus, the description adds minimal value beyond the schema, earning the baseline score of 3.

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 what the tool does: 'Add one direct relay destination to a TradingView source for telegram, webhook, discord, or email delivery.' It specifies the verb (add) and the resource (relay destination), and lists the supported delivery methods. However, it does not explicitly distinguish from the sibling tool 'tickory_create_relay_source' which creates a new source, but the purpose is still distinct enough.

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 alternatives, nor does it mention prerequisites (e.g., the source must exist) or scenarios. It lacks contextual pointers that would help an agent decide to invoke this tool.

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

tickory_create_relay_sourceA

Create a TradingView relay source and return the webhook URL, source secret, and TradingView-ready payload template.

ParametersJSON Schema
NameRequiredDescriptionDefault
is_activeNoOptional active flag. Defaults to true.
nameYesHuman-readable relay source name, usually one TradingView strategy or alert family.

Output Schema

ParametersJSON Schema
NameRequiredDescription
schema_versionYesTickory MCP tool schema version.
setupYes
sourceYes

TDQS

A3.6/5.0
Behavior2/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 only states the action and output but does not disclose any behavioral traits such as idempotency, required permissions, or side effects (e.g., whether it overwrites existing sources). This is minimal disclosure for a creation tool.

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, well-structured sentence that immediately conveys the action and outcome. No unnecessary words or redundancy.

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?

Given the tool's simplicity (2 params, output schema present), the description covers the main purpose and returns. However, it could be more complete by mentioning uniqueness constraints on the name or any prerequisites like existing TradingView configuration.

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?

Both parameters are fully described in the input schema (100% coverage). The description adds no extra context about the parameters beyond the schema, so the baseline score of 3 is appropriate.

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 creates a TradingView relay source and specifies the exact return values (webhook URL, secret, payload template). This distinguishes it from sibling tools like tickory_add_relay_route or tickory_create_scan.

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 usage for creating a relay source but does not explicitly provide when-to-use or when-not-to-use guidance. It lacks context on prerequisites or alternative tools, leaving the agent to infer from the name.

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

tickory_create_scanB

Create a new user-owned scan.

ParametersJSON Schema
NameRequiredDescriptionDefault
builder_configNoOptional visual builder state.
cel_expressionYesTickory CEL expression.
descriptionNoOptional scan description.
hard_gatesNo
nameYesHuman-readable scan name.
timeframeNoOptional timeframe. Defaults to 1m.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scanYes
schema_versionYesTickory MCP tool schema version.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are present, so the description must bear the full burden. It only states creation of a user-owned scan, but omits side effects, permission requirements, idempotency, or limits. Too minimal to be transparent.

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?

A single sentence is concise and front-loaded. It earns its place, though additional details could be included without harming conciseness.

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's complexity (6 parameters, nested objects, output schema) and absence of annotations, the description is too sparse. It does not explain scan lifecycle, ownership implications, or relationship to sibling tools.

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 coverage is high (100% with descriptions for all 6 parameters). The description does not add meaning beyond what the schema already provides, so a baseline of 3 is appropriate.

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 action 'Create' and the resource 'scan', and specifies ownership ('user-owned'). It effectively distinguishes from sibling tools like tickory_run_scan or tickory_update_scan.

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 versus alternatives such as tickory_run_scan or tickory_update_scan. The description lacks context about prerequisites or scenarios.

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

tickory_describe_indicatorsA

Describe the CEL variables, guards, ranges, and example expressions available for Tickory scan rules.

ParametersJSON Schema
NameRequiredDescriptionDefault
contract_typeNoOptional market filter. Defaults to perp so the full variable set is visible.

Output Schema

ParametersJSON Schema
NameRequiredDescription
categoriesYes
contract_typeYesRequested market filter.
examplesYes
notesYes
schema_versionYesTickory MCP tool schema version.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden of behavioral disclosure. It clearly indicates this is a read-only introspection tool with no side effects. It explicitly lists the types of entities described (variables, guards, ranges, examples), providing sufficient transparency.

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 sentence that conveys all necessary information without superfluous words. Every element (variables, guards, ranges, examples) earns its place.

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?

Given the presence of an output schema (indicated by context signals), the description need not detail return values. It covers the key types of described elements. However, it could optionally hint at the output structure or when to expect empty results, but the current level is sufficient.

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 schema covers the one parameter (contract_type) with enum and description. The tool's description adds meaningful context: 'Defaults to perp so the full variable set is visible.' This clarifies the default behavior and why the default is chosen, enriching the schema's 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 ('Describe') and resource ('CEL variables, guards, ranges, and example expressions available for Tickory scan rules'). It clearly differentiates from sibling tools like tickory_create_scan or tickory_run_scan, which focus on execution rather than metadata exploration.

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 usage context (before creating a scan rule), but it does not explicitly state when to use this tool versus alternatives. No when-not or exclusion criteria are provided, though the tool's self-documenting nature partially compensates.

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

tickory_explain_alert_eventB

Explain why an alert event triggered or was suppressed.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYesAlert event UUID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
alert_event_idYesAlert event UUID.
event_typeYesEvent type.
explanationYes
payload_versionYesUpstream explain payload version.
run_idNoOptional scan run identifier.
scan_idYesScan identifier.
schema_versionYesTickory MCP tool schema version.
symbolNoOptional symbol.
timeframeNoEvent timeframe.

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 carries full burden for behavioral traits. It only states the basic purpose, omitting whether it's read-only, requires permissions, or any side effects.

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?

Single, front-loaded sentence with no excess 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?

Given the tool's simplicity (one param, output schema exists), the description is minimally adequate but lacks usage context and behavioral details.

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 coverage is 100%, so baseline is 3. The tool description adds no extra meaning beyond the schema's parameter description ('Alert event UUID').

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 action ('explain why') and the resource ('alert event triggered or was suppressed'), distinguishing it from sibling tools like 'tickory_get_alert_event'.

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 on when to use this tool versus alternatives, nor when-not-to-use. The context from sibling names is implicit but not explicitly addressed.

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

tickory_get_alert_eventA

Fetch one alert event by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYesAlert event UUID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
eventYes
payload_versionYesUpstream alert event payload version.
schema_versionYesTickory MCP tool schema version.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states the basic fetch operation, lacking details on idempotency, error handling, permissions, or any side effects. This is minimal disclosure for a retrieval operation.

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 extremely concise with one sentence, no wasted words. However, it could be slightly more structured (e.g., listing parameters or behavior). Still, it is efficient and 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?

Given the tool's simplicity (single parameter, no nested objects, has output schema), the description is mostly complete. The presence of an output schema compensates for not describing return values. Slightly missing would be a note that it returns a single alert event object.

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?

With 100% schema description coverage (event_id described as 'Alert event UUID'), the baseline is 3. The description adds no additional meaning beyond the schema, so score remains at baseline.

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 specific verb 'Fetch' and resource 'alert event' with clear identifier 'by ID'. It effectively distinguishes from sibling tools like tickory_list_alert_events (lists multiple) and tickory_explain_alert_event (provides explanation).

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 usage when you have a specific event ID, but does not explicitly state when to use this tool versus alternatives like listing all events or explaining events. No exclusions or prerequisites are mentioned.

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

tickory_get_market_dataA

Get live price, indicators, and metadata for one or more symbols.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of symbols returned.
market_dataYes
schema_versionYesTickory MCP tool schema version.

TDQS

A3.7/5.0
Behavior3/5

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

The description implies a read operation via 'Get', but without annotations, it does not confirm read-only nature, rate limits, or auth needs. It adds minimal behavioral context beyond the verb.

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?

Single sentence with no wasted words. Front-loads the key action and resource.

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 an output schema present, return format explanation is unnecessary. However, the description lacks context on data source (exchange), latency, or prerequisites. Adequate for a simple tool but 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 description adds 'one or more' clarifying that the array parameter can accept multiple symbols. The schema's items description provides symbol examples, so the description complements but doesn't fully compensate for low schema coverage.

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 retrieves live price, indicators, and metadata for symbols. The verb 'Get' and resource 'market data' are specific, and it distinguishes from siblings like tickory_describe_indicators or tickory_list_symbols by focusing on live data retrieval.

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 on when to use this tool versus alternatives. Siblings exist for describing indicators or listing symbols, but the description does not explicitly state that this is for live market data or that other tools cover different aspects.

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

tickory_get_relay_traceA

Fetch the full lifecycle trace for one inbound TradingView relay event, including the stored payload and per-route outcomes.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_event_idYesRelay source event UUID.
source_idYesTradingView relay source identifier.

Output Schema

ParametersJSON Schema
NameRequiredDescription
eventYes
schema_versionYesTickory MCP tool schema version.

TDQS

A3.6/5.0
Behavior3/5

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

No annotations exist, so the description must disclose behavior. It states what is returned (stored payload, per-route outcomes) but does not explicitly confirm it is a read-only operation or mention any side effects, permissions, or rate limits. Adequate but not comprehensive.

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?

Single sentence with no unnecessary words. Concise, clearly structured, and front-loaded with the core action and resource.

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?

Given the presence of an output schema, the description need not detail return values. It mentions key aspects (stored payload, per-route outcomes) and covers the basic context. Sibling tools are addressed implicitly through specificity. No major gaps for a query 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 coverage is 100% with clear descriptions for each parameter (UUID and string). The description adds context about the overall purpose but no additional detail on parameter usage, formats, or constraints beyond the schema.

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 verb 'Fetch' and the specific resource 'full lifecycle trace for one inbound TradingView relay event', including what is included (stored payload and per-route outcomes). It distinguishes from siblings like tickory_list_relay_events by focusing on a single trace.

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 on when to use this tool versus alternatives such as tickory_list_relay_events or tickory_get_alert_event. No explicit context or exclusions provided.

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

tickory_get_scanB

Fetch one scan by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYesScan identifier.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scanYes
schema_versionYesTickory MCP tool schema version.

TDQS

B3.3/5.0
Behavior2/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 does not disclose behavioral traits such as idempotency, side effects, authentication needs, or error conditions. The description merely restates the obvious.

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 sentence of 5 words, no wasted content, purpose immediately clear. Front-loaded with the action and resource.

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 simple get-by-ID tool with one parameter and an output schema, the description is adequate but minimal. It could mention that the output contains full scan details, but the output schema likely covers that. Lacks any additional context like typical use cases.

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%, with parameter 'scan_id' already documented as 'Scan identifier.' The tool description adds no additional meaning beyond 'by ID,' which is already implied. Baseline score of 3 for high coverage, no extra value.

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 'Fetch one scan by ID' uses a specific verb ('Fetch') and resource ('scan'), with clear scope ('by ID'). It distinguishes from siblings like tickory_list_scans (list all) and tickory_create_scan (create).

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 on when to use this tool versus alternatives like tickory_list_scans or other scan-related tools. The description does not specify prerequisites, exclusions, or context for invocation.

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

tickory_list_alert_eventsC

List alert events for the API key owner.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoOpaque cursor from a previous list call.
limitNoOptional page size.
scan_idNoOptional scan filter.
sinceNoOptional RFC3339 lower bound for created_at.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of events returned.
eventsYes
next_cursorNoOpaque cursor for the next page.
payload_versionYesUpstream alert event payload version.
schema_versionYesTickory MCP tool schema version.

TDQS

C2.8/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 convey behavioral traits. It does not disclose that the tool returns a paginated list, that it is read-only, or how events are ordered. Although cursor and limit parameters imply pagination, the description does not clarify behavior.

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 concise sentence, but it is too brief to be fully useful. While front-loaded with the core purpose, it lacks essential details that could be added without significant expansion.

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 four parameters and the existence of an output schema, the description is incomplete. It does not summarize return structure, mention pagination behavior, or explain how to use the cursor for ongoing listing.

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%, so parameters like cursor, limit, scan_id, and since are already documented in the input schema. The description adds no additional meaning beyond what the schema provides.

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 verb 'List' and the resource 'alert events', and specifies the scope 'for the API key owner'. While it distinguishes from sibling tools like 'get_alert_event' by implying a plural result, it does not explicitly contrast with other list tools like 'list_relay_events'.

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 offers no guidance on when to use this tool over alternatives such as 'get_alert_event' or 'explain_alert_event'. No context on prerequisites, filtering, or use cases is provided.

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

tickory_list_relay_eventsA

List recent inbound relay events for one TradingView source with per-route summary status.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoOptional event limit.
source_idYesTradingView relay source identifier.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of relay events returned.
eventsYes
schema_versionYesTickory MCP tool schema version.

TDQS

A3.6/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 fully convey behavioral traits. It suggests a read operation ('list') but does not explicitly state idempotency, rate limits, authentication needs, or the meaning of 'recent'. The scope is limited to one source, but details like pagination or ordering are missing.

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, well-structured sentence that efficiently conveys the tool's purpose, target, and output characteristics. Every word adds value, and the most critical information is 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?

Given the presence of an output schema (not shown), the description adequately covers the tool's behavior. It mentions the output includes 'per-route summary status', which aligns with typical event listing tools. However, details like default limit, sorting order, or event recency definition would improve completeness.

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 coverage is 100% with clear descriptions for both parameters. The description adds context about the events being inbound and recent, and includes the per-route summary status, which helps understand the output but does not provide additional parameter-specific details beyond the schema.

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 lists recent inbound relay events for a specific TradingView source, and includes the key output feature (per-route summary status). It effectively distinguishes from siblings like tickory_list_relay_sources (lists sources) and tickory_get_relay_trace (trace of a single event).

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 usage for viewing events from a source, but provides no explicit guidance on when to use this tool versus alternatives (e.g., tickory_get_relay_trace for detailed trace) or when not to use it. No exclusions or prerequisites are mentioned.

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

tickory_list_relay_sourcesA

List TradingView relay sources, optionally including direct-route summaries. Non-TradingView sources and legacy scan-backed routes are omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_inactiveNoWhether to include inactive relay sources. Defaults to true.
include_routesNoWhether to include direct-route summaries. Defaults to true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of relay sources returned.
schema_versionYesTickory MCP tool schema version.
sourcesYes

TDQS

A4.2/5.0
Behavior4/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 filtering behavior (only TradingView sources, no legacy routes) and the optional inclusion of route summaries. More details on side effects or authorization would improve transparency.

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?

Two sentences, front-loaded with the primary action, and no superfluous words. Every sentence adds value, making it highly efficient.

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?

Given the tool has an output schema, return values need no explanation. The description covers the filtering criteria and optional features. It lacks mention of pagination or ordering, but for a simple list tool, this is acceptable.

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 coverage is 100% with descriptions for both parameters. The description adds a bit of context for include_routes ('direct-route summaries') but does not elaborate on include_inactive beyond the schema. As baseline is 3 due to high schema coverage, this is appropriate.

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 it lists TradingView relay sources, with optional direct-route summaries. It explicitly excludes non-TradingView sources and legacy scan-backed routes, differentiating it from sibling tools like tickory_list_relay_events and tickory_list_scans.

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 context for when to use the tool (listing TradingView relay sources) and what is omitted, implying when not to use it (other sources). However, it does not explicitly name alternative tools for those cases.

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

tickory_list_scansA

List scans visible to the API key owner.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_notification_statusNoInclude notification channel status for owned scans.
include_publicNoInclude public preset scans alongside user scans.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of scans returned.
scansYes
schema_versionYesTickory MCP tool schema version.

TDQS

A3.6/5.0
Behavior2/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 only mentions 'visible to the API key owner' but does not disclose behavioral traits like read-only, pagination, rate limits, or output specifics.

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, efficient sentence with no waste, front-loading the essential purpose.

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?

Given the output schema exists and parameters are fully described, the description covers the core purpose and scope. However, it lacks usage context and behavioral details, which slightly reduces completeness.

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 coverage is 100%, and the description adds no extra meaning beyond the schema's parameter descriptions. Baseline is 3 due to high coverage.

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 verb 'List' and the resource 'scans', and it specifies the scope 'visible to the API key owner', which distinguishes it from siblings like 'get_scan' or 'create_scan'.

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 when to use (listing scans) but lacks explicit guidance on when not to use or alternatives among sibling tools like 'tickory_get_scan' or 'tickory_list_symbols'.

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

tickory_list_symbolsA

List tracked symbols with optional filters for exchange, contract type, and search query.

ParametersJSON Schema
NameRequiredDescriptionDefault
contract_typeNoOptional contract type filter.
exchangeNoOptional exchange filter (e.g. binance).
qNoOptional search query to filter symbols by name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of symbols returned.
schema_versionYesTickory MCP tool schema version.
symbolsYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the tool lists symbols with filters, but lacks details on read-only nature, pagination, auth requirements, or any side effects. This is insufficient for a list tool.

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, well-structured sentence that front-loads the verb and resource followed by filters. No unnecessary words.

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?

Given the tool's simplicity (no required params, output schema exists), the description is mostly complete. It covers the core purpose and filters. However, it omits default behavior (e.g., returns all symbols without filters) or limits, but the output schema likely handles return structure.

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%, so the schema already documents all parameters. The description repeats 'optional filters for exchange, contract type, and search query' without adding new meaning beyond the schema. Baseline 3 is appropriate.

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 action 'list' and the resource 'tracked symbols', and specifies optional filters for exchange, contract type, and search query. This makes the purpose explicit and distinguishes it from sibling tools that deal with relays, scans, and alerts.

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 usage for filtering symbols, but no explicit guidance on when to use vs alternatives or when not to use. Given the sibling tools are unrelated, the usage context is clear enough but could be improved with explicit alternatives or exclusion criteria.

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

tickory_replay_relay_eventB

Replay one failed route from a TradingView relay event trace when the downstream alert event is still replayable.

ParametersJSON Schema
NameRequiredDescriptionDefault
route_idYesRoute identifier to replay.
source_event_idYesRelay source event UUID.
source_idYesTradingView relay source identifier.

Output Schema

ParametersJSON Schema
NameRequiredDescription
alert_event_idYesDownstream alert event UUID.
replayed_atYesReplay request timestamp.
route_idYesRoute identifier.
schema_versionYesTickory MCP tool schema version.
source_event_idYesRelay source event UUID.
statusYesReplay queueing status.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are present, so the description must carry full behavioral disclosure. It fails to explain side effects, authorization needs, what 'replay' entails (e.g., resending an alert), or what happens if the event is not replayable.

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, concise sentence that immediately conveys the tool's purpose. Every word is informative.

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?

Given the tool has an output schema (indicated by context), the description is mostly complete. However, it could benefit from clarifying the meaning of 'replayable' or any prerequisites, but for a simple action it suffices.

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%, so parameters are already documented. The description adds no extra meaning or context beyond the schema, making it adequate but not enhanced.

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 action ('replay'), the resource ('one failed route'), and the context ('from a TradingView relay event trace when the downstream alert event is still replayable'). It effectively distinguishes from sibling tools like tickory_add_relay_route or tickory_get_relay_trace.

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 does not provide guidance on when to use this tool versus alternatives. It includes a condition ('when downstream alert event is still replayable') but lacks explicit when-to-use, when-not-to-use, or prerequisites.

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

tickory_run_ad_hoc_scanB

Execute a one-off scan immediately without creating or modifying a saved scan.

ParametersJSON Schema
NameRequiredDescriptionDefault
builder_configNoOptional visual builder state.
expressionYesTickory CEL expression.
hard_gatesNo
nameNoOptional ad hoc scan name used in the run snapshot.
symbolsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
runYes
schema_versionYesTickory MCP tool schema version.

TDQS

B3.1/5.0
Behavior2/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 of behavioral disclosure. It only says 'execute a one-off scan immediately' without describing side effects, output behavior, or execution semantics (sync/async, result storage).

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 short sentence, which is concise but omits necessary details. While front-loaded, it sacrifices completeness for brevity.

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 5 parameters, nested objects, and output schema, the description is insufficient. It does not help the agent differentiate from sibling tools or understand invocation context beyond basic purpose.

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?

With 60% schema description coverage, the description adds no parameter information beyond the schema. It does not explain the meaning or usage of parameters like expression, hard_gates, or symbols, leaving the agent reliant solely on schema descriptions.

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 it executes a one-off scan immediately without creating or modifying a saved scan. It distinguishes from siblings like tickory_run_scan (which runs saved scans) and tickory_create_scan (which creates scans).

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 usage for ad-hoc scans via 'without creating or modifying a saved scan,' but does not explicitly state when to use it over alternatives or provide exclusions. No mention of prerequisites or contexts.

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

tickory_run_scanB

Run a scan immediately and return matching symbols with indicator values.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYesScan identifier.
symbolsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
runYes
schema_versionYesTickory MCP tool schema version.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so description bears full burden. It only states 'run immediately' but does not disclose side effects (e.g., does it modify state?), authorization needs, rate limits, or whether the operation is synchronous or potentially long-running.

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?

Single sentence, no redundancy, front-loaded with the core action and result. Every word earns its place.

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 presence of an output schema, the description covers the return type but lacks detail on execution behavior (e.g., is it real-time or queued?). With 16 siblings, more context about the role of 'run_scan' relative to 'get_scan' or 'run_ad_hoc_scan' would improve completeness.

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?

With 50% schema description coverage, the description adds no extra meaning beyond the schema. It does not explain what the scan_id refers to, what 'symbols' overrides, or how they affect results. The description alone is insufficient for an agent to understand parameter usage.

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 that the tool runs a scan immediately and returns results, specifying the verb (run) and resource (scan). It distinguishes from siblings like 'tickory_get_scan' and 'tickory_run_ad_hoc_scan' by implying it uses a predefined scan_id.

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 explicit guidance on when to use this tool vs alternatives, such as 'tickory_run_ad_hoc_scan' or 'tickory_get_scan'. It does not mention prerequisites, context, or exclusions.

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

tickory_update_scanA

Replace an existing user-owned scan. Pass the full desired scan state, including timeframe.

ParametersJSON Schema
NameRequiredDescriptionDefault
builder_configNoOptional visual builder state.
cel_expressionYesTickory CEL expression.
descriptionNoOptional scan description.
hard_gatesNo
nameYesHuman-readable scan name.
scan_idYesScan identifier.
timeframeYesRequired timeframe for the updated scan.

Output Schema

ParametersJSON Schema
NameRequiredDescription
schema_versionYesTickory MCP tool schema version.
statusYesUpdate result status.
validation_warningsNo

TDQS

A3.5/5.0
Behavior3/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. It discloses that the operation is a full replacement ('Pass the full desired scan state'), which is a key behavioral trait. However, it lacks details about destructive effects on omitted fields, authentication needs, or rate limits.

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?

Two sentences with no unnecessary words, front-loaded with the action verb 'Replace', making it immediately clear what the tool does.

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 complexity (7 params, nested objects, 1 enum, output schema), the description is minimal. It mentions existing user-owned scan and timeframe, but does not cover error conditions, validation rules, or relationship to other tools like tickory_list_scans.

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 high (86%), so baseline is 3. The description adds that 'full desired scan state' implies intent to replace, but does not elaborate on parameter usage beyond what the schema already provides.

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 verb 'Replace' and the resource 'existing user-owned scan', and distinguishes it from sibling tools like tickory_create_scan (create vs update) and tickory_get_scan (read).

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 does not provide guidance on when to use this tool versus alternatives, no when-not-to-use scenarios, and no mention of prerequisites for the scan_id or ownership 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. 18 tool updates
    • First observedtickory_add_relay_route
    • First observedtickory_create_relay_source
    • First observedtickory_create_scan
    • First observedtickory_describe_indicators
    • First observedtickory_explain_alert_event
    • First observedtickory_get_alert_event
    • First observedtickory_get_market_data
    • First observedtickory_get_relay_trace
    • First observedtickory_get_scan
    • First observedtickory_list_alert_events
    • First observedtickory_list_relay_events
    • First observedtickory_list_relay_sources
    • First observedtickory_list_scans
    • First observedtickory_list_symbols
    • First observedtickory_replay_relay_event
    • First observedtickory_run_ad_hoc_scan
    • First observedtickory_run_scan
    • First observedtickory_update_scan

TDQS

A3.5/5.0
Disambiguation5/5

All 18 tools have clearly distinct purposes. List vs. get, run vs. ad-hoc, and relay lifecycle tools (sources, events, traces, replay) are all well-separated, minimizing agent confusion.

Naming Consistency5/5

All tools follow a consistent 'tickory_verb_noun' pattern (e.g., tickory_create_scan, tickory_list_alert_events). No mixing of styles or vague verbs.

Tool Count4/5

18 tools is above the typical 3-15 range but still justified for the breadth of functionality (relays, scans, alerts, market data). Each tool has a distinct role, so it feels well-scoped rather than bloated.

Completeness3/5

Core workflows for scans, relays, and alerts are present (create, read, list, update, run). However, no delete or deactivate operations exist for scans, relay sources, or alerts, which are notable gaps for a complete lifecycle.

Maintenance

ActivityInactive
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
    Real-time institutional crypto & equity orderflow intelligence. Detects BUY/SELL pressure from live Binance L2 orderbook and aggressive trade feeds for any USDT pair or US equity.
    10
    2
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables scanning and querying stock market data across thousands of US tickers and top cryptos, with tools for signal analysis, historical replay, and webhook subscriptions.
    35
    65
    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/tickory/tickory-mcp'

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