Tool tree
gradeNot graded
page: Every page
evaluate_hashtagsAnswer
Evaluate hashtags a person is thinking of using for a post, against what this index has observed on the Mastodon-compatible servers it monitors. Use this for "which hashtags should I use" questions. If the person asks to COMPARE tags, use compare_hashtags instead: it shows the comparison on the page as well. You supply the candidates (read the draft and propose them yourself; the index stores no post content and cannot judge fit). For each one it returns how many distinct accounts used it in 24 hours, how many servers it reaches, and posts_per_author, so you can tell a conversation from a few accounts posting a lot. standing is tracked, discovered or unseen; read standing_note before quoting a figure, and treat unseen as no evidence, not as unused. Registers nothing and has no side effects. Up to 10 tags.
View tool JSON
{
"name": "evaluate_hashtags",
"kind": "answer",
"impl": "imperative",
"description": "Evaluate hashtags a person is thinking of using for a post, against what this index has observed on the Mastodon-compatible servers it monitors. Use this for \"which hashtags should I use\" questions. If the person asks to COMPARE tags, use compare_hashtags instead: it shows the comparison on the page as well. You supply the candidates (read the draft and propose them yourself; the index stores no post content and cannot judge fit). For each one it returns how many distinct accounts used it in 24 hours, how many servers it reaches, and posts_per_author, so you can tell a conversation from a few accounts posting a lot. standing is tracked, discovered or unseen; read standing_note before quoting a figure, and treat unseen as no evidence, not as unused. Registers nothing and has no side effects. Up to 10 tags.",
"inputSchema": {
"type": "object",
"properties": {
"candidates": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 10,
"description": "Hashtags to evaluate, with or without the leading #."
}
},
"required": [
"candidates"
]
},
"page": "/"
}trending_hashtagsAnswer
Which hashtags are busiest right now among the ones this index is tracking, ranked by distinct authors in the last hour. Each entry has a trend direction against the previous hour that can be not_comparable (coverage shifted, so do not call it up or down) or insufficient (too few authors), plus two recent public posts as evidence. Read scope first: this is a ranking within about 50 tracked tags on a handful of monitored servers, not a fediverse-wide trending list. Read-only, no side effects.
View tool JSON
{
"name": "trending_hashtags",
"kind": "answer",
"impl": "imperative",
"description": "Which hashtags are busiest right now among the ones this index is tracking, ranked by distinct authors in the last hour. Each entry has a trend direction against the previous hour that can be not_comparable (coverage shifted, so do not call it up or down) or insufficient (too few authors), plus two recent public posts as evidence. Read scope first: this is a ranking within about 50 tracked tags on a handful of monitored servers, not a fediverse-wide trending list. Read-only, no side effects.",
"inputSchema": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"default": 5,
"description": "How many tags to return."
}
}
},
"page": "/"
}compare_hashtagsAction
COMPARE two to four hashtags. Use this whenever the person says compare, versus, side by side, or asks which of several tags is busier. It takes the page to /compare?tags=..., a comparison the person can see, link to and share, and returns the same figures to you: accounts and posts over 24 hours, server reach, posts per author, the last hour, and standing (tracked, discovered, unseen) with server-reported counters for unseen tags. A fair comparison needs the tags to have similar standing and the result says when they do not. Registers nothing. After calling, tell the person the comparison is on the page.
View tool JSON
{
"name": "compare_hashtags",
"kind": "act",
"impl": "imperative",
"description": "COMPARE two to four hashtags. Use this whenever the person says compare, versus, side by side, or asks which of several tags is busier. It takes the page to /compare?tags=..., a comparison the person can see, link to and share, and returns the same figures to you: accounts and posts over 24 hours, server reach, posts per author, the last hour, and standing (tracked, discovered, unseen) with server-reported counters for unseen tags. A fair comparison needs the tags to have similar standing and the result says when they do not. Registers nothing. After calling, tell the person the comparison is on the page.",
"inputSchema": {
"type": "object",
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2,
"maxItems": 4,
"description": "Hashtags to compare, with or without the leading #."
}
},
"required": [
"tags"
]
},
"page": "/"
}lookup_hashtagAction
Look up ONE hashtag in depth: posts and distinct accounts over 5 minutes, 1 hour and 24 hours, trend with a comparability flag, which servers contributed, coverage quality (good, partial, thin) and freshness. Read status first: insufficient_data means no reliable figure exists yet and reason says why. Every figure is what this index can see from the servers it monitors, not a fediverse count. SIDE EFFECT: a lookup is a search. It registers the tag as requested and may start collecting it. For several tags, or to check candidates for a post, use evaluate_hashtags, which registers nothing. Moves the page to the tag afterwards.
View tool JSON
{
"name": "lookup_hashtag",
"kind": "act",
"impl": "imperative",
"description": "Look up ONE hashtag in depth: posts and distinct accounts over 5 minutes, 1 hour and 24 hours, trend with a comparability flag, which servers contributed, coverage quality (good, partial, thin) and freshness. Read status first: insufficient_data means no reliable figure exists yet and reason says why. Every figure is what this index can see from the servers it monitors, not a fediverse count. SIDE EFFECT: a lookup is a search. It registers the tag as requested and may start collecting it. For several tags, or to check candidates for a post, use evaluate_hashtags, which registers nothing. Moves the page to the tag afterwards.",
"inputSchema": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "The hashtag, with or without the leading #."
},
"window": {
"type": "string",
"enum": [
"5m",
"1h",
"24h"
],
"default": "24h",
"description": "Which window to headline. All are returned."
}
},
"required": [
"tag"
]
},
"page": "/"
}describe_coverageAnswer
What this index can and cannot see: which servers it monitors and their capability, how tags are chosen, known limitations, and the opt-out route. Call this before making claims about "the fediverse" from any figure here, and when a person asks how much of the network the site covers or how the numbers are produced. Read-only, no side effects.
View tool JSON
{
"name": "describe_coverage",
"kind": "answer",
"impl": "imperative",
"description": "What this index can and cannot see: which servers it monitors and their capability, how tags are chosen, known limitations, and the opt-out route. Call this before making claims about \"the fediverse\" from any figure here, and when a person asks how much of the network the site covers or how the numbers are produced. Read-only, no side effects.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}check_claimAnswer
Before you assert something about a hashtag, submit the claim here and the index will referee it against its own data and coverage rules. claim is one of: rising, falling (checked against comparable hours), busy, quiet (returned as qualified, with the exact sentence the index can stand behind), in_use, unused (unused is always blocked: absence of evidence is not evidence of absence). scope fediverse is always blocked, because no complete view of the network exists. The result is allowed, qualified or blocked, with a reason and may_say, a sentence that is true on the evidence; prefer may_say over your own wording. Read-only, registers nothing.
View tool JSON
{
"name": "check_claim",
"kind": "answer",
"impl": "imperative",
"description": "Before you assert something about a hashtag, submit the claim here and the index will referee it against its own data and coverage rules. claim is one of: rising, falling (checked against comparable hours), busy, quiet (returned as qualified, with the exact sentence the index can stand behind), in_use, unused (unused is always blocked: absence of evidence is not evidence of absence). scope fediverse is always blocked, because no complete view of the network exists. The result is allowed, qualified or blocked, with a reason and may_say, a sentence that is true on the evidence; prefer may_say over your own wording. Read-only, registers nothing.",
"inputSchema": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "The hashtag the claim is about, with or without the leading #."
},
"claim": {
"type": "string",
"enum": [
"rising",
"falling",
"busy",
"quiet",
"in_use",
"unused"
],
"description": "The claim you intend to make."
},
"scope": {
"type": "string",
"enum": [
"index",
"fediverse"
],
"default": "index",
"description": "index: about what this index observes. fediverse: about the whole network."
}
},
"required": [
"tag",
"claim"
]
},
"page": "/"
}