mastodon-mcp-server
A comprehensive MCP (Model Context Protocol) gateway enabling AI assistants to interact with Mastodon instances, supporting both read and write operations across all major API areas:
Instance Information: Retrieve instance metadata (name, description, version, rules).
Account Management: View/update your own profile, look up and search accounts, browse followers/following, follow/unfollow, block/unblock, mute/unmute, and check relationships.
Timelines: Read home, local, public, and hashtag timelines.
Statuses: Fetch statuses and thread context; post new statuses (with content warnings, visibility, media, polls, and reply threading); delete, favourite/unfavourite, reblog/unreblog, bookmark/unbookmark; see who favourited or reblogged.
Notifications: List (with filtering), dismiss individual, or clear all notifications.
Search & Discovery: Search accounts, statuses, and hashtags; view trending tags, statuses, and links; browse the profile directory.
Collections: View your favourited statuses, bookmarked statuses, muted accounts, and blocked accounts.
Lists: Create/delete lists, view/add/remove list members.
Polls: Vote in active polls.
Follow Requests: View, approve, or reject pending follow requests.
Media: Upload image, video, or audio attachments with alt text.
Read-Only Mode: Optionally disable all write operations for safe browsing.
Provides tools for interacting with Mastodon instances, enabling AI assistants to read timelines, post and manage statuses, follow/unfollow accounts, search, and handle notifications, lists, polls, and media.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mastodon-mcp-servershow me my home timeline"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mastodon-mcp-server
A comprehensive MCP (Model Context Protocol) server for Mastodon integration. Enables AI assistants and other MCP clients to interact with Mastodon instances — read timelines, post statuses, manage accounts, search, and more.
Features
Timelines: home, local, public, hashtag
Statuses: post, delete, favourite, reblog, bookmark
Accounts: follow, unfollow, block, mute, relationships, profile update
Notifications: read, dismiss individual or all
Search: accounts, statuses, hashtags
Trending: tags, statuses, links
Lists: create, delete, manage members
Media: upload attachments
Polls: vote
Read-only mode: safe browsing without write access
STDIO and HTTP transports: works with any MCP-compatible client
Related MCP server: X(Twitter) V2 MCP Server
Installation
Debian 13+ / Ubuntu 24+
apt install mastodon-mcp-serverpip
pip install mastodon-mcp-serverFrom source
git clone https://github.com/VitexSoftware/mastodon-mcp-server.git
cd mastodon-mcp-server
pip install -e .Configuration
Copy .env.example to .env and fill in your credentials:
cp .env.example .envVariable | Required | Default | Description |
| yes | — | Mastodon instance URL (e.g. |
| yes | — | OAuth access token |
| no |
| Disable all write operations |
| no |
| Transport: |
| no |
| HTTP transport bind address |
| no |
| HTTP transport port |
| no |
| Disable HTTP session state |
| no |
| Enable verbose logging |
Getting an Access Token
Go to your Mastodon instance → Preferences → Development → New application
Grant required scopes:
read,write,followCopy the Your access token value
Client Setup
Claude Code (CLI)
claude mcp add --scope user mastodon /usr/bin/mastodon-mcp \
-e MASTODON_INSTANCE=mastodon.social \
-e MASTODON_ACCESS_TOKEN=your-token-hereClaude Desktop
~/.config/claude/claude_desktop_config.json:
{
"mcpServers": {
"mastodon": {
"command": "mastodon-mcp",
"env": {
"MASTODON_INSTANCE": "https://mastodon.social",
"MASTODON_ACCESS_TOKEN": "your-token-here"
}
}
}
}Warp Terminal
~/.warp/mcp_config.json:
{
"mcpServers": {
"mastodon": {
"command": "/usr/bin/mastodon-mcp",
"args": [],
"env": {
"MASTODON_INSTANCE": "https://mastodon.social",
"MASTODON_ACCESS_TOKEN": "your-token-here"
}
}
}
}VSCode (GitHub Copilot / Continue)
~/.config/Code/User/mcp.json:
{
"servers": {
"MastodonMCP": {
"type": "stdio",
"command": "/usr/bin/mastodon-mcp",
"args": [],
"env": {
"MASTODON_INSTANCE": "https://mastodon.social",
"MASTODON_ACCESS_TOKEN": "your-token-here"
}
}
}
}HTTP transport (any MCP client)
MASTODON_MCP_TRANSPORT=streamable-http mastodon-mcpUsage
usage: mastodon-mcp [-h] [--version]
Model Context Protocol server for Mastodon integration.
options:
-h, --help show this help message and exit
--version show program's version number and exit
Environment variables:
MASTODON_INSTANCE Mastodon instance URL (required)
MASTODON_ACCESS_TOKEN OAuth access token (required)
MASTODON_MCP_TRANSPORT Transport mode: stdio (default) or streamable-http
MASTODON_MCP_HOST HTTP bind address (default: 127.0.0.1)
MASTODON_MCP_PORT HTTP port (default: 8000)
MASTODON_MCP_STATELESS_HTTP Disable HTTP session state (default: false)
READ_ONLY Restrict to read-only operations (default: true)
DEBUG Enable verbose logging (default: false)Available Tools
Instance
Tool | Description |
| Instance name, description, version, rules |
Accounts
Tool | Description |
| Own profile |
| Account by numeric ID |
| Search accounts by username or display name |
| Posts by an account |
| Social graph |
| Follow management |
| Block management |
| Mute management |
| Relationship to one or more accounts |
| Update own display name, bio, locked status |
Timelines
Tool | Description |
| Home timeline (followed accounts) |
| Local instance public timeline |
| Federated public timeline |
| Statuses with a specific hashtag |
Statuses
Tool | Description |
| Single status by ID |
| Thread ancestors and descendants |
| Post a new status (supports CW, visibility, media, polls) |
| Delete own status |
| Favourite management |
| Boost management |
| Bookmark management |
| Who engaged with a status |
Notifications
Tool | Description |
| List notifications (filterable by type) |
| Dismiss a single notification |
| Clear all notifications |
Search & Discovery
Tool | Description |
| Search accounts, statuses, and hashtags |
| Trending hashtags |
| Trending statuses |
| Trending links/articles |
| Browse the instance profile directory |
Collections
Tool | Description |
| Own favourited statuses |
| Own bookmarked statuses |
| Muted accounts |
| Blocked accounts |
Lists
Tool | Description |
| All lists |
| Accounts in a list |
| Create/delete lists |
| Add/remove list members |
Polls
Tool | Description |
| Vote in a poll |
Follow Requests
Tool | Description |
| Pending follow requests |
| Accept/reject requests |
Media
Tool | Description |
| Upload image/video/audio attachment |
Future Tools (Mastodon.py ≥ 2.x / Mastodon server ≥ 3.5)
The following tools are implemented but commented out in server.py. Uncomment them when your distribution ships python3-mastodon >= 2.0.1 (already available on Debian 13/trixie):
Tool | Requirement |
| Edit a status (server 3.5+) |
| Edit history (server 3.5+) |
| Plain-text source for editing |
| Translate a status (server 4.0+) |
| Direct-message conversations |
| List scheduled posts |
| Reschedule a post |
| Cancel a scheduled post |
| Unread notification count |
Testing
# Offline (tool registration + helper functions + version check)
python3 scripts/test_server.py
# With live instance
MASTODON_INSTANCE=mastodon.social \
MASTODON_ACCESS_TOKEN=your-token \
python3 scripts/test_server.pyArchitecture
The server uses a bundled stdlib-only MCP implementation (mastodon_mcp_server/_mcp.py) so it has no dependency on python3-fastmcp or its deep dependency chain. This makes packaging for Debian/Ubuntu straightforward. The implementation is compatible with the FastMCP decorator API (@mcp.tool()).
Citation
This project is built on Mastodon.py. If you use it in academic work, please cite:
@article{Diener2026,
author = {Diener, Lorenz and Delcourt, Corentin},
title = {Mastodon.py: A Python library for the Mastodon API},
journal = {Journal of Open Source Software},
year = {2026},
volume = {11},
number = {120},
pages = {8946},
doi = {10.21105/joss.08946},
url = {https://doi.org/10.21105/joss.08946}
}See Mastodon.py's CITATION.cff for details.
License
MIT — Vítězslav Dvořák info@vitexsoftware.cz
Available Tools
54 toolsaccount_blockB
Block an account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | Numeric account ID to block. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description fails to disclose behavioral traits like irreversible actions, permissions needed, or effects on existing interactions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (2 words), but lacks necessary details for context. The brevity is acceptable for a simple action, but could benefit from more structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter input and no output schema, the description is minimally complete, though more context about blocking effects would improve it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the schema's parameter description is minimal. The tool description adds no further meaning about the parameter, meeting baseline but not exceeding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Block an account' clearly states the verb (block) and resource (account), effectively distinguishing it from siblings like account_mute or account_unblock.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., account_mute). The description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_followC
Follow an account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | Numeric account ID to follow. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states 'Follow an account' without disclosing any behavioral traits (e.g., whether it sends a follow request, requires authorization, or triggers notifications).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but under-specified; lacks sufficient information to be useful beyond stating the obvious.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing context on response, prerequisites, or effects; not sufficient for a tool with one parameter and no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already describes account_id as 'Numeric account ID to follow.' The description adds no further meaning, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb 'Follow' and the resource 'account', clearly distinguishing it from sibling tools like account_block or account_mute.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., follow_request_authorize for private accounts) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_followersA
Get followers of an account.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (default 40, max 80). | |
| account_id | Yes | Numeric account ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It does not mention authentication requirements, pagination, rate limits, or that it returns a list of account objects. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately conveys the tool's purpose. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no output schema, no annotations), the description is adequate but lacks details such as return format or pagination behavior. It could be more informative without being verbose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already describes both parameters (account_id and limit). The description adds no additional meaning beyond what the schema provides, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get followers of an account' uses a specific verb ('get') and resource ('followers of an account'), clearly distinguishing it from sibling tools like 'account_following' which retrieves accounts the user follows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing followers but provides no explicit guidance on when to use this tool versus alternatives like 'account_following' or 'account_statuses'. No when-not or alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_followingC
Get accounts that a given account follows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (default 40, max 80). | |
| account_id | Yes | Numeric account ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description lacks any behavioral details like pagination, rate limits, authentication needed, or side effects. Carries full burden but fails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise but under-specified; adds no value beyond the tool name. Not verbose but minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple retrieval tool, but description doesn't mention response format, pagination, or any edge cases. Incomplete for practical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with descriptions for both parameters. Description adds no extra meaning, baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get accounts that a given account follows' with a specific verb and resource, distinguishing it from siblings like 'account_followers' and 'account_follow'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, such as when to use account_followers instead. No explicit context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_getB
Get a Mastodon account by its numeric ID.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | Numeric account ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only says 'get' without indicating whether the operation is read-only, idempotent, or if it requires authentication. No mention of side effects, rate limits, or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single short sentence that conveys the core purpose without any extraneous words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET operation with one parameter and no output schema, the description is minimally sufficient. However, it lacks behavioral context (e.g., return format, error conditions) which would be helpful for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a description 'Numeric account ID' in the schema. The tool-level description adds no additional meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get a Mastodon account by its numeric ID', specifying verb, resource, and identifier. It distinguishes from sibling tools like account_search which is for searching by text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as account_search, account_verify, or other account-related tools. The description only states what it does, not when it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_muteC
Mute an account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | Numeric account ID to mute. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states 'Mute an account' without explaining side effects, reversibility, or notification behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence) and contains no redundant information. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, no output schema, no annotations), the description is minimally adequate. However, it lacks details on return values, errors, or expected behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and describes the parameter adequately. The description does not add additional meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Mute) and the resource (an account). It is specific enough but does not differentiate from sibling tools like account_block or account_unmute.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as account_block or account_unmute. Lacks context-specific usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_relationshipsB
Get the authenticated user's relationship to one or more accounts.
| Name | Required | Description | Default |
|---|---|---|---|
| account_ids | Yes | List of numeric account IDs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as authentication requirements, rate limits, or side effects. It does not specify that this is a read-only operation, though it can be inferred.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly conveys the tool's purpose without any extraneous information. It is concise and efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not explain return values or structure. While the purpose is clear, the description could benefit from mentioning what a 'relationship' includes (e.g., following, blocking, muting status). Completeness is average.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; the description adds no additional meaning beyond what the schema already provides for the 'account_ids' parameter. Parameter semantics are adequate but not enhanced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves the relationship between the authenticated user and specified accounts. It uses a specific verb ('Get') and resource ('relationship'), and distinguishes from sibling tools like account_follow which perform actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., account_get or account_follow). It does not mention prerequisites or context for calling this endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_searchC
Search for accounts by username or display name.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (default 10, max 80). | |
| query | Yes | Search string (username or display name). | |
| resolve | No | Whether to resolve non-local accounts (default False). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for disclosing behavior. It only states the input criteria but omits details on matching behavior, case sensitivity, pagination, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks structure and important details. It sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (search with param limit and resolve), the description is incomplete. It does not explain return format, pagination, or how resolve affects behavior, and there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minimal meaning beyond the schema, only reiterating that query searches by username or display name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Search) and resource (accounts) with specific search criteria (username or display name). It generally distinguishes from sibling tools like account_get, but does not differentiate from the generic 'search' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as account_get, search, or account_followers. No context or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_statusesB
Get statuses posted by a specific account.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (default 20, max 40). | |
| account_id | Yes | Numeric account ID. | |
| only_media | No | Only return statuses with media (default False). | |
| exclude_reblogs | No | Exclude reblogs (default False). | |
| exclude_replies | No | Exclude replies (default False). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only says 'Get', implying read-only, but does not disclose authentication needs, rate limits, or other behavioral traits beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wordiness. Front-loaded with the core action. Could be slightly more detailed but remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and missing context about return format, pagination, or ordering. The tool has 5 parameters, yet the description adds no further context beyond the minimum.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptive parameter descriptions. The high-level description adds no additional meaning beyond the schema, so baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Get) and resource (statuses posted by a specific account). It distinguishes from sibling tools like account_follow which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., status_get, status_post) or when not to use it. No context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_unblockB
Unblock an account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | Numeric account ID to unblock. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only says 'Unblock an account' without detailing behavioral traits like side effects, permissions, or what happens after unblocking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no wasted words. Appropriate for a simple action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is adequate but lacks context about the effect of unblocking, e.g., enabling follow/interaction again.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with description. Tool description adds no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Unblock an account,' using specific verb and resource. It distinguishes from sibling tools like account_block, account_mute, account_unfollow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or alternatives, but sibling names imply it's for reversing a block. Lacks explicit when-not or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_unfollowB
Unfollow an account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | Numeric account ID to unfollow. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as side effects, prerequisites, or results of unfollowing a non-followed account.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, but it is slightly too brief for a tool with no annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description lacks details on success behavior, error cases, or preconditions, making it insufficient for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the parameter fully (numeric account ID to unfollow). The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (unfollow) and the resource (account), distinguishing it from related tools like account_follow and account_block.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like account_unblock or account_mute; usage is only implied by the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_unmuteB
Unmute an account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | Numeric account ID to unmute. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description only states 'Unmute an account.' It does not disclose any behavioral traits such as side effects, permission requirements, or state changes beyond the basic action, which is insufficient for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no unnecessary words. While efficient, it could be slightly more informative without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is minimally adequate. However, it lacks mention of the corresponding mute action or any prerequisites, leaving a gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with a single required parameter 'account_id' described as 'Numeric account ID to unmute.' The description adds no additional meaning beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Unmute an account.' uses a specific verb and resource, clearly indicating the action on an account. It distinguishes well from siblings like account_mute, account_block, and account_follow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as account_unblock or account_unfollow. There is no mention of context or exclusions, leaving the agent without decision-making support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_updateA
Update the authenticated account's profile.
| Name | Required | Description | Default |
|---|---|---|---|
| bot | No | Mark account as a bot (True/False). | |
| note | No | New bio/note (profile description). | |
| locked | No | Require approval for follow requests (True/False). | |
| display_name | No | New display name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. 'Update' implies mutation, but details like auth requirements, idempotency, or side effects are absent. Only the base action is conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, zero waste, directly conveys purpose. Excellent conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update tool with no output schema and all parameters documented in schema, the description is adequate but lacks broader context like partial updates or immediate effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all 4 parameters with descriptions, so the description adds no extra meaning. Baseline 3 is appropriate as the schema already documents parameter formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('update') and the target resource ('authenticated account's profile'), distinguishing it from sibling tools like account_get (read) or account_block (block).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus similar tools like account_verify or account_get. The description is minimal and does not provide context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_verifyA
Get the authenticated account's own profile.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description only states it's a read operation. No details on authentication requirements, error states, or rate limits; minimal but not misleading for a simple get tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. Perfectly concise for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool has no parameters and no output schema, the description could be more complete by contrasting with similar tools (e.g., 'account_get') or outlining the return format. As is, it's adequate but lacks contextual richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the description need not add parameter info. Schema coverage is 100%. Baseline of 4 applies per rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (get) and the resource (authenticated account's own profile), distinguishing it from siblings like 'account_get' which likely retrieves another user's profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied—use when you want the authenticated user's own profile—but no explicit guidance on when not to use or alternatives among the many sibling tools that deal with accounts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blocksA
Get accounts blocked by the authenticated account.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (default 40). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses it's a read operation, but lacks details on pagination, rate limits, or return format. Adequate for a simple list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff, directly states purpose. Efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a simple list retrieval with one parameter and no output schema, the description is sufficient. It could mention it returns a list, but it's implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the single parameter 'limit'. Description adds no further meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Get' and resource 'accounts blocked by the authenticated account', distinguishing it from sibling tools like account_block (action) and mutes (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use vs alternatives, but sibling tool names imply it's for retrieval, not action. The description does not provide when-not-to-use or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bookmarksB
Get statuses bookmarked by the authenticated account.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (default 20, max 40). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states 'Get' without revealing side effects, authentication requirements, rate limits, pagination behavior, or other important behavioral traits beyond the schema. This under-disclosure for a tool with no annotations is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It efficiently communicates the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter, the description is adequate but not complete. It does not explain the return format beyond 'statuses', and there is no output schema. However, the tool's purpose is straightforward, and the lack of detail is partially mitigated by common domain knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the single parameter 'limit' with a clear description. The tool description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Get' and the resource 'statuses bookmarked by the authenticated account'. It is distinct from sibling tools like 'favourites' (which retrieves favourited statuses) and 'status_bookmark' (which performs the bookmark action).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description lacks explicit guidance on when to use this tool versus alternatives. It does not mention when not to use it or provide context for selection among sibling tools like 'favourites' or 'status_bookmark'. The usage is implied but not clearly delineated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
directoryB
Browse the profile directory of the instance.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of accounts (default 20, max 80). | |
| local | No | Only show local accounts (default False). | |
| order | No | 'active' (recently active) or 'new' (recently joined). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the action. It does not mention behavioral traits like auth requirements, rate limits, or what the output contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but front-loaded. However, it lacks necessary details, making it too terse rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and simple parameters, the description is minimally adequate but does not fully equip an agent to understand results or defaults.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described. The description adds no extra meaning beyond the schema, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Browse the profile directory of the instance' uses a specific verb and resource, clearly distinguishing the tool from sibling tools like account_search or account_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description lacks explicit context for when or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
favouritesB
Get statuses favourited by the authenticated account.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (default 20, max 40). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. It only states high-level operation without mentioning pagination, rate limits, or ordering behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence, front-loaded with key information, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one well-described parameter, description is adequate. Minor missing details like return type are acceptable given simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 1 parameter with full description (limit: max 40, default 20). Tool description adds no additional meaning beyond schema. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get statuses favourited by the authenticated account.' The verb 'Get' and resource 'statuses favourited' are specific, and it distinguishes from sibling tools like 'status_favourite' (favourite a status) or 'status_favourited_by' (who favourited a status).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Sibling tools include many similar listing tools but no context is provided for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
follow_request_authorizeB
Approve a follow request.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | Numeric account ID of the requester. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose any behavioral traits beyond the action itself. It fails to mention authentication requirements, side effects, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, consisting of a single phrase. However, it may be overly sparse for a tool with no annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and lack of output schema, the description provides minimal context. It does not explain return values or behavior in edge cases, making it only partially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description is adequate. The tool description does not add extra meaning beyond what the schema provides, resulting in a neutral score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'approve' and the resource 'follow request', clearly distinguishing it from siblings like follow_request_reject and follow_requests.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites or context, such as needing to first retrieve pending follow requests.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
follow_request_rejectB
Reject a follow request.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | Numeric account ID of the requester. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits beyond the action itself. Missing details on side effects, permissions, or what happens after rejection (e.g., notification, reversibility).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence with no wasted words, but it could include more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple action with no output schema, the description should at least hint at the result or errors. It only states the action, leaving the agent blind to outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter 'account_id' described as 'Numeric account ID'. The description adds no extra meaning, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb 'Reject' and the resource 'follow request', and it clearly distinguishes from the sibling tool 'follow_request_authorize' which approves requests.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'follow_request_authorize' or when not to use it. The agent gets no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
follow_requestsA
Get pending follow requests for the authenticated account.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (default 40). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It indicates a read operation but lacks details on authentication needs, rate limits, or behavior when no requests exist. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single sentence with key information front-loaded. No unnecessary words, every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with one optional parameter, the description is sufficient. It could mention that it returns a list of follow requests, but overall it provides the essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with a description for the 'limit' parameter. The tool description does not add any additional meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets 'pending follow requests' for the 'authenticated account', using a specific verb and resource. It distinguishes from sibling tools that handle actions like authorizing or rejecting requests.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for viewing pending requests, but does not explicitly state when to use this tool vs alternatives like follow_request_authorize or follow_request_reject. No when-not guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instance_infoA
Get information about the connected Mastodon instance.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as authentication requirements, rate limits, or side effects. It only states the action without additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that quickly communicates the tool's purpose with no extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, yet the description provides no details about what information is returned (e.g., instance title, version, stats). This leaves the agent uninformed about expected output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description adds no parameter information. With zero parameters, the baseline is 4, and the description is adequate for this case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Get' and resource 'information about the connected Mastodon instance', clearly distinguishing from sibling tools focused on accounts, statuses, and other specific entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit when-to-use or when-not-to-use guidance. However, the tool's unique purpose among siblings implies usage for instance information, but lacks direct alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_accountsB
Get accounts in a specific list.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of accounts (default 40). | |
| list_id | Yes | Numeric list ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It fails to mention pagination, ordering, or what information is returned. Only states 'Get accounts', which is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at 5 words, front-loaded with the key action. No superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and lack of annotations, the description is insufficient. It omits details about return format, pagination, and capabilities like filtering or sorting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema; it simply restates the obvious action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'Get' and the resource 'accounts in a specific list'. It distinguishes itself from sibling tools like list_accounts_add and list_accounts_delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention that list_accounts_add should be used for adding accounts, leaving the agent without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_accounts_addC
Add accounts to a list.
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes | Numeric list ID. | |
| account_ids | Yes | List of numeric account IDs to add. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a mutation ('Add accounts') but does not disclose behavioral traits such as whether duplicate account IDs are handled, permission requirements, or rate limits. No annotations are present to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that gets to the point. However, it may be too brief to be fully informative. There is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It does not explain return behavior, error cases, or how the mutation affects the list (e.g., whether accounts must not already be in the list).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides full coverage for both parameters (list_id, account_ids) with descriptions. The tool description adds no additional meaning beyond the schema, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add accounts') and the resource ('a list'), which distinguishes it from sibling tools like list_accounts_delete. However, it is minimal and lacks specificity about the list context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like account_block or account_follow. There is no mention of prerequisites, such as having an existing list, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_accounts_deleteB
Remove accounts from a list.
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes | Numeric list ID. | |
| account_ids | Yes | List of numeric account IDs to remove. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It only states 'Remove accounts from a list' without explaining side effects, permissions, or whether the action is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it could be expanded slightly for clarity without adding fluff. Still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with no output schema or annotations, the description is moderately complete but lacks details on whether accounts are only removed from the list or deleted system-wide.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions for list_id and account_ids. The description adds no further meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Remove' and resource 'accounts from a list', which distinguishes it from siblings like list_accounts_add (add) and list_accounts (list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidelines on when to use this tool versus alternatives. The description does not provide context for appropriate usage or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_createC
Create a new list.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Title of the list. | |
| replies_policy | No | 'followed', 'list', or 'none' (default 'list'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral details. It only states 'create', but does not mention effects like duplicates handling, rate limits, permissions, or return behavior. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single-sentence description is concise and front-loaded. Every word contributes, but it is slightly under-sized; a touch more detail would improve without bloating.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with 2 parameters and no output schema, the description is minimally adequate. It lacks return value information, but given low complexity, this is acceptable but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters ('title', 'replies_policy') described. The description adds no additional meaning beyond the schema, meeting the baseline for full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new list.' clearly states the action (create) and resource (list), effectively distinguishing it from sibling tools like 'list_delete' or 'list_accounts_add'. However, it lacks additional context about what type of list or scope, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. With many list-related siblings (e.g., 'list_accounts_add', 'list_delete'), the description provides no selection criteria or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_deleteB
Delete a list.
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes | Numeric list ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden. It only says 'Delete a list', omitting critical behavioral traits such as irreversibility, cascade effects on list members, required permissions, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (3 words), but it lacks substantive information. While no words are wasted, it is too brief to fully inform an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one param, destructive, no output schema), the description is still incomplete without annotations. Behavioral context like irreversibility or dependencies is missing, reducing its completeness for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (list_id is described as 'Numeric list ID.'), so the baseline is 3. The tool description adds no further meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a list' clearly states the action (delete) and the resource (a list). It distinguishes this tool from sibling tools such as list_create, list_accounts_add, and others, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, or on prerequisites like list ownership or existence. The agent receives no context about appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lists_getA
Get all lists created by the authenticated account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only states 'get lists' but does not disclose any behavioral aspects like pagination, authentication requirements, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with key information, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter retrieval tool, the description is adequate. However, it does not mention pagination or response structure, which could be useful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema covers everything. The description adds no extra meaning, but baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'lists' with scope 'created by the authenticated account'. It effectively distinguishes from sibling tools like list_create or list_accounts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like list_accounts or other list-related tools. The description lacks when/why context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_postB
Upload a media file (image, video, audio) to Mastodon.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Absolute path to the media file to upload. | |
| description | No | Alt text / accessibility description for the media. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description fails to disclose critical behavioral details: file size limits, supported MIME types, authentication requirements, success response (e.g., returns media ID), or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with action and target. No wasted words, though could benefit from slightly more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a media upload tool with no output schema, description is incomplete. Lacks information about return value (media ID), upload constraints, and integration with other tools like status_post.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear definitions for file_path and description. Description adds no extra meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states verb 'upload', resource 'media file', and destination 'Mastodon' with supported types in parentheses. Clearly distinguishes from sibling tools that focus on accounts, statuses, or timelines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like status_post for attaching media. Lacks context about prerequisites (e.g., authentication) or workflow (e.g., upload first, then reference in status).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mutesA
Get accounts muted by the authenticated account.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (default 40). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It indicates a read-only operation but lacks details on pagination, rate limits, return format, or authentication requirements beyond what the schema (limit param) hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core purpose. Every word is necessary and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional param, no output schema), the description is adequate but could be more complete. It doesn't mention the return type (list of accounts), default ordering, or how it differs from similar list tools like 'account_following' or 'blocks'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with 'limit' documented as 'Maximum number of results (default 40).' The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get accounts muted by the authenticated account', using a specific verb and resource. It distinguishes from sibling tools like 'account_mute' and 'account_unmute' which perform actions, not reads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as a read operation to retrieve muted accounts, but provides no explicit guidance on when to use this tool versus alternatives like 'account_following' or 'blocks', nor mentions prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification_dismissA
Dismiss (clear) a single notification.
| Name | Required | Description | Default |
|---|---|---|---|
| notification_id | Yes | Numeric notification ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states 'dismiss' (a write operation) but lacks details on side effects, auth requirements, rate limits, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys the essential information without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple action with one parameter, the description is largely sufficient. However, no output schema or return value info is provided, but given the trivial nature, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of the parameter (numeric notification ID). The tool description adds no extra meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'dismiss' or 'clear' and the resource 'a single notification.' It distinguishes from siblings like notifications_clear (which likely clears all) and notifications_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage: to dismiss one notification. The sibling name notifications_clear suggests a bulk operation, so the distinction is implicit, but no explicit guidance on when to use or when not to use alternatives is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notifications_clearA
Dismiss all notifications for the authenticated account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the basic action without disclosing behavioral traits such as permanence, authentication requirements, or side effects. For a destructive action, more transparency is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the core action. No superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description adequately covers the tool's function. However, it could be enhanced by mentioning the outcome or confirming success, but it is largely complete for a simple action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so schema coverage is 100% by default. According to guidelines, baseline is 4 when no parameters exist. The description adds no parameter info, which is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'dismiss', the resource 'notifications', and the scope 'all for the authenticated account'. It effectively distinguishes from siblings like 'notification_dismiss' which clears a single notification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when wanting to clear all notifications at once, but does not explicitly state when to use versus alternatives like 'notification_dismiss'. No 'when not to use' or alternative references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notifications_getB
Get notifications for the authenticated account.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of notifications (default 20, max 30). | |
| exclude_types | No | Types to exclude: 'follow', 'favourite', 'reblog', |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose behavioral traits like pagination, rate limits, or the nature of the response. Only the basic read action is stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff. However, it could benefit from structured details like output format to improve usefulness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description is too brief to cover the complexity of a notification retrieval tool. Missing details about response structure, pagination, or filtering behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; both parameters are described in the schema. The description adds no additional meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get notifications for the authenticated account' with a specific verb and resource, distinguishing it from sibling tools like notification_dismiss and notifications_clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, such as notification_dismiss or notifications_clear. No context on prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poll_voteC
Vote in a poll.
| Name | Required | Description | Default |
|---|---|---|---|
| choices | Yes | List of choice indices (0-based) to vote for. | |
| poll_id | Yes | Numeric poll ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral traits. It does not disclose side effects like whether votes are reversible, if the voter must not have already voted, or if rate limits apply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (four words) with no redundant information. However, it may be too sparse at the cost of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema), the description is incomplete. It omits important context such as whether the user must be authenticated, if the poll must be active, or if votes can be changed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description adds no additional meaning beyond the schema. It correctly delegates parameter explanation to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Vote in a poll' clearly states the action and resource. It is not a tautology and differentiates from sibling tools, which contain no other poll-related actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool or alternatives. For example, there is no mention that voting typically requires authentication or that it is a one-time action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchC
Search Mastodon for accounts, statuses, and hashtags.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results per category (default 20). | |
| query | Yes | Search string. | |
| resolve | No | Resolve non-local accounts/statuses (default False). | |
| search_type | No | Restrict to 'accounts', 'statuses', or 'hashtags'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the basic function without mentioning any behavioral traits such as read-only nature, rate limits, authentication requirements, or side effects. The description adds minimal transparency beyond the obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with a single sentence that efficiently conveys the tool's purpose. It is appropriately sized and front-loaded, though it could benefit from slightly more structure to separate the general function from parameter hints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters, multiple search types), no output schema, and many siblings, the description is incomplete. It does not explain the return format, default behavior when no search_type is specified, or how results are aggregated across categories. This leaves significant gaps for an agent to correctly invoke and interpret the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, so the schema already documents each parameter's purpose. The description does not add any additional meaning beyond listing the searchable categories, thus providing no extra value for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches Mastodon for accounts, statuses, and hashtags, specifying the verb and resource. However, it does not differentiate from sibling tools like account_search or timeline_hashtag, which have more specific scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It lacks any context about when it is appropriate to use search compared to account_search or timeline tools, leaving the agent without usage decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
status_bookmarkC
Bookmark a status.
| Name | Required | Description | Default |
|---|---|---|---|
| status_id | Yes | Numeric status ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states the action without mentioning side effects (e.g., adding to bookmarks), authorization needs, or idempotency. This is insufficient for an agent to understand impacts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one sentence) but lacks substance; it essentially repeats the tool name. It is concise but not informative, failing to earn its place with meaningful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple bookmarking tool with one required parameter and no output schema, the description is incomplete. It does not confirm the result (e.g., returns the bookmarked status or confirms success) or mention if the action is reversible.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes 'status_id' as 'Numeric status ID.' The description adds no extra meaning, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Bookmark a status.' clearly states the action and resource, but it is essentially a restatement of the tool name without differentiating from siblings like 'bookmarks' (which lists bookmarks) or 'status_unbookmark'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., status_unbookmark for removal, bookmarks for listing). No context is given about prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
status_contextB
Get ancestors and descendants of a status (thread context).
| Name | Required | Description | Default |
|---|---|---|---|
| status_id | Yes | Numeric status ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It only states basic purpose and omits behavioral traits such as authentication needs, error handling, or what happens with non-existent statuses.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately conveys the tool's purpose, with no wasted words. It could benefit from slightly more context but remains concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (one param, no output schema), the description is adequate but lacks details on return format or boundaries. It fully states the tool's core function but nothing more.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (one parameter fully described). The description adds no extra meaning beyond the schema's 'Numeric status ID.' Baseline 3 applies since schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get ancestors and descendants of a status (thread context)' uses a specific verb ('get') and resource ('ancestors and descendants of a status'), clearly distinguishing it from sibling tools like status_get (single status) and timeline tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving thread context but provides no explicit guidance on when to use versus alternatives like status_get, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
status_deleteB
Delete a status posted by the authenticated account.
| Name | Required | Description | Default |
|---|---|---|---|
| status_id | Yes | Numeric ID of the status to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description only notes authorization constraint. Missing details on irreversibility, cascading effects, rate limits, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, zero wasted words, direct and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one parameter and no output schema. Description covers the essential constraint (owned status). Could mention existence check but sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear description of 'status_id'. Description adds no additional meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states verb 'delete', resource 'status', and specifies 'posted by the authenticated account', clearly distinguishing from sibling tools like status_post or status_favourite.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., when to delete vs unfavourite). Description does not mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
status_favouriteB
Favourite (like) a status.
| Name | Required | Description | Default |
|---|---|---|---|
| status_id | Yes | Numeric status ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the action. It does not disclose behavioral traits like idempotency, side effects (e.g., notification to status author), or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at one short sentence. While it wastes no words, it sacrifices completeness for brevity, making it less helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is minimally adequate: it conveys the action and references the parameter. However, it omits context like return value, error cases, or behavior when already favourited.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes the 'status_id' parameter as 'Numeric status ID.' The description adds no further meaning beyond repeating the schema, providing no additional value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Favourite (like) a status') with a specific verb and resource. It immediately distinguishes from the sibling tool 'status_unfavourite', which handles the opposite action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., when to favourite vs unfavourite, or prerequisites like authentication). It fails to set usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
status_favourited_byB
Get accounts that favourited a status.
| Name | Required | Description | Default |
|---|---|---|---|
| status_id | Yes | Numeric status ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states the basic read operation ('Get accounts'), but omits information about pagination, authentication requirements, rate limits, or whether the list is ordered. This leaves the agent without critical operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler words. Every part contributes to the core purpose. It is perfectly front-loaded and wastes no space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is mostly adequate. However, it lacks details about return format, pagination, or error cases. A slightly more complete description might mention that the result is an array of account objects, but the current version is minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% descriptive coverage for the single parameter 'status_id' (described as 'Numeric status ID.'). The description adds no extra meaning beyond what the schema provides, so it meets the baseline expectation for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and a clear resource 'accounts that favourited a status', making the tool's purpose immediately understandable. It distinguishes itself from sibling tools like 'status_favourite' (which performs the action) and 'status_reblogged_by' (which retrieves accounts that reblogged).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. While the purpose is clear, there is no mention of prerequisites, limitations, or suggested contexts. For example, it does not clarify that the status must exist or that the user must have visibility.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
status_getC
Get a single status by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| status_id | Yes | Numeric status ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses no behavioral traits such as authentication requirements, rate limits, error handling (e.g., missing ID), or return format. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no waste. However, it lacks structural elements like separate usage or return-value notes. Given the tool's simplicity, it is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's simplicity (1 param, no output schema), the description is insufficient. It does not mention what is returned (e.g., a status object) or common error scenarios (e.g., ID not found). Contextually incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the parameter status_id is described as 'Numeric status ID.' The description adds no extra meaning beyond the schema; it merely states 'by ID,' which is already evident from the parameter name and schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('status'), and specifies it's a single entity by ID. It is concise and distinguishes from other status tools like status_context or status_favourite, though it doesn't explicitly differentiate from other 'get' tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. With many sibling tools (e.g., status_context, status_favourite), the description does not help an agent decide between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
status_postC
Post a new status (toot).
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Text content of the status. Supports HTML or plain text. | |
| language | No | ISO 639-1 language code (e.g. 'en', 'cs'). | |
| media_ids | No | List of media attachment IDs to attach. | |
| sensitive | No | Mark media as sensitive (default False). | |
| visibility | No | 'public', 'unlisted', 'private', or 'direct' (default 'public'). | |
| spoiler_text | No | Content warning / spoiler text shown before the status. | |
| in_reply_to_id | No | Numeric ID of the status to reply to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description alone must disclose behavioral traits. It only states the basic action without mentioning side effects (e.g., whether posting is idempotent), default visibility (though schema notes default 'public'), or that it requires authentication. The description adds no behavioral context beyond the literal action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence), but at the cost of useful details. It is front-loaded but too brief to be informative. Every word counts, but the lack of structure (e.g., separate when-to-use or behavior sections) reduces clarity for the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters, no output schema, and no annotations, the description is insufficient. It does not explain what the tool returns (likely a status object), potential errors, or whether it is safe to call repeatedly. The agent would need to infer from context or other tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no additional meaning to the parameters beyond what the schema already provides. It does not elaborate on, for example, the format of 'media_ids' or the implications of different visibility options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Post a new status (toot)' clearly states the action (post) and the resource (status/toot). It distinguishes from sibling tools like status_delete or status_favourite, which perform different actions on existing statuses. However, it could more explicitly differentiate from other 'create' tools, but none exist among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as authentication, or when to use other status-related tools. Sibling tools like status_favourite or status_reblog suggest alternative actions, but no explicit comparison is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
status_reblogB
Reblog (boost) a status.
| Name | Required | Description | Default |
|---|---|---|---|
| status_id | Yes | Numeric status ID. | |
| visibility | No | Visibility of the reblog: 'public', 'unlisted', or 'private'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the basic action. It does not disclose effects, reversibility, authentication needs, or any side effects beyond the reblog action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words, directly conveys the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the large set of sibling tools and no output schema, the description is too minimal. It lacks context on when reblogging is appropriate versus other actions, and does not explain the return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond what the schema provides for status_id and visibility.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Reblog (boost) a status', which is a clear verb+resource pair that distinguishes this tool from siblings like status_favourite or status_post.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use or not use this tool compared to alternatives (e.g., status_favourite). No context on prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
status_reblogged_byB
Get accounts that reblogged a status.
| Name | Required | Description | Default |
|---|---|---|---|
| status_id | Yes | Numeric status ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description fails to disclose behavioral traits (e.g., pagination, authentication, rate limits). Only states a basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, highly concise, and directly states the tool's action without any fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description omits critical details like return format (list? paginated?), required auth, and optional parameters (e.g., limit).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and description adds no extra meaning beyond the schema's description of 'status_id' as numeric.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly uses specific verb 'get' and resource 'accounts that reblogged a status', distinguishing it from siblings like 'status_favourited_by'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives or any prerequisites like authentication or pagination.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
status_unbookmarkB
Remove a bookmark from a status.
| Name | Required | Description | Default |
|---|---|---|---|
| status_id | Yes | Numeric status ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It only states the basic mutation but does not disclose any side effects, required permissions, error conditions, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no extraneous words. It is efficiently front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation tool without output schema, the description is adequate but lacks completeness. It does not mention any prerequisites, return values, or error handling, leaving gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the single parameter 'status_id' is already described in the schema). The description adds no additional meaning beyond the numeric ID, meeting the baseline but not exceeding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove') and the resource ('a bookmark from a status'), directly distinguishing it from sibling tools like 'status_bookmark' (add) and 'bookmarks' (list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., 'status_bookmark' or 'bookmarks'). The description assumes the agent knows that this is the inverse of bookmarking, but does not provide contextual cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
status_unfavouriteB
Remove a favourite from a status.
| Name | Required | Description | Default |
|---|---|---|---|
| status_id | Yes | Numeric status ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a mutation but does not disclose side effects, idempotency (e.g., what if already unfavourited), or any required permissions. With no annotations, more behavioral context is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It could be slightly more informative without increasing length significantly, but it is well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is adequate but lacks behavioral context that would help an agent fully understand the action's implications.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description 'Numeric status ID.' is sufficient. The tool description does not add additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Remove' and the resource 'favourite from a status', which distinguishes it from sibling tools like 'status_favourite' (add favourite) and other status actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives, such as checking if the status is already favourited or prerequisites like the existence of the status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
status_unreblogB
Remove a reblog (unboost) of a status.
| Name | Required | Description | Default |
|---|---|---|---|
| status_id | Yes | Numeric status ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states basic action without disclosing side effects, authentication requirements, rate limits, or behavior if status is not reblogged. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, short sentence that is concise and front-loaded. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is mostly complete. However, it lacks context about usage context (e.g., when this action is valid). Minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter status_id described as 'Numeric status ID.' Description adds no extra meaning beyond schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Remove a reblog (unboost) of a status.' It uses a specific verb and resource, and distinguishes from sibling tools like status_reblog (add) and status_favourite (different action).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use versus alternatives. Does not mention prerequisites (e.g., must already be reblogged) or when not to use. Sibling tool status_reblog is the obvious counterpart but no explicit differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timeline_hashtagB
Get statuses with a specific hashtag.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of statuses (default 20, max 40). | |
| local | No | Only show statuses from the local instance (default False). | |
| hashtag | Yes | Hashtag to search (without the # prefix). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as authentication requirements, return format, or whether results are public or from the home timeline. The description is too brief to inform safe usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence, which is concise and front-loaded with the key information. However, it could be slightly more descriptive without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description is incomplete. It does not explain expected return values, pagination, or the scope of statuses (e.g., public vs. home). With many sibling tools, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond what the schema already provides for limit, local, and hashtag.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'statuses', and the specific filter 'hashtag'. It distinguishes from sibling timeline tools like timeline_home, timeline_local, and timeline_public which do not filter by hashtag.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like search, trending_tags, or other timeline tools. There is no mention of appropriate contexts or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timeline_homeB
Get the authenticated user's home timeline.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of statuses (default 20, max 40). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior, but it only states 'Get' without mentioning read-only nature, pagination, or what is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, no wasted words, and front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no output schema, the description should at least mention it returns statuses, but it omits this basic context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'limit', and the description adds no extra meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'authenticated user's home timeline', distinguishing it from siblings like timeline_public and timeline_local.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as timeline_public or timeline_hashtag, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timeline_localA
Get the local (instance) public timeline.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of statuses (default 20, max 40). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry full burden. It only states the action (get) without mentioning authentication requirements, rate limits, or other behavioral traits such as whether it requires a token (likely yes for Mastodon API).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no extraneous words, perfectly sized for a simple read tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 param, no output schema), the description covers the core functionality adequately. However, it does not mention the return type (list of status objects) or any pagination details, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (limit) with full description (default 20, max 40), achieving 100% schema coverage. The tool description adds no additional meaning beyond the schema, so baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'local (instance) public timeline', distinguishing it from siblings like timeline_home and timeline_public which likely show home or federated timelines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for local instance posts via the word 'local', but does not explicitly state when to use this tool versus alternatives (e.g., timeline_home, timeline_hashtag) or provide any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timeline_publicC
Get the federated public timeline.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of statuses (default 20, max 40). | |
| remote | No | Only show remote statuses (default False). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully convey behavioral traits. It does not disclose authentication requirements, rate limits, pagination, or whether the data is read-only. The term 'federated' and 'public' gives some hint, but critical details are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence without fluff. It could be improved by adding more context without becoming verbose, but it is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema and only 2 parameters with good schema descriptions, the description is insufficient. It does not explain the return type (list of statuses), ordering, or any side effects, leaving the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters (limit, remote) described in the schema. The description adds no extra semantic value beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'federated public timeline,' which identifies the tool's function. It distinguishes from siblings like timeline_home and timeline_local by specifying 'federated' and 'public,' but does not explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like timeline_home or timeline_hashtag. There is no mention of context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trending_linksB
Get trending links (articles) on the instance.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of links (default 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must bear the burden of disclosing behavioral traits. It only states it 'gets' trending links, with no mention of rate limits, authentication, data freshness, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence (8 words) that immediately conveys the tool's purpose. It could include structured context but is efficiently front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (1 param, no output schema), the description is barely adequate. It does not explain the response format, how to use the limit parameter effectively, or any usage context. The agent may need to infer basic behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the only parameter 'limit' has a description). The tool description does not add any additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'trending links (articles)' and distinguishes from sibling tools like 'trending_tags' and 'trending_statuses' by specifying 'links (articles)'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., trending_tags, trending_statuses) or any prerequisites. It lacks context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trending_statusesC
Get trending statuses on the instance.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of statuses (default 20). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior, but it only states a read operation. It omits details like authentication requirements, rate limits, pagination, or what defines 'trending'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence), but this brevity sacrifices useful context. It is front-loaded but could be more informative without adding length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one parameter, the description is minimally adequate, but lacks details on return format or pagination behavior that would help an agent use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter 'limit' is already described in the schema. The description adds no additional meaning or constraints beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('trending statuses'), and specifies the scope ('on the instance'). It does not explicitly differentiate from sibling tools like trending_links or trending_tags, but the resource is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as trending_tags or timeline tools. There is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trending_tagsC
Get trending hashtags on the instance.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of tags (default 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It only states the basic action, omitting any info on auth requirements, rate limits, data freshness, or side effects. This is insufficient for a tool that likely requires authentication and has potential quota implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff. It lacks structure (e.g., sections), but given the tool's simplicity, brevity is appropriate. One could argue for a 5, but front-loading of key information is adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal—no output schema, so the agent has no hint about the response format (e.g., list of tag objects). It does not mention scoping (e.g., instance-wide vs. user-specific). For a simple tool, some information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema—'limit' is already described as 'Maximum number of tags (default 10).' No extra semantics or validation rules are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('trending hashtags on the instance'). It distinguishes from sibling tools like trending_links and trending_statuses by mentioning hashtags specifically, leaving no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., trending_links). There are no prerequisites, conditions, or exclusions mentioned, so the agent must infer context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
54 tool updates
v1.0.1- First observed
account_block - First observed
account_follow - First observed
account_followers - First observed
account_following - First observed
account_get - First observed
account_mute - First observed
account_relationships - First observed
account_search - First observed
account_statuses - First observed
account_unblock - First observed
account_unfollow - First observed
account_unmute - First observed
account_update - First observed
account_verify - First observed
blocks - First observed
bookmarks - First observed
directory - First observed
favourites - First observed
follow_request_authorize - First observed
follow_request_reject - First observed
follow_requests - First observed
instance_info - First observed
list_accounts - First observed
list_accounts_add - First observed
list_accounts_delete - First observed
list_create - First observed
list_delete - First observed
lists_get - First observed
media_post - First observed
mutes - First observed
notification_dismiss - First observed
notifications_clear - First observed
notifications_get - First observed
poll_vote - First observed
search - First observed
status_bookmark - First observed
status_context - First observed
status_delete - First observed
status_favourite - First observed
status_favourited_by - First observed
status_get - First observed
status_post - First observed
status_reblog - First observed
status_reblogged_by - First observed
status_unbookmark - First observed
status_unfavourite - First observed
status_unreblog - First observed
timeline_hashtag - First observed
timeline_home - First observed
timeline_local - First observed
timeline_public - First observed
trending_links - First observed
trending_statuses - First observed
trending_tags
TDQS
Most tools have distinct purposes, but some pairs like 'blocks' vs 'account_block' and 'bookmarks' vs 'status_bookmark' could confuse an agent since they differ only by verb/noun form. Descriptions help clarify, but ambiguity remains.
Naming patterns are inconsistent: some use resource_action (e.g., 'account_block'), others use standalone nouns for list operations (e.g., 'blocks', 'bookmarks'), and 'lists_get' mixes styles. This lack of a uniform pattern makes it harder to predict tool names.
54 tools is high but reasonable for covering a complex social API like Mastodon. Each tool serves a distinct function, though some consolidation could reduce the count without losing functionality.
The toolset covers core CRUD for accounts, statuses, and lists, but misses some features like poll creation, status editing, media deletion, and direct message handling. These gaps could cause agent failures in tasks requiring full API coverage.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for AI dialogue using various LLM models via AceDataCloud
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Related MCP Servers
- AlicenseAqualityFmaintenanceAn MCP server that enables AI assistants to access and interact with Reddit content through features like user analysis, post retrieval, subreddit statistics, and authenticated posting capabilities.15299MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for interacting with the Twitter/X API v2, enabling AI assistants to retrieve tweets, post content, reply, quote, and more programmatically.2,01313MIT
- AlicenseAqualityAmaintenanceA comprehensive MCP server that enables LLMs like Claude to explore and interact with the existing Fediverse through standardized MCP tools, resources, and prompts.1811717MIT
- AlicenseBqualityAmaintenanceAn MCP server that enables AI assistants to interact with Twitter/X through a single authenticated session without an official API key, providing 27 tools for reading and writing tweets, user management, timeline access, trends, and direct messages.271MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/VitexSoftware/mastodon-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server