Server definition
- Hash
- sha256:dfa0077d89c0ef3a207bec7aee87ec6a27bd1503accbc5d85c370305dfd09cc7
- What it is
- What a remote MCP server returned when asked what it offers: 5 tools
The blob, as servednamed by its sha256
{
"instructions": "Score a page or draft against 11,485 public taxonomy categories (Google Ads Topics, Google Merchant, IAB Content 3.1, IAB Audience 1.1, IAB Ad Product 2.0, LinkedIn Industries v2) by embedding similarity, rank it per taxonomy, and get the phrases that pull it toward a target category. A topical-alignment check for content briefs and SEO/GEO audits, not a ranking predictor.",
"tools": [
{
"description": "Finds categories whose path contains the query (case-insensitive substring), optionally within one taxonomy. Free. Returns up to `limit` hits with id and path; pass the id as `category` to the paid tools.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 25,
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "Words to look for in category paths.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"taxonomy": {
"description": "Taxonomy of the target category.",
"enum": [
"google_ads_topics",
"google_merchant",
"iab_content",
"iab_audience",
"iab_ad_product",
"linkedin_industries"
],
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "topic_scorer_find",
"outputSchema": null
},
{
"description": "Pass/fail check: does the text rank within the top `min_rank` categories of its target taxonomy? Returns `pass`, the target's rank and gap to #1, the taxonomy's top five, and the unused phrases to work in. Use it as a content-pipeline gate. Paid, $0.05/call; read-only and safe to retry.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"category": {
"description": "Target category id, full path, or a unique path substring within the taxonomy (use topic_scorer_find to look one up).",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"full": {
"default": false,
"description": "Score the whole text as the mean of 8,192-char chunks instead of only the first 8,192 chars.",
"type": "boolean"
},
"min_rank": {
"default": 3,
"description": "Highest passing rank.",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"phrases": {
"default": 30,
"description": "Phrase bank size for the target category (0 skips it).",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"taxonomy": {
"description": "Taxonomy of the target category.",
"enum": [
"google_ads_topics",
"google_merchant",
"iab_content",
"iab_audience",
"iab_ad_product",
"linkedin_industries"
],
"type": "string"
},
"text": {
"description": "The page or draft text to score, as plain text or HTML (tags are stripped). 1 to 32768 characters. URLs are not fetched; send the content.",
"maxLength": 32768,
"minLength": 1,
"type": "string"
}
},
"required": [
"text",
"taxonomy",
"category"
],
"type": "object"
},
"name": "topic_scorer_gate",
"outputSchema": null
},
{
"description": "Returns the ranked phrase bank for one category: 1 to 4 word phrases a page squarely about that category would contain, ordered by similarity to the category. Use it to seed a brief. Paid, $0.05/call; read-only and safe to retry.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"category": {
"description": "Target category id, full path, or a unique path substring within the taxonomy (use topic_scorer_find to look one up).",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"n": {
"default": 30,
"description": "Bank size.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"taxonomy": {
"description": "Taxonomy of the target category.",
"enum": [
"google_ads_topics",
"google_merchant",
"iab_content",
"iab_audience",
"iab_ad_product",
"linkedin_industries"
],
"type": "string"
}
},
"required": [
"taxonomy",
"category"
],
"type": "object"
},
"name": "topic_scorer_phrases",
"outputSchema": null
},
{
"description": "Scores text against every category in all six taxonomies (one embedding, cosine similarity) and returns the top `per` rows per taxonomy. With `taxonomy` and `category` it also returns the target's rank, score, gap to #1, and a phrase bank split into phrases the text already uses and phrases it does not. Read the rank and the gap, not the raw percent (scores compress into a 70 to 90 band). Paid, $0.05/call; read-only and safe to retry.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"category": {
"description": "Target category id, full path, or a unique path substring within the taxonomy (use topic_scorer_find to look one up).",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"full": {
"default": false,
"description": "Score the whole text as the mean of 8,192-char chunks instead of only the first 8,192 chars.",
"type": "boolean"
},
"per": {
"default": 10,
"description": "Rows per taxonomy.",
"maximum": 25,
"minimum": 1,
"type": "integer"
},
"phrases": {
"default": 30,
"description": "Phrase bank size for the target category (0 skips it).",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"taxonomy": {
"description": "Taxonomy of the target category.",
"enum": [
"google_ads_topics",
"google_merchant",
"iab_content",
"iab_audience",
"iab_ad_product",
"linkedin_industries"
],
"type": "string"
},
"text": {
"description": "The page or draft text to score, as plain text or HTML (tags are stripped). 1 to 32768 characters. URLs are not fetched; send the content.",
"maxLength": 32768,
"minLength": 1,
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"name": "topic_scorer_score",
"outputSchema": null
},
{
"description": "Lists the six taxonomies with their label and category count. Free. Call it first to pick the taxonomy for topic_scorer_find.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "topic_scorer_taxonomies",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:dfa0077d89c0ef3a207bec7aee87ec6a27bd1503accbc5d85c370305dfd09cc7 | sha256sum