Valuein
state

Create Signal

create_signal
Benchmark and above

Persist a signal and register it with the firing pipeline. Five condition shapes: * `filing_event` — fire when a ticker files a chosen form type (8-K, 10-K, etc.). * `ratio_threshold` — fire when a ticker's financial ratio crosses a threshold (e.g. interest_coverage < 1.5). * ...

Example Call

example_call.pypython
# Using the Valuein MCP server from Python (via MCP SDK)# Or call directly from Claude / Cursor after setup result = await client.call_tool(    "create_signal",    arguments={    "name": "EXAMPLE",    "condition": {}})print(result)

Direct tool call:create_signal(...)

Inputs

ParameterTypeRequiredDescription
namestring
required
Human-readable label.
conditionobject
required
Condition evaluated each cron tick — a discriminated union of `filing_event` (a watched ticker files a new form), `ratio_threshold` (a financial ratio crosses a comparator/threshold), `watchlist_change` (any ticker in a named watchlist files), `price_move` (Pro+ — a close-to-close move crosses a percent threshold), or `fundamental_change` (Pro+ — a standard_concept reports a new period or gets restated).
channelobjectoptionalONE delivery channel for a match — `email` (filing conditions: the morning digest; other conditions: one transactional email per signal per UTC day, the rest go to the inbox), `webhook` (HMAC-SHA256-signed POST to your URL), `slack` (POST to a hooks.slack.com incoming-webhook URL), `dashboard` (in-app inbox, readable via list_signal_inbox), or `agent_run` (runs a standing agent identified by its id, delivering the finished artifact to your inbox). Use `channels` instead to deliver to several at once; one of the two is required.
channelsarrayoptionalSEVERAL delivery channels for a match, in order (up to 4, each a distinct type+target) — e.g. `[{type:'dashboard'},{type:'email',target:'you@fund.com'}]` to get the inbox item AND the email. The first entry is what `channel` reports. Takes precedence over `channel` when both are given.
replaces_signal_idstringoptionalOptional. The id of a signal this call REPLACES with a NEW one. Prefer `update_signal`, which edits in place and keeps the fire history; use this only when you deliberately want a fresh record. A verified live record you own is discounted from the tier cap so the swap is cap-neutral; an unknown, deleted, or foreign id is ignored and the cap applies normally.

Output Fields

signalcron_indexed

Example Response

Illustrative
response.jsonjson
{  "signal": null,  "cron_indexed": null}

Shape only — field names match the live schema; values are placeholders, not real filings. See MCP server for the structured response shape.

Notes

Available from the Benchmark plan and above.

Try this tool

Get tokenAll tools
Categorystate
PIT-safeNo
Min planBenchmark
Inputs5 (2 required)

Plan Access

Sample (guest)
Not included
Benchmark (token)
Available
Pro
Available
Institutional
Available

Index names are trademarks of their owners; Valuein is not affiliated with or endorsed by any index provider.