Market forecasts with their own track record, inside Claude, ChatGPT and other MCP apps.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Follow a market for this account. Check canFollow in get_usage first. Replacing a followed market is allowed once every 30 days: ask the user, then call with confirmReplacement true.
Market slug from list_markets, for example bitcoin
Set true only after the user agreed to replace a market they already follow
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Follow a market for this account. Check canFollow in get_usage first. Replacing a followed market is allowed once every 30 days: ask the user, then call with confirmReplacement true.
| Argument | Type | Description |
|---|---|---|
| market* | string | Market slug from list_markets, for example bitcoin |
| confirmReplacement | boolean | Set true only after the user agreed to replace a market they already follow |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"market"
],
"properties": {
"market": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "Market slug from list_markets, for example bitcoin"
},
"confirmReplacement": {
"type": "boolean",
"description": "Set true only after the user agreed to replace a market they already follow"
}
},
"additionalProperties": false
}Links to create an account, sign in and manage connections.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"additionalProperties": false
}What every Kunkafa term and number means and how to read them. Call once before explaining results. No sign-in needed.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"additionalProperties": false
}Current forecasts for one market; one market per call by design, so data is not pulled in bulk. Choose durations (exact or a range) and optionally direction, confidence or target filters. At most 6 durations and 72 forecasts per call; calls can run in parallel.
| Argument | Type | Description |
|---|---|---|
| market* | string | Market slug from list_markets, for example bitcoin |
| direction | string | Default both |
| durations | array | Exact duration labels from list_markets, for example ["1 hour", "6 hours"] |
| maxDuration | string | Longest duration to include, for example "1 day" |
| minDuration | string | Shortest duration to include, for example "1 hour" |
| maxTargetPercent | number | Only targets at most this far from the reference price, in percent |
| minTargetPercent | number | Only targets at least this far from the reference price, in percent |
| maxDurationExclusive | boolean | true for "less than maxDuration"; default includes maxDuration |
How often past forecasts touched their target, by confidence level and period. Pass probabilityPercent for the matching row (headline).
| Argument | Type | Description |
|---|---|---|
| market* | string | Market slug from list_markets, for example bitcoin |
| probabilityPercent | number | A forecast's confidence; the headline shows past results at the nearest published level at or below it |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"market"
],
"properties": {
"market": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "Market slug from list_markets, for example bitcoin"
},
"probabilityPercent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "A forecast's confidence; the headline shows past results at the nearest published level at or below it"
}
},
"additionalProperties": false
}Recent example forecasts with their outcomes; not a full record.
| Argument | Type | Description |
|---|---|---|
| market* | string | Market slug from list_markets, for example bitcoin |
| durations | array | Only these duration labels, for example ["1 hour", "1 day"]; default every duration |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"market"
],
"properties": {
"market": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "Market slug from list_markets, for example bitcoin"
},
"durations": {
"type": "array",
"items": {
"type": "string",
"pattern": "^\\d{1,5}\\s*[A-Za-z]{1,8}$",
"maxLength": 24,
"minLength": 2
},
"maxItems": 6,
"minItems": 1,
"description": "Only these duration labels, for example [\"1 hour\", \"1 day\"]; default every duration"
}
},
"additionalProperties": false
}Remaining allowances, what one get_outlooks call returns, and this connection's permissions, canFollow and expiry. Uses no allowance.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Items per page, 1 to 50; default 50 |
| cursor | string | page.nextCursor from the previous reply, to read the next page; omit for the first page |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Items per page, 1 to 50; default 50"
},
"cursor": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$",
"maxLength": 256,
"minLength": 1,
"description": "page.nextCursor from the previous reply, to read the next page; omit for the first page"
}
},
"additionalProperties": false
}Markets this account can read, each with the durations that have forecasts now, and what it follows. Page with page.nextCursor.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Items per page, 1 to 50; default 50 |
| cursor | string | page.nextCursor from the previous reply, to read the next page; omit for the first page |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Items per page, 1 to 50; default 50"
},
"cursor": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$",
"maxLength": 256,
"minLength": 1,
"description": "page.nextCursor from the previous reply, to read the next page; omit for the first page"
}
},
"additionalProperties": false
}Stop following a market; its data stops being readable. Check canFollow in get_usage first.
| Argument | Type | Description |
|---|---|---|
| market* | string | Market slug from list_markets, for example bitcoin |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"market"
],
"properties": {
"market": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "Market slug from list_markets, for example bitcoin"
}
},
"additionalProperties": false
}| maxProbabilityPercent | number | Only forecasts whose probability is at most this |
| minProbabilityPercent | number | Only forecasts whose probability (Kunkafa's confidence) is at least this |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"market"
],
"properties": {
"market": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "Market slug from list_markets, for example bitcoin"
},
"direction": {
"enum": [
"up",
"down",
"both"
],
"type": "string",
"description": "Default both"
},
"durations": {
"type": "array",
"items": {
"type": "string",
"pattern": "^\\d{1,5}\\s*[A-Za-z]{1,8}$",
"maxLength": 24,
"minLength": 2
},
"maxItems": 6,
"minItems": 1,
"description": "Exact duration labels from list_markets, for example [\"1 hour\", \"6 hours\"]"
},
"maxDuration": {
"type": "string",
"pattern": "^\\d{1,5}\\s*[A-Za-z]{1,8}$",
"maxLength": 24,
"minLength": 2,
"description": "Longest duration to include, for example \"1 day\""
},
"minDuration": {
"type": "string",
"pattern": "^\\d{1,5}\\s*[A-Za-z]{1,8}$",
"maxLength": 24,
"minLength": 2,
"description": "Shortest duration to include, for example \"1 hour\""
},
"maxTargetPercent": {
"type": "number",
"maximum": 10000,
"minimum": 0,
"description": "Only targets at most this far from the reference price, in percent"
},
"minTargetPercent": {
"type": "number",
"maximum": 10000,
"minimum": 0,
"description": "Only targets at least this far from the reference price, in percent"
},
"maxDurationExclusive": {
"type": "boolean",
"description": "true for \"less than maxDuration\"; default includes maxDuration"
},
"maxProbabilityPercent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Only forecasts whose probability is at most this"
},
"minProbabilityPercent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Only forecasts whose probability (Kunkafa's confidence) is at least this"
}
},
"additionalProperties": false
}