Server definition
- Hash
- sha256:403c0e1c0ec1a082bab7e09beac6b7ec2a0b6fefedbe43d593701c0cf460a06e
- What it is
- What a remote MCP server returned when asked what it offers: 2 tools
The blob, as servednamed by its sha256
{
"instructions": "Free GEO scoring by Citead (citead.com), no API key. score_url fetches a public page and scores it; score_text scores text you pass inline (markdown, plain text or HTML). The GEO score (0 to 100) measures how easy the content is for a language model to understand, reuse and cite: information density, quotable sentences, self-contained paragraphs, sourced and dated facts, clear structure, freshness. Naturalness is returned as a criterion but does not count in the score. It is computed by deterministic rules, without a language model: the same content always gets the same score. It does not guarantee that an AI assistant will cite the page. Limits per IP address: 5 scores per minute, 20 per hour, 50 per day. Always give the user the details_url from the result.",
"tools": [
{
"description": "Compute the GEO score of a text with Citead: an article draft, a page copy, markdown, plain text or HTML. Returns the overall score (0 to 100), the score of five criteria (AI citability, naturalness, authority and citations, semantic richness, content organization), the main fixes to apply, and a link to Citead's free live editor. The GEO score (0 to 100) measures how easy the content is for a language model to understand, reuse and cite: information density, quotable sentences, self-contained paragraphs, sourced and dated facts, clear structure, freshness. Naturalness is returned as a criterion but does not count in the score. It is computed by deterministic rules, without a language model: the same content always gets the same score. It does not guarantee that an AI assistant will cite the page. Free, no API key, the text is not stored. Texts under 300 words get a capped score (at most 65).",
"inputSchema": {
"properties": {
"content": {
"description": "The text to score: markdown, plain text or HTML.",
"maxLength": 200000,
"minLength": 1,
"title": "Content",
"type": "string"
},
"language": {
"anyOf": [
{
"enum": [
"en",
"fr"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Language of the text. Omit to detect it. Only English and French have dedicated rules; other languages use the English ones.",
"title": "Language"
},
"title": {
"anyOf": [
{
"maxLength": 300,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Page title. Defaults to the first heading.",
"title": "Title"
}
},
"required": [
"content"
],
"title": "score_textArguments",
"type": "object"
},
"name": "score_text",
"outputSchema": {
"$defs": {
"Criterion": {
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"name": {
"title": "Name",
"type": "string"
},
"score": {
"description": "0 to 100, higher is better.",
"title": "Score",
"type": "number"
}
},
"required": [
"id",
"name",
"score"
],
"title": "Criterion",
"type": "object"
},
"Fix": {
"properties": {
"fix": {
"title": "Fix",
"type": "string"
},
"location": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Location"
},
"priority": {
"description": "high, medium or low.",
"title": "Priority",
"type": "string"
},
"problem": {
"title": "Problem",
"type": "string"
}
},
"required": [
"priority",
"problem",
"fix"
],
"title": "Fix",
"type": "object"
},
"RemainingQuota": {
"properties": {
"day": {
"title": "Day",
"type": "integer"
},
"hour": {
"title": "Hour",
"type": "integer"
},
"minute": {
"title": "Minute",
"type": "integer"
}
},
"required": [
"minute",
"hour",
"day"
],
"title": "RemainingQuota",
"type": "object"
}
},
"properties": {
"criteria": {
"description": "Score of each of the five criteria, 0 to 100. The overall score is computed from sub-signals of four of these criteria plus freshness, with caps for very short content, so it is not their plain average. Naturalness does not count in the overall score.",
"items": {
"$ref": "#/$defs/Criterion"
},
"title": "Criteria",
"type": "array"
},
"details_url": {
"description": "Citead page with the full breakdown. Give it to the user.",
"title": "Details Url",
"type": "string"
},
"geo_score": {
"description": "Overall GEO score, 0 to 100.",
"title": "Geo Score",
"type": "number"
},
"remaining_quota": {
"$ref": "#/$defs/RemainingQuota",
"description": "Free scores left for this IP address in the current windows."
},
"score_meaning": {
"title": "Score Meaning",
"type": "string"
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Title"
},
"top_fixes": {
"description": "Main corrections, most important first.",
"items": {
"$ref": "#/$defs/Fix"
},
"title": "Top Fixes",
"type": "array"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Url"
},
"word_count": {
"title": "Word Count",
"type": "integer"
}
},
"required": [
"geo_score",
"criteria",
"top_fixes",
"word_count",
"details_url",
"score_meaning",
"remaining_quota"
],
"title": "GeoScoreResult",
"type": "object"
}
},
{
"description": "Fetch a public web page and compute its GEO score with Citead. Returns the overall score (0 to 100), the score of five criteria (AI citability, naturalness, authority and citations, semantic richness, content organization), the main fixes to apply, and a citead.com link with the full breakdown. The GEO score (0 to 100) measures how easy the content is for a language model to understand, reuse and cite: information density, quotable sentences, self-contained paragraphs, sourced and dated facts, clear structure, freshness. Naturalness is returned as a criterion but does not count in the score. It is computed by deterministic rules, without a language model: the same content always gets the same score. It does not guarantee that an AI assistant will cite the page. Free, no API key, nothing is stored. Pages behind a login or rendered only by JavaScript may not be fetchable: use score_text with the page text instead.",
"inputSchema": {
"properties": {
"url": {
"description": "Public http(s) URL of the page to score.",
"maxLength": 2048,
"minLength": 4,
"title": "Url",
"type": "string"
}
},
"required": [
"url"
],
"title": "score_urlArguments",
"type": "object"
},
"name": "score_url",
"outputSchema": {
"$defs": {
"Criterion": {
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"name": {
"title": "Name",
"type": "string"
},
"score": {
"description": "0 to 100, higher is better.",
"title": "Score",
"type": "number"
}
},
"required": [
"id",
"name",
"score"
],
"title": "Criterion",
"type": "object"
},
"Fix": {
"properties": {
"fix": {
"title": "Fix",
"type": "string"
},
"location": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Location"
},
"priority": {
"description": "high, medium or low.",
"title": "Priority",
"type": "string"
},
"problem": {
"title": "Problem",
"type": "string"
}
},
"required": [
"priority",
"problem",
"fix"
],
"title": "Fix",
"type": "object"
},
"RemainingQuota": {
"properties": {
"day": {
"title": "Day",
"type": "integer"
},
"hour": {
"title": "Hour",
"type": "integer"
},
"minute": {
"title": "Minute",
"type": "integer"
}
},
"required": [
"minute",
"hour",
"day"
],
"title": "RemainingQuota",
"type": "object"
}
},
"properties": {
"criteria": {
"description": "Score of each of the five criteria, 0 to 100. The overall score is computed from sub-signals of four of these criteria plus freshness, with caps for very short content, so it is not their plain average. Naturalness does not count in the overall score.",
"items": {
"$ref": "#/$defs/Criterion"
},
"title": "Criteria",
"type": "array"
},
"details_url": {
"description": "Citead page with the full breakdown. Give it to the user.",
"title": "Details Url",
"type": "string"
},
"geo_score": {
"description": "Overall GEO score, 0 to 100.",
"title": "Geo Score",
"type": "number"
},
"remaining_quota": {
"$ref": "#/$defs/RemainingQuota",
"description": "Free scores left for this IP address in the current windows."
},
"score_meaning": {
"title": "Score Meaning",
"type": "string"
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Title"
},
"top_fixes": {
"description": "Main corrections, most important first.",
"items": {
"$ref": "#/$defs/Fix"
},
"title": "Top Fixes",
"type": "array"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Url"
},
"word_count": {
"title": "Word Count",
"type": "integer"
}
},
"required": [
"geo_score",
"criteria",
"top_fixes",
"word_count",
"details_url",
"score_meaning",
"remaining_quota"
],
"title": "GeoScoreResult",
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:403c0e1c0ec1a082bab7e09beac6b7ec2a0b6fefedbe43d593701c0cf460a06e | sha256sum