Skip to main content
Glama

Past performance

get_performance
Read-only

How often past forecasts touched their target, by confidence level and period. Pass probabilityPercent for the matching row (headline).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
marketYesMarket slug from list_markets, for example bitcoin
probabilityPercentNoA forecast's confidence; the headline shows past results at the nearest published level at or below it

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYes
usageYes
dataUseYesUse restriction on every reply: data collection is prohibited; the data may not be collected, saved, stored, exported or compiled, or used to train, retrain, fine-tune or distil any model.
noticesYes
headlineYes
fieldGuideYesPlain meanings of the returned fields.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$defs": {
      +    "IntegrationMarketSlug": {
      +      "description": "Published English-name market slug returned by authorized discovery.",
      +      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
      +      "type": "string"
      +    },
      +    "IntegrationNotice": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "id": {
      +          "type": "string"
      +        },
      +        "kind": {
      +          "enum": [
      +            "approaching_limit",
      +            "limit_reached"
      +          ]
      +        },
      +        "limit": {
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "message": {
      +          "type": "string"
      +        },
      +        "nextCapacityAt": {
      +          "anyOf": [
      +            {
      +              "$ref": "#/$defs/IntegrationTimestamp"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "period": {
      +          "enum": [
      +            "day",
      +            "week",
      +            "month"
      +          ]
      +        },
      +        "remaining": {
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "used": {
      +          "minimum": 0,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "period",
      +        "kind",
      +        "message",
      +        "used",
      +        "limit",
      +        "remaining",
      +        "nextCapacityAt"
      +      ],
      +      "type": "object"
      +    },
      +    "IntegrationPerformance": {
      +      "additionalProperties": false,
      +      "description": "Market-wide historical evidence at each published classifier probability threshold and reporting period. Sample counts and missing rates are preserved; this is not evidence matched to each current output.",
      +      "properties": {
      +        "defaultProbabilityThresholdPercent": {
      +          "maximum": 100,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "latestReport": {
      +          "$ref": "#/$defs/IntegrationReportEvidence"
      +        },
      +        "market": {
      +          "$ref": "#/$defs/IntegrationMarketSlug"
      +        },
      +        "periods": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "period": {
      +                "enum": [
      +                  "d1",
      +                  "d7",
      +                  "d30",
      +                  "all_time"
      +                ]
      +              },
      +              "points": {
      +                "items": {
      +                  "$ref": "#/$defs/IntegrationPerformancePoint"
      +                },
      +                "type": "array"
      +              }
      +            },
      +            "required": [
      +              "period",
      +              "points"
      +            ],
      +            "type": "object"
      +          },
      +          "maxItems": 4,
      +          "minItems": 4,
      +          "type": "array"
      +        },
      +        "sourceAt": {
      +          "$ref": "#/$defs/IntegrationTimestamp"
      +        },
      +        "url": {
      +          "description": "The market's page on kunkafa.com.",
      +          "format": "uri",
      +          "pattern": "^https://kunkafa\\.com/markets/[a-z0-9-]+/$",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "market",
      +        "sourceAt",
      +        "defaultProbabilityThresholdPercent",
      +        "periods"
      +      ],
      +      "type": "object"
      +    },
      +    "IntegrationPerformanceHeadline": {
      +      "additionalProperties": false,
      +      "description": "The row to read first: past results at one published confidence level for each reporting period. basis is default (the market's default level) or requested (the nearest level at or below probabilityPercent).",
      +      "properties": {
      +        "basis": {
      +          "enum": [
      +            "default",
      +            "requested"
      +          ]
      +        },
      +        "periods": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "period": {
      +                "enum": [
      +                  "d1",
      +                  "d7",
      +                  "d30",
      +                  "all_time"
      +                ]
      +              },
      +              "sampleCount": {
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              "status": {
      +                "enum": [
      +                  "available",
      +                  "insufficient"
      +                ]
      +              },
      +              "targetsReachedPercent": {
      +                "anyOf": [
      +                  {
      +                    "maximum": 100,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              }
      +            },
      +            "required": [
      +              "period",
      +              "sampleCount",
      +              "targetsReachedPercent",
      +              "status"
      +            ],
      +            "type": "object"
      +          },
      +          "maxItems": 4,
      +          "minItems": 4,
      +          "type": "array"
      +        },
      +        "probabilityThresholdPercent": {
      +          "maximum": 100,
      +          "minimum": 0,
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "probabilityThresholdPercent",
      +        "basis",
      +        "periods"
      +      ],
      +      "type": "object"
      +    },
      +    "IntegrationPerformancePoint": {
      +      "additionalProperties": false,
      +      "description": "Published classifier probability threshold and observed target-touch rate. Rates are null for fewer than 100 examples or missing evidence; classifier probability is separate from historical success.",
      +      "properties": {
      +        "probabilityThresholdPercent": {
      +          "maximum": 100,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "sampleCount": {
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "status": {
      +          "enum": [
      +            "available",
      +            "insufficient"
      +          ]
      +        },
      +        "targetsReachedPercent": {
      +          "anyOf": [
      +            {
      +              "maximum": 100,
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "required": [
      +        "probabilityThresholdPercent",
      +        "sampleCount",
      +        "targetsReachedPercent",
      +        "status"
      +      ],
      +      "type": "object"
      +    },
      +    "IntegrationReportBreakdown": {
      +      "additionalProperties": false,
      +      "description": "The market's latest full published report: every settled forecast placed in one of eight bands by how far price travelled toward its target within the duration, as a percent of the distance to the target (100 is the target itself; 300 is three times that distance, not a price change). All eight bands are always present.",
      +      "properties": {
      +        "bands": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "fromPct": {
      +                "type": "number"
      +              },
      +              "key": {
      +                "type": "string"
      +              },
      +              "toPct": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "required": [
      +              "key",
      +              "fromPct",
      +              "toPct"
      +            ],
      +            "type": "object"
      +          },
      +          "maxItems": 8,
      +          "minItems": 8,
      +          "type": "array"
      +        },
      +        "edition": {
      +          "const": "full"
      +        },
      +        "floors": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "bandsPercent": {
      +                "description": "Share of the settled forecasts in each band, in the order of bands; sums to 100.",
      +                "items": {
      +                  "maximum": 100,
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                "maxItems": 8,
      +                "minItems": 8,
      +                "type": "array"
      +              },
      +              "down": {
      +                "$ref": "#/$defs/IntegrationReportShares"
      +              },
      +              "minimumProbabilityPercent": {
      +                "maximum": 100,
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              "settledForecasts": {
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              "up": {
      +                "$ref": "#/$defs/IntegrationReportShares"
      +              }
      +            },
      +            "required": [
      +              "minimumProbabilityPercent",
      +              "settledForecasts",
      +              "bandsPercent",
      +              "up",
      +              "down"
      +            ],
      +            "type": "object"
      +          },
      +          "maxItems": 20,
      +          "minItems": 1,
      +          "type": "array"
      +        },
      +        "generatedAt": {
      +          "type": "string"
      +        },
      +        "market": {
      +          "type": "string"
      +        },
      +        "reportUrl": {
      +          "pattern": "^https://kunkafa\\.com/reports/",
      +          "type": "string"
      +        },
      +        "window": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "from": {
      +              "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +              "type": "string"
      +            },
      +            "to": {
      +              "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "from",
      +            "to"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "market",
      +        "edition",
      +        "window",
      +        "generatedAt",
      +        "reportUrl",
      +        "bands",
      +        "floors"
      +      ],
      +      "type": "object"
      +    },
      +    "IntegrationReportEvidence": {
      +      "oneOf": [
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "data": {
      +              "$ref": "#/$defs/IntegrationReportBreakdown"
      +            },
      +            "status": {
      +              "const": "available"
      +            }
      +          },
      +          "required": [
      +            "status",
      +            "data"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "data": {
      +              "type": "null"
      +            },
      +            "status": {
      +              "const": "unavailable"
      +            }
      +          },
      +          "required": [
      +            "status",
      +            "data"
      +          ],
      +          "type": "object"
      +        }
      +      ]
      +    },
      +    "IntegrationReportShares": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "bandsPercent": {
      +          "description": "Share of the settled forecasts in each band, in the order of bands; sums to 100.",
      +          "items": {
      +            "maximum": 100,
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "maxItems": 8,
      +          "minItems": 8,
      +          "type": "array"
      +        },
      +        "settledForecasts": {
      +          "minimum": 0,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "settledForecasts",
      +        "bandsPercent"
      +      ],
      +      "type": "object"
      +    },
      +    "IntegrationTimestamp": {
      +      "description": "ISO 8601 UTC timestamp supplied by Kunkafa.",
      +      "format": "date-time",
      +      "type": "string"
      +    },
      +    "IntegrationUsage": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "adjustment": {
      +          "additionalProperties": false,
      +          "description": "An owner-approved account allowance increase. A null expiration is permanent until changed. Usage is never reset; market access and credential eligibility still follow the current plan.",
      +          "properties": {
      +            "expiresAt": {
      +              "format": "date-time",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            }
      +          },
      +          "required": [
      +            "expiresAt"
      +          ],
      +          "type": "object"
      +        },
      +        "calculatedAt": {
      +          "$ref": "#/$defs/IntegrationTimestamp"
      +        },
      +        "concurrency": {
      +          "additionalProperties": false,
      +          "description": "Private requests that can run at the same time. Requests from one connection run side by side up to this limit (the plan burst); a request from another connection waits until they finish.",
      +          "properties": {
      +            "limit": {
      +              "maximum": 100,
      +              "minimum": 1,
      +              "type": "integer"
      +            },
      +            "nextRequestAt": {
      +              "anyOf": [
      +                {
      +                  "$ref": "#/$defs/IntegrationTimestamp"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "remaining": {
      +              "maximum": 100,
      +              "minimum": 0,
      +              "type": "integer"
      +            }
      +          },
      +          "required": [
      +            "limit",
      +            "remaining",
      +            "nextRequestAt"
      +          ],
      +          "type": "object"
      +        },
      +        "requests": {
      +          "additionalProperties": false,
      +          "description": "Steady request rate with bounded burst capacity; metadata and repeated summaries still count toward request protection.",
      +          "properties": {
      +            "burst": {
      +              "minimum": 0,
      +              "type": "integer"
      +            },
      +            "nextRequestAt": {
      +              "anyOf": [
      +                {
      +                  "$ref": "#/$defs/IntegrationTimestamp"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "perMinute": {
      +              "minimum": 0,
      +              "type": "integer"
      +            },
      +            "remaining": {
      +              "minimum": 0,
      +              "type": "integer"
      +            }
      +          },
      +          "required": [
      +            "perMinute",
      +            "burst",
      +            "remaining",
      +            "nextRequestAt"
      +          ],
      +          "type": "object"
      +        },
      +        "tier": {
      +          "enum": [
      +            "free",
      +            "starter",
      +            "core",
      +            "pro",
      +            "publisher"
      +          ]
      +        },
      +        "windows": {
      +          "items": {
      +            "$ref": "#/$defs/IntegrationWindowUsage"
      +          },
      +          "maxItems": 3,
      +          "minItems": 3,
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "calculatedAt",
      +        "tier",
      +        "requests",
      +        "concurrency",
      +        "windows"
      +      ],
      +      "type": "object"
      +    },
      +    "IntegrationWindowUsage": {
      +      "additionalProperties": false,
      +      "description": "Rolling 24-hour, 7-day or 30-day allowance, not a midnight reset. Used can exceed the current limit after a downgrade; remaining is never negative.",
      +      "properties": {
      +        "limit": {
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "nextCapacityAt": {
      +          "anyOf": [
      +            {
      +              "$ref": "#/$defs/IntegrationTimestamp"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "notice": {
      +          "enum": [
      +            "approaching_limit",
      +            "limit_reached",
      +            null
      +          ]
      +        },
      +        "noticeId": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "period": {
      +          "enum": [
      +            "day",
      +            "week",
      +            "month"
      +          ]
      +        },
      +        "remaining": {
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "used": {
      +          "minimum": 0,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "period",
      +        "used",
      +        "limit",
      +        "remaining",
      +        "nextCapacityAt",
      +        "notice",
      +        "noticeId"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "additionalProperties": false,
      +  "properties": {
      +    "data": {
      +      "allOf": [
      +        {
      +          "$ref": "#/$defs/IntegrationPerformance"
      +        },
      +        {
      +          "required": [
      +            "url"
      +          ]
      +        }
      +      ]
      +    },
      +    "dataUse": {
      +      "description": "Use restriction on every reply: data collection is prohibited; the data may not be collected, saved, stored, exported or compiled, or used to train, retrain, fine-tune or distil any model.",
      +      "type": "string"
      +    },
      +    "fieldGuide": {
      +      "additionalProperties": false,
      +      "description": "Plain meanings of the returned fields.",
      +      "properties": {
      +        "latestReport": {
      +          "type": "string"
      +        },
      +        "periods": {
      +          "type": "string"
      +        },
      +        "probabilityThresholdPercent": {
      +          "type": "string"
      +        },
      +        "sampleCount": {
      +          "type": "string"
      +        },
      +        "targetsReachedPercent": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "periods",
      +        "probabilityThresholdPercent",
      +        "targetsReachedPercent",
      +        "sampleCount",
      +        "latestReport"
      +      ],
      +      "type": "object"
      +    },
      +    "headline": {
      +      "$ref": "#/$defs/IntegrationPerformanceHeadline"
      +    },
      +    "notices": {
      +      "items": {
      +        "$ref": "#/$defs/IntegrationNotice"
      +      },
      +      "maxItems": 3,
      +      "type": "array"
      +    },
      +    "usage": {
      +      "$ref": "#/$defs/IntegrationUsage"
      +    }
      +  },
      +  "required": [
      +    "data",
      +    "usage",
      +    "notices",
      +    "dataUse",
      +    "fieldGuide",
      +    "headline"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered without description help. The description adds the behavioral nuance that results are grouped by confidence level and period, but says nothing about auth, rate limits, or pagination; with an output schema present, return-shape disclosure is not required.

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?

Two short sentences with the primary purpose front-loaded and no filler. The trailing parenthetical '(headline)' is slightly cryptic but does not bloat the text.

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

Completeness4/5

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

For a two-parameter read-only lookup with a full output schema and complete annotation coverage, the description supplies the essential framing plus the optional-parameter usage hint. The only real omission is routing guidance relative to sibling tools, which is a minor gap at this complexity level.

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 both parameters are already documented, including the 'nearest published level at or below it' rounding rule. The description's remark about probabilityPercent selects the 'headline' row, which adds only marginal framing beyond what the schema already states.

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 names a specific resource (past forecast performance) and its dimensions of aggregation (confidence level and period), which is more informative than the title 'Past performance'. It does not, however, distinguish itself from near-neighbors like get_results or get_outlooks, so an agent must infer the boundary.

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

Usage Guidelines2/5

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

There is no statement of when to call this versus the sibling tools, and no prerequisites. The only usage-like sentence ('Pass probabilityPercent for the matching row') is really a parameter hint, not guidance on selecting this tool.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.