Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,534Letters: 13Defects: 1,322counted 3 min ago
teppi

Server definition

Hash
sha256:ce4631c9680c46c5443809d39b1c6c6b88807b5fc74beefc25b67362cdd38c21
What it is
What a remote MCP server returned when asked what it offers: 3 tools

The blob, as servednamed by its sha256

{ "instructions": "SERP measurement maths: impression-weighted average position, click projection against a caller-supplied CTR curve, and share of voice. No CTR table is built in by design.", "tools": [ { "description": "Compute the impression-weighted average SERP position for a set of query rows, alongside the plain arithmetic mean and the gap between them. The arithmetic mean lets a 3-impression query count as much as a 30,000-impression one; the weighted figure describes where a typical impression actually happened. A positive weighting_shift means your high-volume queries rank worse than the unweighted average suggests.", "inputSchema": { "additionalProperties": false, "properties": { "rows": { "description": "Query rows.", "items": { "properties": { "clicks": { "description": "Optional observed clicks, used to calibrate the curve.", "type": "number" }, "impressions": { "description": "Impressions the row received.", "type": "number" }, "position": { "description": "Average SERP position for the row, 1-based.", "type": "number" }, "query": { "description": "Optional label for the row.", "type": "string" }, "target_position": { "description": "Optional per-row target position, overriding the global target.", "type": "number" } }, "required": [ "position", "impressions" ], "type": "object" }, "type": "array" } }, "required": [ "rows" ], "type": "object" }, "name": "impression_weighted_position", "outputSchema": null }, { "description": "Project how many clicks a set of query rows would earn at a target position instead of their current position, using a CTR curve THAT YOU SUPPLY. This server deliberately ships no built-in CTR table: every published average-CTR-by-position table is a third-party estimate over someone else's traffic, so applying one silently would disguise a guess as a measurement. Pass your own measured curve (Search Console clicks/impressions by position is the honest source). Positions between curve points are linearly interpolated; positions beyond the curve clamp to the last point rather than extrapolate, and are counted in clamped_row_count. If any row carries observed clicks, the output also reports how far the supplied curve is from your reality.", "inputSchema": { "additionalProperties": false, "properties": { "ctr_curve": { "additionalProperties": { "type": "number" }, "description": "Required. Map of position to click-through rate as a 0-1 fraction, e.g. {\"1\":0.28,\"2\":0.15,\"3\":0.10,\"10\":0.02}. Supply your own measured values.", "type": "object" }, "rows": { "description": "Query rows.", "items": { "properties": { "clicks": { "description": "Optional observed clicks, used to calibrate the curve.", "type": "number" }, "impressions": { "description": "Impressions the row received.", "type": "number" }, "position": { "description": "Average SERP position for the row, 1-based.", "type": "number" }, "query": { "description": "Optional label for the row.", "type": "string" }, "target_position": { "description": "Optional per-row target position, overriding the global target.", "type": "number" } }, "required": [ "position", "impressions" ], "type": "object" }, "type": "array" }, "target_position": { "description": "Target position applied to every row that does not carry its own.", "type": "number" } }, "required": [ "rows", "ctr_curve" ], "type": "object" }, "name": "project_clicks_from_ctr_curve", "outputSchema": null }, { "description": "Compute share of voice across competing entities over a keyword set. Reports impression share always, and, if you supply a CTR curve, a weighted visibility share that accounts for the fact that an impression at position 1 is not worth an impression at position 9. Impression share is share of the supplied set only and says nothing about keywords you did not supply.", "inputSchema": { "additionalProperties": false, "properties": { "ctr_curve": { "additionalProperties": { "type": "number" }, "description": "Optional caller-supplied position-to-CTR map, for weighted visibility.", "type": "object" }, "entities": { "description": "One entry per competitor per keyword, or pre-aggregated per competitor.", "items": { "properties": { "entity": { "description": "Competitor name or domain.", "type": "string" }, "impressions": { "type": "number" }, "position": { "description": "Average position, required only when a ctr_curve is supplied.", "type": "number" } }, "required": [ "impressions" ], "type": "object" }, "type": "array" } }, "required": [ "entities" ], "type": "object" }, "name": "share_of_voice", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:ce4631c9680c46c5443809d39b1c6c6b88807b5fc74beefc25b67362cdd38c21 | sha256sum