Meta Social Technologies MCP Server
Provides tools for Facebook Pages, including profile retrieval, publishing text and photo posts, fetching recent posts, reading and replying to comments, and liking comments.
Provides tools for Instagram Business/Creator accounts, including publishing photos and Reels, sending DMs with text, images, PDFs, and audio voice notes, message reactions, quoted replies, interactive templates, follower-gated comment funnels, chat moderation, and account/media insights.
Provides tools for the Threads API, including profile retrieval, publishing text/photo/video posts, fetching recent posts, replying to thread conversations, and retrieving insights.
Click on "Deploy 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., "@Meta Social Technologies MCP ServerPublish a photo to Instagram with the caption 'Launch day!'"
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.
Meta Social Technologies MCP Server & Automation Suite
An enterprise-grade Model Context Protocol (MCP) server and AI automation engine for Facebook Pages and Instagram Business/Creator accounts (
@in.yogeshwar). Build ManyChat & Superprofile-style comment funnels, send audio voice notes, trigger double-tap heart reactions, execute threaded quoted replies, and publish content seamlessly using AI agents.
šØāš» Author & Attribution
Developer: Yogeshwar Kumar
GitHub: @inyogeshwar
YouTube Guide: Integrate FB Page + Instagram (Lifetime Permanent Access Token)
Target Profiles: Facebook Page
In.yogeshwar& Instagram@in.yogeshwar
Related MCP server: meta-mcp
ā” Core Features
š¢ Publishing: Facebook status updates, photo posts, Instagram photos, and Instagram Reels (MP4).
š¬ Direct Messaging: Deliver text, images, PDF files, and audio voice notes (
.m4a,.wav,.aac).šļø Voice Notes & Audio: Strict adherence to Meta container specifications with zero-reupload via
upload_reusable_attachment.ā¤ļø Message Reactions: Trigger double-tap heart (
ā¤ļø), fire (š„), thumbs-up (š), or remove reactions on any message ID.šÆ Threaded Quoted Replies: Quote specific messages in Instagram DMs using
reply_tomessage ID.š Follow-to-Unlock Growth Funnel: Automated ManyChat-style funnel that checks follower status before unlocking exclusive download links.
ā” Interactive Templates: Quick reply pills, button action cards, and horizontal scrollable generic carousels.
š ļø Chat Moderation: Ice Breakers FAQ configuration, Persistent composer menu, and
ig.metracking link generator.š Analytics: Real-time account and media-level reach, saves, and interaction insights.
šļø Architecture
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā AI Agent (Google Antigravity / Claude) ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā (JSON-RPC over Stdio)
āāāāāāāāāāāāāāāāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā meta-social-technologies-mcp Server ā
ā (server.js) ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā (HTTPS REST v26.0)
āāāāāāāāāāāāāāāāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Meta Graph API ā
ā āāāāāāāāāāāāāāāāāāāāāā“āāāāāāāāāāāāāāāāāāāāā ā
ā ā¼ ā¼ ā
ā Facebook Page Instagram ā
ā (In.yogeshwar) (@in.yogeshwar) ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāš§° Complete Tool Catalog (32 Tools across Facebook, Instagram & Threads)
Category | Tool Name | Description |
Profile |
| Profile details and fan count for Facebook Page. |
| Bio, follower count, and media stats for | |
| Look up username, profile photo, and follower status of any chatter. | |
Publishing |
| Publish text status and links to Facebook Page. |
| Post photo with caption to Facebook Page. | |
| Post image with caption and hashtags to Instagram. | |
| Post video reels with caption to Instagram feed. | |
| Fetch recent Facebook posts. | |
| Fetch recent Instagram media posts and reels. | |
Comments |
| Read comments on a specific post or reel. |
| Post a public reply to any comment. | |
| Like a comment on behalf of | |
Direct DMs |
| Send text, PDF, image, or M4A/WAV audio. Supports |
| Send a private DM in response to a user's comment. | |
| Double-tap heart ( | |
Funnel |
| Check if a chatter follows |
| Complete ManyChat-style keyword auto-reply & follow-gated DM delivery. | |
Interactive |
| Trigger |
| Interactive pill buttons (up to 13 buttons). | |
| Structured text with up to 3 action buttons. | |
| Scrollable carousel cards with images and links. | |
| Send messages outside the 24-hr window up to 7 days ( | |
| Pre-upload media to get reusable | |
Chat UX |
| List active DM conversations and unread counts. |
| Read message history in a conversation thread. | |
| Get, set, or delete FAQs for new chatters. | |
| Configure permanent composer bottom menu. | |
| Generate | |
Analytics |
| Account reach, profile views, and impressions. |
| Reach, saves, and interaction metrics for posts. | |
Threads API |
| Bio, username, and stats for |
| Publish text (up to 500 chars), photos, or video threads. | |
| Fetch recent published threads and permalinks. | |
| Post automated replies to thread conversations. | |
| Pull views, likes, replies, and reposts metrics. |
š Quickstart & Setup
1. Installation
Clone the repository or navigate to its directory:
git clone https://github.com/inyogeshwar/meta-social-technologies-mcp.git
cd meta-social-technologies-mcp2. Configure Environment Variables
Copy .env.example to .env:
cp .env.example .envFill in your credentials:
FB_PAGE_ACCESS_TOKEN=your_permanent_page_token
FB_PAGE_ID=your_page_id
INSTAGRAM_ID=your_instagram_id(See docs/PERMANENT_TOKEN_GUIDE.md for how to generate a lifetime permanent token).
3. Add to Antigravity MCP Config
Add to %USERPROFILE%\.gemini\config\mcp_config.json:
{
"mcpServers": {
"meta_social_technologies": {
"command": "node",
"args": [
"D:\\meta-social-technologies-mcp\\server.js"
],
"env": {
"FB_PAGE_ACCESS_TOKEN": "YOUR_TOKEN",
"FB_PAGE_ID": "YOUR_PAGE_ID",
"INSTAGRAM_ID": "YOUR_INSTAGRAM_ID"
}
}
}
}4. Run the Test Suites
# Verify Page & Instagram connectivity
npm test
# Verify text DM & audio voice note delivery
npm run test:messaging
# Verify double-tap heart & quoted reply
npm run test:reactionsš License
This project is licensed under the MIT License Ā© 2026 Yogeshwar Kumar.
Available Tools
35 toolscheck_user_follows_accountA
Check whether an Instagram user follows @in.yogeshwar (Follower Verification).
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Instagram User ID (IGSID). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Check' implies a read-style operation and the target account is named, but the description does not disclose authentication requirements, rate limits, error behavior, or return semantics, leaving important behavioral traits undocumented.
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, front-loaded sentence with no redundant text. Every part of the sentence contributes to identifying the operation and the target account.
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 one-parameter check tool, the core purpose is clear. However, with no annotations and no output schema, the description does not state the return shape or edge-case behavior, so an agent must infer what a successful response looks like.
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% description coverage for the single user_id parameter, including that it is an Instagram User ID (IGSID). The description adds no parameter-specific meaning beyond what the schema already provides, so the 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 states a specific verb and resource: checking whether an Instagram user follows a named account, @in.yogeshwar. This is clearly distinct from the sibling profile-getting and publishing tools because it verifies a follow relationship rather than returning profile/content data.
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 parenthetical 'Follower Verification' implies the use case, but the description does not explicitly state when to use the tool, prerequisites, or exclusions. The sibling list has no direct alternative for this check, so the missing alternative guidance is less harmful, but usage remains implied rather than specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_ig_me_linkA
Generate an ig.me short link (https://ig.me/m/in.yogeshwar?ref=...) that opens Instagram DMs directly with a tracking/referral payload.
| Name | Required | Description | Default |
|---|---|---|---|
| ref_payload | No | Optional referral code/tag (e.g., "free_guide", "bio_link", "yt_video"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the output URL format and that the link embeds a tracking/referral payload, which is useful, but it does not mention authentication requirements, link lifetime, whether tracking is recorded, or what exactly is returned beyond an example URL.
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 definition is a single front-loaded sentence with no wasted words. It puts the core action and output format first and includes only essential context.
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 one-parameter utility with no output schema, the description is mostly sufficient to invoke the tool, but it leaves gaps around usage context and runtime behavior. It should clarify when to choose this over sending a direct message and what the returned value actually looks like.
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 single optional ref_payload parameter is already documented in the schema. The description reinforces its purpose by showing a ref example in the URL, but it adds no syntax or semantic detail beyond what the schema 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 gives a specific verb ("Generate"), a precise resource ("ig.me short link"), and clarifies its behavior (opens Instagram DMs with a tracking/referral payload). This clearly distinguishes it from siblings like send_instagram_dm, which sends a message rather than generating a link.
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 explains what the link does but does not say when an agent should use this tool versus alternatives such as send_instagram_dm or other messaging tools. No prerequisites, exclusions, or contextual guidance are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_conversation_messagesB
Fetch messages within a specific conversation thread on Instagram.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max messages to fetch (default: 10). | |
| conversation_id | Yes | ID of the conversation thread. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, yet it says nothing beyond 'fetch': no ordering (newest-first?), no pagination/cursor behavior, no scoping to accounts the token can access, no failure modes. Only the word 'Fetch' hints at read-only semantics.
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 clean, front-loaded sentence with no filler or repetition. Its brevity is efficient, though it reflects under-specification rather than tight editing of rich 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 two-parameter read tool with no output schema, the description is minimally adequate. It omits message ordering and pagination, which an agent needs to page through a long thread 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 description coverage is 100% ā conversation_id and limit (default 10) are both documented in the schema, so the baseline is 3. The description adds no extra meaning such as where conversation_id comes from or whether limit caps total retrieval.
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?
States a specific verb (fetch) and resource (messages within a conversation thread) plus the platform (Instagram). It implicitly separates itself from the sibling get_conversations by scoping to one thread, but never names that sibling explicitly.
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 only implied: an agent can infer this is the read tool for message history inside a thread, but there is no explicit 'use this when...' or reference to get_conversations as the way to discover a conversation_id first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_conversationsB
Fetch active Instagram direct message conversations/threads, participant IDs, and unread counts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max number of threads to fetch (default: 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden: it does disclose that only active threads are returned and that the payload includes participant IDs and unread counts, which is useful scope information. It says nothing about ordering, pagination behavior tied to limit, or permissions required, so the read-side behavioral profile is only partially covered.
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, front-loaded with the verb and resource, with the returned data appended. No padding, though it is arguably under-specified rather than maximally 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?
There is no output schema and no annotations, so the description must carry the return shape, which it partly does. It omits ordering, what 'active' means, and how this relates to get_conversation_messages, leaving meaningful gaps for a slight 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?
Schema description coverage is 100% and the single limit parameter is fully documented in the schema, so the baseline of 3 applies. The description adds no semantics about what limit counts or whether threads are ordered.
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?
States a specific verb and resource ('Fetch active Instagram direct message conversations/threads') and lists what comes back (participant IDs, unread counts). It is clear on its own, but never names or contrasts with the close sibling get_conversation_messages, which is the main ambiguity an agent faces.
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 only implied by the word 'active' and by the phrase 'conversations/threads'; there is no explicit statement of when to call this versus get_conversation_messages or the send_instagram_dm family. The alternative is inferable from the sibling list but not from the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_facebook_postsB
Fetch recent posts published on the Facebook Page In.yogeshwar.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max number of posts to fetch (default: 5). |
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 does disclose that the target page is fixed (no page selector needed) and that posts are returned in recency order, which is real behavioral context, but it says nothing about pagination, rate limits, or result shape.
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 front-loaded sentence with no filler and the key scoping fact (the specific page) placed immediately. It is efficient, though its brevity borders on under-specification rather than tightness.
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 read tool with no annotations and no output schema, the description covers who and what but omits anything about the shape or ordering of returned posts beyond the word 'recent'. Adequate to invoke, thin on expectations.
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% and the sole parameter (limit, default 5) is fully documented in the schema. The description adds no syntax or default detail beyond that, 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?
States a specific verb (fetch) and resource (recent posts) and pins the target to a named Facebook Page, so the agent knows exactly what data comes back. It does not compare itself to platform-sibling reads like get_instagram_media or get_threads_posts, but the platform distinction is self-evident from the name.
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 when-to-use guidance, no mention of alternatives, and no stated prerequisites. The agent must infer it is a read-only retrieval for the fixed page, and nothing tells it what to do if zero posts exist or when to prefer another tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_instagram_account_insightsA
Fetch account-level metrics (reach, content interactions, accounts engaged) for @in.yogeshwar.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time period for insights (default: "day"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full behavioral burden; it does disclose the concrete metric set returned, which is genuinely useful. However, it says nothing about permissions/authorization needed, rate limits, data freshness, or the granularity of the returned values, and the hardcoded handle leaves unclear whether the tool works only for that one 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?
One sentence, front-loaded with the verb and resource, with zero filler. The enumerated metrics earn their place by telling the agent what comes back.
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 single-parameter, read-only insights tool with no output schema, the description supplies the key missing piece: what metrics are returned. It falls short only in not clarifying whether the account handle is fixed (i.e. whether the tool can target other accounts) or mentioning period-selection 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% and the single period parameter has an enum plus a documented default, so the schema does the heavy lifting. The description adds nothing about period semantics (e.g. what a 28-day window returns or how the metric totals change), so the 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?
States a specific verb ("Fetch") and a precisely scoped resource ("account-level metrics") and enumerates the metrics returned (reach, content interactions, accounts engaged). The word "account-level" implicitly contrasts it with the sibling get_instagram_media_insights, though that sibling is never named.
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 explicit when-to-use or when-not-to-use guidance, and no alternative tool is named. The "account-level" phrasing implies the usage context (account-wide rather than per-media insights), but an agent must infer the choice against get_instagram_media_insights and get_instagram_profile.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_instagram_mediaB
Fetch recent media (posts/reels) published on Instagram account in.yogeshwar.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max number of media items to fetch (default: 5). |
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 implies a read-only fetch and narrows media to posts/reels, but does not disclose pagination behavior, ordering, permissions, rate limits, or return shape for a media-listing 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 description is a single front-loaded sentence with no wasted words. It efficiently identifies the resource and scope.
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 one-parameter fetch tool with no output schema and no annotations, the description gives the core resource. However, it does not clarify whether the account is fixed, what fields are returned, or how results are ordered, leaving some contextual 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 description coverage is 100%, and the single optional limit parameter is fully documented in the schema with its default. The description adds no parameter meaning beyond the schema, so the 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 states a specific verb and resource: fetching recent Instagram media, explicitly posts/reels, for a named account. It is clear what the tool does, though it does not explicitly differentiate itself from siblings like get_instagram_media_insights.
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 explicit guidance on when to use this tool versus alternatives such as get_instagram_media_insights, get_instagram_profile, or get_facebook_posts. The intended use is implied by 'Fetch recent media,' but no conditions 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.
get_instagram_media_insightsA
Fetch post/reel metrics (reach, saved count, total interactions) for a specific Instagram post.
| Name | Required | Description | Default |
|---|---|---|---|
| media_id | Yes | Instagram Media ID of the post or reel. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It discloses the returned metrics and implies a read-style fetch operation, but does not mention permissions, rate limits, ownership constraints, or error 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 a single efficient sentence with the core action and returned metrics front-loaded. Every phrase contributes useful information without waste.
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 one-parameter read tool with no output schema, the description is reasonably complete: it names the entity and summarizes the returned metrics. It could be stronger with a note on account ownership or metric freshness, but the core call context is present.
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 is only one parameter, media_id, and the schema description coverage is 100%. The description reinforces that it applies to a specific Instagram post or reel, but adds no syntax or format details 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?
The description states a specific verb and resource: fetching post/reel metrics for a specific Instagram post. It names representative metrics, which makes the tool's purpose clear. It does not explicitly name sibling tools like get_instagram_account_insights, so differentiation is implicit rather than explicit.
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 the tool is used when per-post or per-reel metrics are needed. However, it does not state when to use this instead of get_instagram_media or get_instagram_account_insights, nor does it give exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_instagram_profileB
Get profile info, followers count, bio, and media count for Instagram account in.yogeshwar.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It partially meets it by enumerating what is returned, which is valuable given there is no output schema, but it omits whether the account is hardcoded, whether auth is required, and whether it counts only this specific handle.
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 compact sentence with the return fields front-loaded and no filler. The phrasing 'in.yogeshwar' inside the sentence is slightly awkward but not wasteful.
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 parameters and no output schema, the description covers the return contents, which is the main need. It still leaves an agent unsure whether the account is configurable and how this differs from the other profile tools, which is a meaningful gap in a 35-tool server.
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 declares zero parameters, so there is nothing for the description to disambiguate, and 4 is the baseline for parameterless tools. The mention of 'in.yogeshwar' usefully signals the account is fixed rather than caller-supplied.
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 names a specific verb and resource ('Get profile info... for Instagram account') and enumerates the returned fields (followers count, bio, media count). It does not differentiate itself from the similarly purposed siblings get_user_profile, get_page_profile, or get_threads_profile, so it lands at 4 rather than 5.
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 statement about when to use this tool versus get_user_profile, get_instagram_account_insights, or get_instagram_media. The only implicit guidance is the account handle 'in.yogeshwar', which is not framed as a selection condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_media_commentsB
Fetch comments for an Instagram post or reel with commenter details and like counts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max comments to retrieve (default: 15). | |
| media_id | Yes | The ID of the Instagram post or reel. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose useful response content ā commenter details and like counts ā which substitutes for the absent output schema, but says nothing about ordering, pagination behavior, permission/auth requirements, or rate limits for a read endpoint.
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 filler; the resource and payload summary both earn their 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 two-parameter read tool with full schema coverage and no output schema, the description is largely sufficient, covering what is fetched and what is returned. The only shortfall is silence on pagination/ordering behavior when pulling comments.
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%, including the limit default of 15 and the media_id definition, so the schema already does the heavy lifting. The description adds no additional semantics about how limit interacts with paging or what media_id accepts 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?
States a specific verb (fetch) and resource (comments) scoped to Instagram posts or reels, and names what the payload contains (commenter details, like counts). It is distinguishable from siblings like get_instagram_media or get_conversation_messages, though it never explicitly contrasts with 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?
There is no explicit when-to-use guidance, no prerequisites, and no mention of alternatives (e.g., reply_to_comment for responding, get_instagram_media for listing posts). Usage is only inferable from the object being fetched.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_profileB
Get profile details, followers, and information for Facebook Page In.yogeshwar.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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, yet it discloses nothing beyond the bare read intent ('Get' implies non-mutating). It does not say what 'information' comprises, whether follower counts are paginated, whether the page is fixed to 'In.yogeshwar', or what the response looks like.
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?
It is a single short sentence with no filler, which is good. However, embedding a specific page name ('In.yogeshwar') in the description is a structural defect: it reads as a leftover artifact and makes the tool look narrower than its name suggests.
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 zero-parameter read tool with no output schema, the description should at least enumerate the categories of returned data and confirm the target page is fixed. It gestures at 'profile details, followers, and information' but leaves the return shape and the fixed-vs-dynamic target ambiguous.
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 tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description's hardcoded page name at least signals that the target is implicit rather than passed in.
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?
States a specific verb ('Get') and resource ('profile details, followers, and information for Facebook Page'), and the 'Facebook Page' qualifier distinguishes it from get_instagram_profile, get_user_profile, and get_threads_profile. The hardcoded page name 'In.yogeshwar' is odd and slightly muddies whether the tool targets a fixed page or any page, but the core purpose is legible.
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 only implied: an agent can infer it should call this when it needs Facebook Page profile/follower data, but the description never states when to prefer it over get_user_profile or get_instagram_profile, nor any prerequisites. Minimum viable with clear gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_threads_insightsA
Fetch insights (views, likes, replies, reposts, quotes) for a specific thread or the Threads profile.
| Name | Required | Description | Default |
|---|---|---|---|
| thread_id | No | Optional Thread ID. If omitted, fetches account-level metrics. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the metrics returned (views, likes, replies, reposts, quotes), which is helpful, but it does not state that the operation is read-only, nor does it mention authentication requirements, rate limits, or other behavioral traits.
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, front-loaded sentence with no wasted words. It efficiently conveys the core information an agent needs to know at a glance.
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 parameter, no output schema, no annotations), the description is largely complete: it states what insights are fetched and for what scope. It could be improved by mentioning read-only nature or required permissions, but for a basic insights retrieval tool it covers the essentials.
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 schema already fully documents the single parameter thread_id. The description adds no syntax, format, or additional meaning beyond what the schema provides, making the baseline score of 3 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 specifies a clear verb ('Fetch') and resource ('insights ... for a specific thread or the Threads profile') and lists the metrics returned. It does not explicitly differentiate itself from sibling tools like get_threads_profile or get_instagram_media_insights, but the scope is unambiguous.
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 it when you need insights for a thread or profile. However, there is no explicit guidance on when to use this tool versus alternatives (e.g., get_threads_profile, get_instagram_media_insights) and no when-not conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_threads_postsC
Fetch recent published threads and posts for @in.yogeshwar.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of recent threads to retrieve (default: 5). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It hints that only published (not draft) content is returned, but says nothing about auth requirements, pagination, ordering, or what a "thread" versus a "post" looks like in the response.
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 front-loaded sentence with no filler. However, hard-coding the handle @in.yogeshwar into the description is unusual and can mislead an agent into thinking the account is a fixed target rather than a contextual default.
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 single-optional-parameter read tool with no output schema or annotations, the description is minimally adequate but leaves return shape and auth context unexplained. An agent knows what it fetches but not what it gets back.
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 single limit parameter is fully documented in the schema, so the description needn't repeat it. The description adds no interpretation of what counts as a "recent" thread, which is the one ambiguity the schema leaves open.
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 pairs a specific verb ("Fetch") with a specific resource ("recent published threads and posts") and narrows scope to one account. An agent can distinguish it from publish_threads_post or get_threads_insights, though it never explicitly contrasts with those 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?
There is no statement of when to use this versus the sibling read tools (get_threads_profile, get_threads_insights) and no exclusions or prerequisites. The only cue is the implied read-only nature of "Fetch ... recent published."
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_threads_profileB
Fetch profile details, username, bio, and picture for Threads account @in.yogeshwar (ID: 2072594220036802).
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | No | Optional Threads User ID (defaults to configured THREADS_USER_ID or "me"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. 'Fetch' implies read-only and it enumerates the returned fields (username, bio, picture), which is useful, but it says nothing about auth requirements, rate limits, or whether the hardcoded ID overrides the user_id parameter.
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 efficient sentence with the resource front-loaded. The embedded account handle and numeric ID add tokens that arguably belong in a config default rather than the description.
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 read tool with no output schema, listing the returned fields is reasonable coverage. However, no annotations plus the hardcoded account leaves ambiguity about whether this is a general profile lookup or a single-account helper.
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 single parameter is fully documented there (optional, defaults to THREADS_USER_ID or 'me'). The description never mentions user_id and instead hardcodes one ID, which may lead an agent to believe the tool cannot target other accounts ā a mild step backwards from 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?
Specific verb (Fetch) plus resource (Threads profile details, username, bio, picture), and the platform qualifier distinguishes it from siblings like get_instagram_profile and get_page_profile. The hardcoded '@in.yogeshwar (ID: 2072594220036802)' makes it read as bound to one account, which muddies the scope slightly.
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 statement of when to use this versus get_user_profile, get_instagram_profile, or get_page_profile, and no mention that the user_id parameter can target other accounts. Usage has to be inferred from the platform name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_profileB
Fetch profile details for an Instagram user by IGSID (username, name, profile pic, follow status).
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Instagram Scoped User ID (IGSID). |
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. 'Fetch' implies a read-only operation, and the listed fields give a basic sense of the return data. But it does not disclose permission requirements, rate limits, failure behavior, or privacy constraints.
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 concise sentence, front-loading the action and resource. The parenthetical field list is efficient. It is appropriately sized for a simple lookup tool, though it could be slightly more 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 a simple single-parameter read tool with no output schema, the description usefully names key returned fields. It still leaves gaps around return structure, error cases, and differentiation from similar profile-fetching siblings.
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 user_id already documented as the Instagram Scoped User ID (IGSID). The description repeats that the lookup uses IGSID but adds no extra syntax, format, or validation guidance 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?
The description states a specific verb and resource: fetching Instagram user profile details by IGSID. It also names the returned fields, which clarifies the scope. However, it does not explicitly distinguish itself from close siblings such as get_instagram_profile or check_user_follows_account.
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 like get_instagram_profile or check_user_follows_account. The only implied usage is fetching a profile by IGSID, with no exclusions or prerequisite context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
like_commentB
Like an Instagram comment on behalf of @in.yogeshwar.
| Name | Required | Description | Default |
|---|---|---|---|
| comment_id | Yes | The ID of the comment to like. |
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 does disclose the acting identity (@in.yogeshwar), which is useful auth context, but says nothing about idempotency (what happens if already liked), reversibility, rate limits, or failure behavior 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?
A single sentence with zero filler, front-loading the action and resource before the acting account.
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 one-parameter mutation with no output schema, the basics are covered, but without annotations the description should at least note what a successful or repeated like returns and any permission requirements.
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?
Only one parameter with 100% schema description coverage, so the schema already defines comment_id fully. The description adds no format, sourcing, or validation detail beyond the schema, making the 3 baseline correct.
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?
States a specific verb (like) and resource (an Instagram comment) with the acting account named. An agent can separate it from reply_to_comment and get_media_comments, though it never explicitly contrasts itself with the closer sibling react_to_message.
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 when-to-use guidance, no prerequisites (e.g., must the comment be visible to the account, must the account have permission), and no mention of alternatives such as reply_to_comment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_ice_breakersB
View, set, or delete Instagram Ice Breakers (frequently asked questions shown to new chatters).
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: "get", "set", or "delete". | |
| ice_breakers | No | Required if action is "set": List of up to 4 questions and payloads. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden. It does not disclose whether 'set' replaces or appends to existing Ice Breakers, whether 'delete' is destructive/irreversible, what permissions are needed, or what the response contains ā significant gaps for a tool with mutating actions.
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 the verb set first and a useful parenthetical definition; 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 two-parameter configuration tool with a fully documented schema, the description covers purpose and the resource concept adequately. However, the lack of annotations means behavior around mutation, permissions, and replacement semantics is left unaddressed.
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 the action enum and the 'up to 4 questions, 80 chars' constraints fully documented in the schema. The description adds no parameter detail beyond the schema, so the 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?
Uses specific verbs (View, set, delete) with a clearly named resource (Instagram Ice Breakers) and even explains what the resource is (FAQs shown to new chatters). Distinguishable from most siblings, though it doesn't explicitly contrast with the analogous manage_persistent_menu.
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 choose get vs set vs delete beyond restating the action names, and no prerequisites, permission requirements, or mention of an alternative tool. The agent must infer usage entirely from the action enum in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_facebook_photoC
Publish a photo with caption to Facebook Page In.yogeshwar.
| Name | Required | Description | Default |
|---|---|---|---|
| caption | No | Caption for the photo. | |
| photo_url | Yes | Publicly accessible URL of the photo. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden but only states the action and target page. It omits key details for a mutation: permissions required, whether posting is immediate, failure behavior, rate limits, and whether the page is fixed or configurable.
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 sentence with zero waste, front-loading the action and target. Every element 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 mutation tool with no annotations and no output schema, the description is too minimal. It lacks usage guidance, behavioral context (auth, side effects), and does not explain return values or error handling.
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 both parameters (photo_url and caption) are already fully documented in the input schema. The description adds minimal meaning beyond noting 'with caption' and confirming the target page.
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 states a specific verb ('Publish') and resource ('photo with caption') targeting a named Facebook Page ('In.yogeshwar'). It implicitly distinguishes from siblings like publish_facebook_post (text-only) and publish_instagram_photo, but does not explicitly name alternatives.
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 publish_facebook_post or other publishing tools, nor are prerequisites or exclusions mentioned. The agent must infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_facebook_postB
Publish a status update or text message to Facebook Page In.yogeshwar.
| Name | Required | Description | Default |
|---|---|---|---|
| link | No | Optional link URL to attach. | |
| message | Yes | The text content of the post. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It identifies the operation as a publish/mutation but does not disclose permissions, whether the post appears immediately, rate limits, side effects, or return 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?
A single front-loaded sentence with no filler. It communicates the action, content type, and target page efficiently.
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 is simple and the schema is fully documented, but as a mutation with no annotations the description should say more about publishing behavior and safety context. It is minimally sufficient for invocation but incomplete behaviorally.
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 both parameters are already documented in the input schema. The description reinforces that the tool publishes text content but adds no new detail about the optional link parameter or formatting expectations.
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?
States a specific verb (publish) and resource (Facebook post/status update) scoped to a named Facebook Page. The phrase "status update or text message" implicitly distinguishes it from the sibling publish_facebook_photo, though it does not explicitly name that alternative.
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 intended use case is implied by "status update or text message to Facebook Page," but there is no explicit when-to-use guidance, no exclusions, and no reference to alternatives such as publish_facebook_photo or publish_instagram_photo.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_instagram_photoC
Publish a photo post with caption and hashtags to Instagram account in.yogeshwar.
| Name | Required | Description | Default |
|---|---|---|---|
| caption | No | Caption and hashtags for the post. | |
| image_url | Yes | Direct public URL of the image (JPG/PNG). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full behavioral burden and falls short: it does not say the post is publicly visible and hard to undo, whether publishing requires a specific token/permission, what happens on rate limits or duplicate content, or what the call returns. Only the implicit 'publish' mutation 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?
A single front-loaded sentence with no filler. The hardcoded account name is slightly unusual phrasing but is informative rather than wasteful.
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 mutation tool with zero annotations and no output schema, the description should at least signal return behavior (e.g., a media ID) and failure modes. It supplies neither, leaving the agent under-informed about the consequences of calling 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 description coverage is 100%, so both parameters are already documented in structured form; the description adds only that caption can include hashtags, which is marginal. 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?
States a specific verb (publish) and resource (photo post) plus the target account (in.yogeshwar), which distinguishes it from publish_instagram_reel and the Facebook publishers by resource type. It never explicitly names those siblings, but the resource noun does the disambiguation work.
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 versus publish_instagram_reel or publish_facebook_photo, and no prerequisites stated (public image URL, account type, permissions). The agent must infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_instagram_reelC
Publish a video reel with caption to Instagram account in.yogeshwar.
| Name | Required | Description | Default |
|---|---|---|---|
| caption | No | Caption and hashtags for the reel. | |
| video_url | Yes | Direct public URL of the MP4 video file. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It implies a write operation but says nothing about permissions needed, whether publishing is immediate and public, rate limits, or container-processing delays typical of Instagram reels. Only the hard-coded target account is disclosed.
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 sentence with the action verb front-loaded and zero redundant wording. Nothing needs to be trimmed.
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 mutation tool with no annotations and no output schema, the description omits what an agent needs: confirmations that the post is public, the expected outcome (e.g., a media ID), and any failure or throttling behavior. The 2 well-documented parameters keep it from being worse.
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 both video_url (direct public MP4 URL) and caption (caption and hashtags) already documented in the schema. The description adds only that caption accompanies a video reel, 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?
States a specific verb (publish) and a specific resource (video reel) with an explicit target account. The word 'reel' plus 'video' distinguishes it from publish_instagram_photo and the facebook/threads publish siblings, though no sibling is named directly.
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 choose this over publish_instagram_photo or the other publish_* tools, and no prerequisites such as account permissions or video format requirements are mentioned. Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_threads_postB
Publish a post (text, image, or video) to Threads account @in.yogeshwar using the official Threads API.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text content or caption of the thread post (up to 500 characters). | |
| image_url | No | Public URL to image (required if media_type is IMAGE). | |
| video_url | No | Public URL to video (required if media_type is VIDEO). | |
| media_type | No | Type of post: "TEXT", "IMAGE", or "VIDEO" (default: auto-detected). |
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 for a mutation tool. It mentions the official Threads API and target account, but does not disclose permission requirements, rate limits, media-processing behavior, error cases, or what a successful publish returns.
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 definition is a single front-loaded sentence with no wasted text. It states the action, supported media types, platform, and target account efficiently.
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 adequate for understanding what the tool publishes and to which platform, and the schema fully covers parameters. However, for a publish/mutation tool with no annotations and no output schema, it omits behavioral context such as permissions, media requirements, and return 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%, so the parameters are already well documented in the schema. The description reinforces the text/image/video capability but adds no parameter syntax or conditional details beyond what the schema 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 states a specific action and resource: publishing a Threads post with text, image, or video to @in.yogeshwar. It clearly distinguishes Threads from sibling Facebook/Instagram publishing tools, though it does not explicitly distinguish a new post from reply_to_threads_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?
The description explains what the tool does but gives no guidance on when to use it versus alternatives such as reply_to_threads_post or the Instagram/Facebook publish tools. No prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
react_to_messageB
React to a specific Instagram Direct Message with an emoji (e.g. double-tap heart "ā¤ļø", "š", "š„", etc.) or unreact.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Action to perform: "react" (default) or "unreact". | |
| reaction | No | Emoji to react with (default: "ā¤ļø" for double-tap heart). Leave empty or pass action="unreact" to remove reaction. | |
| message_id | Yes | Unique Message ID (mid) of the message to react to. | |
| recipient_id | Yes | Instagram Scoped User ID (IGSID) of the chatter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It does add platform-specific context ā that the default reaction is the double-tap heart ā¤ļø ā and distinguishes the additive vs. removal operation, but it omits what happens on repeated reactions (replace vs. stack), permission/scope requirements, and error 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?
A single front-loaded sentence that names the action, target, and the unreact variant with no procedural filler. The parenthetical emoji examples are slightly noisy but illustrate expected input format.
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 4-parameter mutation tool with no annotations and no output schema, the definition covers the core operation but leaves gaps: no statement of the return value or confirmation shape, no mention of permission scope, and no note on whether an existing reaction is overwritten when react is called twice.
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%, including an enum on action and defaults documented on reaction, so the schema already does the semantic heavy lifting. The description only echoes the emoji examples and the react/unreact duality without adding format or constraint detail beyond the schema, which is the baseline-3 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?
States a specific verb (react/unreact) on a specific resource (a specific Instagram Direct Message) with an emoji, which is unambiguous. No sibling tool performs reactions, so the operation is distinguishable, but the description never explicitly contrasts itself with send_instagram_dm or reply-style 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 phrase 'or unreact' implies the two modes and the schema exposes action=react|unreact, so the intended usage is inferable. However, there is no explicit guidance on when to react versus send a DM, and no statement of prerequisites (e.g. message must exist in the thread, required permissions).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reply_to_commentA
Post a public reply to a specific comment on an Instagram post or reel.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The text of the public reply. | |
| comment_id | Yes | The ID of the comment to reply to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It discloses that this is a public write action, but does not mention required permissions, rate limits, whether replies are immediately visible, error conditions, or what happens if the comment is deleted or unavailable.
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 front-loaded sentence with no wasted words. It efficiently conveys the action, visibility, target, and platform context.
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 is simple with two fully documented required parameters, and the description makes the core action clear. However, because there are no annotations and no output schema, the description leaves behavioral and response expectations underspecified for a write 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?
Schema description coverage is 100%, so both parameters are already documented in the input schema. The description adds no additional semantics about comment_id format, message constraints, or reply behavior beyond what the schema 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 states a specific action and resource: posting a public reply to a specific comment on an Instagram post or reel. The word 'public' also distinguishes it from the sibling tool send_instagram_private_reply, and the Instagram/media scope distinguishes it from reply_to_threads_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?
Usage is implied by 'public reply' versus private alternatives, but the description does not explicitly say when to choose this over send_instagram_private_reply or other reply/comment tools. It gives enough context to infer the use case but not explicit routing guidance or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reply_to_threads_postB
Publish a reply to a specific post/thread on Threads.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The reply text. | |
| thread_id | Yes | The ID of the thread to reply to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It indicates a public publish/mutation action, but does not disclose authentication needs, rate limits, whether the reply is publicly visible, what happens if the thread_id is invalid, or what the call returns.
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 front-loaded sentence with zero waste. It communicates the core action efficiently and appropriately sized for a simple two-parameter 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?
The tool is simple (two required parameters, no nested objects, no output schema). The description identifies the operation but leaves gaps around authentication, public visibility, error conditions, and return behavior. For an unannotated mutation tool, this is adequate 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 description coverage is 100%, so both parameters ('text' and 'thread_id') are already well documented in the input schema. The description adds no additional syntax, formatting, or constraints beyond the schema baseline, which is appropriate but minimal.
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 ('Publish') and resource ('a reply to a specific post/thread on Threads'), making the core action clear. It does not explicitly distinguish itself from the sibling publish_threads_post, which creates a top-level post rather than a reply, leaving some ambiguity for an agent choosing between the two.
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 this to reply to an existing Threads post/thread rather than create a new one. However, there is no explicit when-to-use guidance, no mention of the sibling publish_threads_post alternative, and no stated prerequisites such as needing an existing thread ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_instagram_comment_growth_funnelB
ManyChat/Superprofile style automated funnel: scans comments for keywords (e.g. "guide"), likes the comment, replies publicly, and DMs the guide/link with a "User Must Follow" gate.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Trigger keyword in comments (e.g., "guide", "link"). Case-insensitive. | |
| media_id | No | The Instagram media ID (or pass "latest" for newest post/reel). | |
| attachment_id | No | Optional reusable attachment ID instead of URL. | |
| attachment_url | No | Direct public URL to the PDF, audio file (M4A/WAV/AAC), or image. | |
| require_follow | No | The Follow Catch: If true, checks if user follows @in.yogeshwar before unlocking content (default: true). | |
| attachment_type | No | Optional attachment type (e.g., "file" for PDF, "audio" for voice note). | |
| follow_gate_message | No | Message sent if user does NOT follow (e.g. "Hey! š Please follow @in.yogeshwar first to unlock the guide! Once followed, reply DONE!"). | |
| public_reply_template | No | Public reply under the comment (e.g. "Check your DM! I sent you the guide š„"). | |
| unlocked_content_text | Yes | The message and link delivered once user is verified as a follower. | |
| like_matching_comments | No | Whether to auto-like matching comments (default: true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the side-effect chain (auto-like, public reply, DM) plus the follow gate, which is genuinely useful. However it leaves key operational semantics ambiguous for a mutation tool: whether 'scans comments' means a one-shot pass over existing comments or a persistent subscription, whether already-processed comments are re-handled, and whether permissions beyond the account are 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?
A single dense sentence that front-loads the action sequence with zero filler. The 'ManyChat/Superprofile style' anchor is compact and informative, though it assumes familiarity with those products.
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 ten-parameter automation with no annotations and no output schema, the description covers the conceptual flow adequately and the schema covers every parameter. What is missing is execution semantics an agent needs before committing: one-shot vs continuous behavior, handling of multiple matching comments, and what the call returns.
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 schema already documents all ten parameters including defaults and the 'latest' media_id convention. The description only loosely maps to keyword, like, public reply, and gated DM, adding no syntax or format detail beyond the schema; 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?
States a specific compound verb sequence and resource: scans comments for keywords, likes them, replies publicly, and DMs content behind a follow gate. This is clearly distinguishable from atomic siblings like like_comment, reply_to_comment, and send_instagram_private_reply because it names the bundled workflow, though it never names those siblings explicitly.
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 framing as a 'ManyChat/Superprofile style automated funnel' implies you use this when you want the whole keyword-to-DM flow rather than the individual steps, but the description never states when to prefer this over composing the sibling primitives, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_button_templateC
Send a Button Template message (text with up to 3 action buttons: URL links or postback triggers).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Message body text. | |
| buttons | Yes | Array of up to 3 buttons. | |
| recipient_id | Yes | Instagram User ID (IGSID). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden, and it discloses almost nothing beyond the 3-button cap. It is silent on messaging-window/permission requirements, whether the send is idempotent, what happens on failure, and what the call returns.
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 filler; the parenthetical constraint is the highest-value information. It is efficient, though arguably too terse for a messaging tool with required structured input.
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 annotations, no output schema, and three required parameters, the description should explain delivery constraints and expected result. Instead it stops at the payload shape, leaving an agent unable to anticipate platform messaging restrictions or what a successful send yields.
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 recipient_id, text, and the nested button fields are already documented, making 3 the baseline. The description adds only the coarse mapping of button kinds to URL links and postback triggers, which the schema's enum already conveys.
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?
States a specific verb and resource (send a Button Template message) and defines the payload shape as text plus up to 3 action buttons. It does not name or contrast with close siblings such as send_quick_replies or send_generic_template, so an agent must infer the distinction from the shape alone.
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 explicit when-to-use or when-not-to-use guidance. The description implies the scenario (you have text plus a few buttons) but gives no rule for choosing this over send_quick_replies, send_generic_template, or a plain send_instagram_dm.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_generic_templateC
Send a Generic Template carousel card (image, title, subtitle, and action buttons) to Instagram chat.
| Name | Required | Description | Default |
|---|---|---|---|
| elements | Yes | Carousel items (up to 10 elements). | |
| recipient_id | Yes | Instagram User ID (IGSID). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses that the tool sends a message to Instagram chat, but it does not mention authentication requirements, rate limits, delivery semantics, or whether messages are subject to platform messaging windows.
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 front-loaded sentence with no wasted text. It efficiently identifies the action and the card contents, though the parenthetical field list is slightly redundant given the schema.
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 message-sending tool with no annotations and no output schema, the description is under-specified. It explains what is sent but omits operational context such as required permissions, messaging-window restrictions, and failure behavior, leaving an agent without enough information to use it safely.
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 documents recipient_id and the nested elements structure. The description only names the visible card fields and does not add syntax or constraints beyond what the schema provides, making the baseline 3 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 states a specific verb and resource: sending a Generic Template carousel card to Instagram chat, and lists the card components. It is clear what the tool does, but it does not explicitly differentiate this from sibling tools like send_button_template or send_quick_replies.
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 such as send_button_template, send_quick_replies, or send_instagram_dm. The phrase 'carousel card' implies a use case, but the agent must infer the selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_human_agent_messageA
Send a message using the HUMAN_AGENT escalation tag (allows human agents to reply up to 7 days outside the 24-hr window).
| Name | Required | Description | Default |
|---|---|---|---|
| message_text | Yes | The human agent response text. | |
| recipient_id | Yes | Instagram User ID (IGSID). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the key behavioral trait: the HUMAN_AGENT tag permits replies outside the standard 24-hour window. It does not mention permissions, side effects, failure behavior, or return values, leaving meaningful gaps for a send operation.
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 efficient sentence that front-loads the action and the key escalation-tag behavior. There is no wasted wording.
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 two-parameter send tool with a fully described schema and no output schema, the description covers the critical special behavior of the HUMAN_AGENT tag. It could still be stronger with explicit routing guidance versus sibling send tools and basic failure or permission 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 description coverage is 100%, so both required parameters are already documented in the schema. The description adds no additional parameter-level meaning beyond what the schema provides, making the baseline score 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 gives a specific verb and resource ('Send a message') and names the distinguishing mechanism ('HUMAN_AGENT escalation tag'), so an agent can infer it differs from a normal DM. However, it does not explicitly name or contrast the sibling tools like send_instagram_dm.
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?
It implies when the tool is appropriate by mentioning replies up to 7 days outside the 24-hour window, but it does not explicitly state when to choose this over send_instagram_dm or send_instagram_private_reply. Usage is implied rather than directly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_instagram_dmA
Send a Direct Message (text, image, audio/voice, or PDF/file) to an Instagram user by their IGSID. Supports quoting/replying to an exact message (threaded reply). For audio, supported formats are AAC, M4A, WAV, or MP4 up to 25MB.
| Name | Required | Description | Default |
|---|---|---|---|
| message_text | No | Text message to send. | |
| recipient_id | Yes | Instagram Scoped User ID (IGSID). | |
| attachment_id | No | Reusable attachment ID (obtained from upload_reusable_attachment or previous message). If provided, attachment_url is ignored. | |
| attachment_url | No | Public direct URL to the attachment file (PDF, audio M4A/WAV/AAC, image JPG/PNG, MP4 video). Direct raw URL without redirects. | |
| attachment_type | No | Type of attachment: "image", "audio" (voice note), "video", or "file" (PDF/docs). | |
| reply_to_message_id | No | Optional Message ID (mid) of a specific message to quote and reply to (exact message threaded reply). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden. It does usefully disclose supported formats and the 25MB audio cap, but says nothing about Instagram messaging-policy constraints (e.g., the 24-hour customer-service window), permission requirements, whether message_text and an attachment can be combined, or rate limits ā meaningful gaps for a send/mutation tool with zero annotation coverage.
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?
Three sentences with the core action front-loaded and no filler; each subsequent sentence adds a distinct capability (threaded reply, audio constraints). Minor room to tighten by grouping attachment-format rules into one clause.
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 6-parameter send tool with no annotations and no output schema, the description covers content types, reply semantics, and audio limits, but omits what the call returns (message ID, status), how errors surface, and whether text plus attachment may coexist ā gaps an agent would want before invoking.
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, but the description goes beyond the schema by adding the 25MB size ceiling and naming MP4 alongside AAC/M4A/WAV for audio voice notes. It also frames reply_to_message_id as a threaded-reply control, which reinforces the schema's own wording.
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 opens with a specific verb+resource ("Send a Direct Message ... to an Instagram user by their IGSID") and enumerates the supported content types, so the action is unambiguous. It does not, however, distinguish itself from nearby siblings such as send_instagram_private_reply or send_sender_action, which an agent must infer from the name alone.
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 only implied: the mention of quoting an exact message hints that reply_to_message_id is used for threaded replies, and "by their IGSID" signals the required identifier. There is no explicit when-to-use/when-not statement and no alternative tool is named for cases like replying to a comment versus messaging a user.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_instagram_private_replyB
Send a private Direct Message (DM) to an Instagram user in response to their comment.
| Name | Required | Description | Default |
|---|---|---|---|
| comment_id | Yes | The comment ID of the user to message. | |
| message_text | Yes | The message text or link to send. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It says the tool sends a message but discloses nothing about platform constraints that materially affect invocation ā e.g. Instagram's one-private-reply-per-comment limit, the time window in which a reply is allowed, required permissions, or whether the send is immediate and irreversible.
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, front-loaded with verb and resource, with zero filler. Nothing could be removed without losing meaning.
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 annotations and no output schema, the description is the only place behavioral context could live, and it stops at purpose. For a messaging tool with known platform restrictions, an agent cannot tell from this definition what will fail or what the call returns.
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 both parameters are already documented. The description adds no detail beyond the schema ā it does not clarify the format of comment_id, whether message_text accepts links/media, or any length restrictions. Baseline 3 applies when the schema does the work.
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?
States a specific verb (send) and resource (private Direct Message) plus the qualifying condition 'in response to their comment', which is what separates it from the sibling send_instagram_dm. It never names that sibling explicitly, so an agent must infer the distinction rather than read it.
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 phrase 'in response to their comment' implies the usage context (comment-triggered private reply), but there is no explicit statement of when to prefer this over send_instagram_dm or reply_to_comment, and no prerequisites 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.
send_quick_repliesC
Send a message with interactive Quick Reply buttons that users can tap in Instagram DMs.
| Name | Required | Description | Default |
|---|---|---|---|
| message_text | Yes | Question or prompt text. | |
| recipient_id | Yes | Instagram User ID (IGSID). | |
| quick_replies | Yes | Array of up to 13 quick replies. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says the buttons are interactive and tappable in Instagram DMs, but it does not disclose messaging permissions, delivery constraints, rate limits, what happens when a user taps, or how payloads are 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?
The description is a single, front-loaded sentence with no filler. It efficiently conveys the action, medium, and interactive element.
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?
Although the schema is fully documented, the tool has no annotations and no output schema, and the description does not cover safety, permissions, delivery behavior, or alternatives. For a messaging action in a crowded sibling set, the description is not complete enough to guide correct selection and invocation confidently.
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%, and the schema documents recipient_id, message_text, and the quick_replies structure including title length and payload meaning. The description adds no parameter details beyond the schema, so the 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 states a specific verb and resource: sending a message with interactive Quick Reply buttons in Instagram DMs. It is clear what the tool does, but it does not explicitly distinguish itself from nearby sibling send tools such as send_button_template or send_generic_template.
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 the tool is for Quick Reply buttons, but gives no explicit guidance on when to use it versus alternatives like send_instagram_dm, send_button_template, or send_generic_template. With many sibling messaging tools, the missing routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_sender_actionB
Trigger sender actions in Instagram chat: typing indicator ("typing_on", "typing_off") or mark as seen ("mark_seen").
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Sender action to perform. | |
| recipient_id | Yes | Instagram User ID (IGSID). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does not disclose that these actions are ephemeral state signals rather than messages, nor any permission, rate-limit, or persistence details. It essentially restates the enum values from the schema.
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 well-formed sentence that front-loads the purpose and enumerates the actions. No filler, though it could have used a second sentence for behavioral context rather than none.
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 zero-annotation, no-output-schema tool, the description explains only the action names. It omits whether a message must be sent, session/permission requirements, and what happens on success or failure, leaving real 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%, so the schema already documents recipient_id and action. The description adds minor value by mapping 'typing_on'/'typing_off' to a typing indicator and 'mark_seen' to a read receipt, but offers no format or constraint detail 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?
States a specific verb (trigger) and resource (sender actions in Instagram chat), and enumerates the three supported actions. This lets an agent distinguish it from message-sending siblings like send_instagram_dm, though it does not explicitly name any sibling.
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 phrase 'in Instagram chat' implies the operational context (an existing conversation), but there is no explicit guidance on when to prefer this over send_instagram_dm or reply tools. The enum values make the intent reasonably inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_reusable_attachmentA
Upload an attachment to Meta servers using Attachment Upload API to get a reusable attachment_id for fast zero-reupload DM delivery.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Direct public URL to the file to upload. | |
| attachment_type | Yes | Type of attachment: "file" (PDF/docs), "image", "audio", or "video". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It usefully discloses that the file is uploaded to Meta servers via the Attachment Upload API and that the resulting attachment_id is reusable across sends, but omits lifecycle details an agent needs: expiry of attachment_id, size/format limits, and permission requirements.
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 sentence with the action, transport, and payoff front-loaded and no filler. Every clause 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 two-parameter tool with no output schema, the description does mention the return value (attachment_id) and its reusability, which is helpful. It still leaves gaps around attachment_id lifetime and how the ID is subsequently consumed, which matter for a staged upload-then-send workflow.
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%, including an enum for attachment_type, so the schema fully documents both parameters. The description adds no syntax or format details beyond it, which is the baseline-3 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?
States a specific verb and resource ('Upload an attachment to Meta servers') plus the outcome ('reusable attachment_id'), which no sibling tool provides. It is clearly distinguishable from send_instagram_dm and the publish_* tools, though it never explicitly names the relationship to 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?
The phrase 'for fast zero-reupload DM delivery' implies this is a pre-step before sending direct messages, but the description never says 'call this before send_instagram_dm' or states when not to use it. Usage is inferable rather than explicit.
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.
35 tool updates
v1.0.0- First observed
check_user_follows_account - First observed
generate_ig_me_link - First observed
get_conversation_messages - First observed
get_conversations - First observed
get_facebook_posts - First observed
get_instagram_account_insights - First observed
get_instagram_media - First observed
get_instagram_media_insights - First observed
get_instagram_profile - First observed
get_media_comments - First observed
get_page_profile - First observed
get_threads_insights - First observed
get_threads_posts - First observed
get_threads_profile - First observed
get_user_profile - First observed
like_comment - First observed
manage_ice_breakers - First observed
manage_persistent_menu - First observed
publish_facebook_photo - First observed
publish_facebook_post - First observed
publish_instagram_photo - First observed
publish_instagram_reel - First observed
publish_threads_post - First observed
react_to_message - First observed
reply_to_comment - First observed
reply_to_threads_post - First observed
run_instagram_comment_growth_funnel - First observed
send_button_template - First observed
send_generic_template - First observed
send_human_agent_message - First observed
send_instagram_dm - First observed
send_instagram_private_reply - First observed
send_quick_replies - First observed
send_sender_action - First observed
upload_reusable_attachment
TDQS
Scored across 35 tools
Platform prefixes (facebook/instagram/threads) help separate otherwise parallel tools, but the DM-sending cluster (send_instagram_dm, send_instagram_private_reply, send_human_agent_message, send_quick_replies, send_button_template, send_generic_template) overlaps heavily and requires careful description reading to pick correctly. Similarly get_instagram_profile vs get_user_profile vs get_threads_profile have fuzzy boundaries (own account vs IGSID lookup).
Overwhelmingly consistent verb_noun snake_case (publish_*, get_*, send_*, reply_to_*, like_*), with platform qualifiers applied predictably. Minor deviations: manage_ice_breakers/manage_persistent_menu bundle view/set/delete under a non-verb prefix, and the scoping of get_threads_insights vs get_instagram_account_insights vs get_instagram_media_insights is uneven.
35 tools is heavy; while the domain (FB Page + Instagram + Threads + DM automation) is broad, the count is inflated by six near-parallel DM-send tools and could be consolidated. It sits at the top edge of justified rather than being well-scoped.
Strong publishing, media listing, comment handling, insights, and DM/chat-configuration coverage for Instagram, but there are notable gaps: no delete/edit operations for published posts or media, and Facebook/Threads surfaces are read-and-publish only (no comment management, DMs, or insights for Facebook).
Maintenance
Related MCP Connectors
- ZoosialOAuthcom.zoosial
Social media API for AI agents: publish, DMs, comments, Meta ads and leads.
Instagram for AI agents: publish, read comments and DMs, insights, and engage from your account.
Manage Instagram and Facebook automations, conversations, templates, and analytics with AI.
Instagram, WhatsApp and Messenger DMs through official Meta Business APIs.
Related MCP Servers
- FlicenseBqualityNot gradedmaintenanceEnables AI assistants to interact with Instagram and Facebook accounts through their APIs, supporting messaging, post management, commenting, and content creation.14-
- AlicenseAqualityCmaintenanceEnables AI assistants to manage Instagram and Threads accounts ā publish content, handle comments, view insights, search hashtags, and manage DMs through the Meta Graph API.5929 npm13MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to automate Facebook Page management including posting, commenting, and analytics via the Facebook Graph API.MIT
- AlicenseNot gradedqualityBmaintenanceEnables reading and replying to direct messages, comments, and templates across Instagram, WhatsApp, and Messenger through official Meta Business APIs, with support for human handover and AI assistant controls.9 npmMIT