YaparAI Enterprise MCP Server
Manage Facebook business accounts: schedule and publish posts, view analytics, read and reply to inbox messages and comments, and access CRM features.
Manage Instagram business accounts: schedule and publish posts, view analytics, read and reply to DMs and comments, and access CRM features.
Manage TikTok business accounts: schedule and publish posts, view analytics, read and reply to inbox messages, and access CRM features.
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., "@YaparAI Enterprise MCP ServerShow me all unread DMs on Instagram"
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.
YaparAI Enterprise MCP Server
Enterprise Social Media & CRM management — directly from Claude Desktop, Cursor, Windsurf, and other MCP-compatible AI assistants.
What is this?
This is a dedicated MCP (Model Context Protocol) server for the YaparAI Enterprise platform. It exposes 21 tools covering Social Media management and CRM directly inside Claude, Cursor, or any MCP-compatible assistant.
For the full YaparAI MCP (image generation, video, music, templates, etc.) see the main yaparai-mcp repo.
Related MCP server: @posteverywhere/mcp
Tools (21)
🏢 Utility (1)
Tool | Description |
| List your organizations and find your org_id |
📱 Social Media (12)
Tool | Description |
| List connected Instagram/Facebook/TikTok/X accounts |
| Publish or schedule a post |
| Browse published and scheduled posts |
| Delete a post |
| Engagement stats, reach, follower growth |
| AI-generated post caption (TR/EN) |
| AI-optimized hashtags |
| Read social media DMs and comments |
| Full message history of a conversation |
| Reply to a DM or comment |
| AI-suggested reply for a conversation |
| Check posting quota and limits |
👥 CRM (8)
Tool | Description |
| Browse CRM customers (filter by tag, platform, search) |
| Get full customer profile |
| Manually add a new customer |
| Update customer info (name, phone, email, tags) |
| Add a note to a customer record |
| AI extracts name/phone/email from conversation |
| Send tracking notification via social DM |
| Mass message by tag, platform, or customer list |
| Import customers from inbox conversations |
Quick Start
1. Install
pip install git+https://github.com/enis1998/yaparai-enterprise-mcp.git2. Get API Key & Org ID
Sign up at kurumsal.yaparai.com
Go to Settings > API Keys and create a key
Use
list_organizationstool to find yourorg_id
3. Configure Claude Desktop
{
"mcpServers": {
"yaparai-enterprise": {
"command": "yaparai-enterprise",
"env": {
"YAPARAI_API_KEY": "yap_live_your_key_here",
"YAPARAI_ORG_ID": "your-org-id-here"
}
}
}
}4. Use it!
"Show me all unread DMs on Instagram"
"Generate an AI reply for the last customer complaint"
"Send shipping info to customer Ahmet — Yurtici, tracking ABC456"
"Post our summer campaign to Instagram and Facebook"
"Send a bulk message to all VIP customers"
"How many posts did we make last month? What was the engagement rate?"
Environment Variables
Variable | Required | Description |
| ✅ Yes | Your API key |
| ✅ Yes (or per-call) | Organization ID |
| ❌ No | API base URL (default: |
Development
git clone https://github.com/enis1998/yaparai-enterprise-mcp.git
cd yaparai-enterprise-mcp
pip install -e ".[dev]"
pytest tests/ -vLicense
Apache 2.0
Available Tools
22 toolsadd_customer_noteB
Add a note to a customer's record.
Notes are visible in the customer profile and help your team track important context (order issues, preferences, follow-ups, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID to add the note to | |
| note | Yes | Note text content | |
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully convey behavioral traits. It states that notes are visible in the customer profile and help track context, but omits important details like whether the note appends to existing notes, if it is editable, or if any special permissions are required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that directly state the purpose and value. Every sentence is useful, with no filler. The key action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with full schema coverage and an output schema (as indicated by context), the description covers the basic purpose. However, it lacks details on any side effects, note length limits, or interaction with other tools, making it slightly incomplete for a fully autonomous agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have descriptions in the schema (100% coverage), so the baseline is 3. The description does not add any additional meaning beyond what the schema already provides, such as format constraints or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Add a note to a customer's record', which is a specific verb and resource. It distinguishes itself from siblings like 'update_customer' or 'create_customer' by focusing solely on adding notes, with no overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or any context that helps the agent decide between this and sibling tools like 'update_customer'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_reply_suggestionA
Get an AI-generated reply suggestion for a conversation.
The AI reads the full conversation context and suggests an appropriate, personalized reply. Customize with a system prompt.
| Name | Required | Description | Default |
|---|---|---|---|
| conversation_id | Yes | Conversation ID to suggest a reply for | |
| account_id | Yes | Social account ID | |
| system_prompt | No | Optional custom instructions for the AI (e.g., "Reply politely in Turkish, offer 10% discount if they complain") | |
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It transparently states that the AI reads full conversation context and suggests a personalized reply, and can be customized with a system prompt. This discloses key behavioral traits (read-only suggestion, AI-driven) without contradictions. However, it does not mention potential rate limits, authentication requirements, or side effects like logging, which would merit a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences with no wasted words. It is front-loaded with the primary purpose, and every sentence adds value (first sentence states action and resource, second explains context and customization). Perfectly structured for quick comprehension.
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 output schema exists, return values need no explanation. The description covers the main use case (suggestion generation), customization, and hints at AI behavior. It could optionally mention that the suggestion is based on full conversation, but that is already stated. Slightly above average because it is sufficient for an agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning all parameters already have descriptions in the input schema. The tool description adds minimal extra meaning beyond reiterating the system_prompt parameter ('Customize with a system prompt'). As per guidelines, baseline is 3 when coverage is high, and the description does not significantly enhance understanding of the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get an AI-generated reply suggestion for a conversation.' This uses a specific verb ('get') and resource ('AI-generated reply suggestion'), and distinguishes itself from sibling tools like reply_to_message (which sends a message) and generate_caption (which generates captions, not 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?
The description implies usage for generating suggestions before sending a reply, but it lacks explicit guidance on when to use this tool versus alternatives (e.g., reply_to_message for direct sending, generate_caption for different content). No when-not-to-use or conditional advice is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_messageA
Send a message to multiple customers at once.
Broadcast promotions, announcements, or updates. Target by specific IDs, a customer tag, or a platform. At least one of customer_ids, tag, or platform is required.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Message text to send | |
| customer_ids | No | List of specific customer IDs to target | |
| tag | No | Send to all customers with this tag (e.g., "vip", "returning", "lead") | |
| platform | No | Send only to customers from this platform | |
| media_urls | No | Optional list of image/video URLs to attach | |
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present. The description states the core function but omits behavioral traits such as rate limits, confirmation, error handling for partial failures, or idempotency. For a bulk messaging tool, details about delivery guarantees and failure handling would be valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and well-structured: two sentences. The first sentence states the purpose, and the second provides targeting guidelines and constraints. Every word serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, no annotations, but an output schema exists), the description covers the main targeting logic and constraints. It does not explain execution behavior (e.g., asynchronous processing, result format) but the output schema presumably handles that. It could mention potential size limits or batch behavior for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already describes each parameter. The description adds value by explaining the relationship among targeting parameters ('Target by specific IDs, a customer tag, or a platform') and the requirement that at least one is provided. This is helpful but does not provide additional 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 clearly states the action ('Send a message to multiple customers') and the resource ('multiple customers'). It enumerates specific use cases (promotions, announcements, updates) and distinguishes from sibling tools like 'reply_to_message' and 'send_shipping_info' which are for individual messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (broadcast promotions, announcements, updates) and includes a key constraint ('At least one of customer_ids, tag, or platform is required'). However, it does not explicitly mention when not to use it or provide direct alternatives, though the sibling list implies that individual messaging tools exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_customerA
Manually create a new CRM customer record.
Add a customer who may not have come through the social inbox. Useful for migrating existing customers or adding offline contacts.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Customer full name | |
| platform | Yes | Primary contact platform ("instagram", "facebook", "whatsapp") | |
| phone | No | Phone number (with country code, e.g. "+905xxxxxxxxx") | |
| No | Email address | ||
| address | No | Shipping / physical address | |
| tags | No | List of tags to assign (e.g., ["vip", "wholesale"]) | |
| note | No | Initial note to add to the customer record | |
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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. It describes a standard create operation without additional behavioral context (e.g., permissions, idempotency, side effects), but the basic create behavior is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences with no fluff, front-loading the purpose and then usage 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?
Given the output schema exists (not shown) and all parameters are documented with descriptions, the tool is complete. The description covers when to use it, making it sufficient for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; every parameter is described in the schema. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'create' and resource 'CRM customer record' and explicitly distinguishes from 'social inbox' methods, aligning with sibling tools like sync_customers_from_inbox.
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?
Provides explicit use cases: migrating existing customers or adding offline contacts. Implicitly contrasts with sync tools, but does not explicitly state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_social_postA
Create and publish (or schedule) a social media post.
Supports text, images, and videos on Instagram, Facebook, TikTok, X. Use scheduled_at to queue posts for a future time.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Post caption / text content | |
| platform | Yes | Target platform ("instagram", "facebook", "tiktok", "twitter") | |
| account_id | Yes | Social account ID (get it from list_social_accounts) | |
| media_urls | No | Optional list of image or video URLs to attach | |
| scheduled_at | No | ISO 8601 datetime for scheduled posting, e.g. "2026-06-01T10:00:00Z". If omitted, the post is published immediately. | |
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It mentions publishing and scheduling, and supports text/images/videos, but does not cover authentication needs, rate limits, idempotency, error handling, or what happens on failure.
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 three sentences, front-loaded with the core purpose, then supporting details. Every sentence adds value 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?
Given the presence of an output schema (not shown, but indicated) and 100% schema coverage, the description covers the main aspects. However, it does not describe return values or confirm creation success, which would be helpful for a create 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%, so the schema already documents parameters well. The description adds minimal extra meaning (e.g., supporting content types, scheduled_at format example), but does not significantly enhance understanding 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 clearly states the action ('Create and publish or schedule') and the resource ('social media post'), listing supported platforms (Instagram, Facebook, TikTok, X). This distinguishes it from sibling tools like delete_social_post or generate_caption.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear context for when to use this tool (creating/publishing/scheduling posts) and a specific hint about using scheduled_at for future queuing. However, it lacks explicit guidance on when not to use it or alternatives for other actions like deletion or caption generation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_social_postA
Delete a social media post.
Deletes the post from both the YaparAI platform and the social media platform (if supported by the platform's API). Scheduled posts are cancelled.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | Post ID to delete (from list_social_posts results) | |
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the action is destructive, affects both platforms, and cancels scheduled posts. However, it does not mention permissions, error handling, or reversibility. Still, it provides good behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the main action, with no wasted words. Efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (not shown but present), so return values are documented. The description covers core behavior and side effects (external deletion, cancellation). It could mention what happens on failure or if post doesn't exist, but overall it is adequately complete for a simple destructive 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 coverage is 100%, so the schema already describes both parameters thoroughly. The description adds marginal value by noting that post_id comes from list_social_posts results, but otherwise repeats schema info. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a social media post' with specific details about dual deletion (YaparAI + external platform) and scheduled post cancellation. This distinguishes it from siblings like create_social_post or list_social_posts.
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 when to use (when deletion is needed) but lacks explicit guidance on when not to use, alternatives, or preconditions. The purpose is clear, but no 'when-to-use' or 'when-not-to-use' statements are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_customer_infoA
Extract contact information from conversation history using AI.
The AI reads all messages with this customer and extracts their name, phone number, email, and address. Great for auto-filling CRM records.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID to extract info for | |
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden of disclosure. It states the tool uses AI to read all messages and extract info, implying read-only behavior. It does not mention permissions, side effects, or what happens if extraction fails. This is adequate but not rich.
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?
Two sentences: first defines action, second explains method and use case. Every word earns its place with no redundancy or filler.
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 presence of an output schema (not shown), the description adequately covers the tool's purpose and parameters. It could mention potential failure modes (e.g., no conversation history) but overall is thorough for a simple extraction 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 coverage is 100%, so baseline is 3. The description does not add any extra information about parameter usage beyond what the schema already provides (customer_id required, org_id optional). No additional semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'extract' and the resource 'contact information from conversation history', listing specific fields (name, phone, email, address). It distinguishes from siblings like get_customer (which retrieves stored data) and create_customer by focusing on AI extraction from messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context via 'reads all messages with this customer' and suggests a use case ('Great for auto-filling CRM records'). However, it does not explicitly guide when not to use this tool or mention alternatives like get_customer for already-extracted data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_captionA
Generate an AI-powered social media caption.
Creates engaging, platform-optimized captions using AI. Supports Turkish and English, multiple tones.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | What the post is about (e.g., "new summer collection launch") | |
| platform | No | Target platform ("instagram", "facebook", "tiktok", "twitter") | |
| language | No | Caption language ("tr" Turkish, "en" English) | tr |
| tone | No | Writing tone ("professional", "casual", "fun", "formal") | professional |
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the burden. It states the tool generates captions via AI, indicating a read-only or creation action with no destructive side effects. However, it does not explicitly confirm non-modification or other behavioral traits like rate limiting or auth needs.
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?
Two sentences, front-loaded with primary action ('Generate an AI-powered social media caption'), no redundancy. Efficient but could be improved with slight structural clarity.
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 five well-documented parameters, an output schema (not shown but present), and related sibling tools, the description covers core functionality. Missing details like platform-specific behavior are acceptable, and output schema handles return values.
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 parameters are well-documented. The description adds minimal extra meaning ('Supports Turkish and English, multiple tones') which is already covered by enums in the schema. 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 clearly states the tool generates AI-powered social media captions and mentions platform optimization, language, and tone support. It implicitly differentiates from sibling 'generate_hashtags' but does not explicitly contrast with other related tools like 'create_social_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 implies when to use (for generating captions) but provides no guidance on when not to use or alternatives. Compared to siblings like 'generate_hashtags' or 'create_social_post', context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_hashtagsB
Generate AI-optimized hashtags for a social media post.
Creates relevant, trending hashtags based on caption content.
| Name | Required | Description | Default |
|---|---|---|---|
| caption | Yes | The post caption to generate hashtags for | |
| platform | No | Target platform ("instagram", "facebook", "tiktok", "twitter") | |
| language | No | Hashtag language ("tr" Turkish, "en" English) | tr |
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions 'AI-optimized' and 'trending' but does not disclose side effects, permissions, rate limits, or whether the tool is safe (read-only). For a generation tool, this is minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose. It is concise but could be slightly more efficient by combining sentences. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description covers the basic purpose but lacks usage guidelines and behavioral context. It is partially complete for a simple generation tool but could be improved.
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 explains each parameter. The description adds little beyond what the schema provides (e.g., 'caption content' is already in schema). Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates AI-optimized hashtags for a social media post, specifying it creates relevant, trending hashtags based on caption content. This clearly defines the function and distinguishes it from sibling tools like generate_caption, which creates captions instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as when to generate captions vs hashtags, or any prerequisites. The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_customerA
Get detailed information about a specific customer.
Returns full customer profile including contact details, tags, notes, conversation history summary, and order information.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID (from list_customers results) | |
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It accurately describes the read-only nature and return fields, but does not mention authentication, permissions, or error conditions. Adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The first sentence states the core function, the second expands on return data. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return type is documented elsewhere. The description covers the purpose and return content. Could note that the customer must exist, but not essential. Complete for a simple read 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?
Input schema has 100% description coverage (both parameters are described). The description adds no extra meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'detailed information about a specific customer', and lists specific return fields. This distinguishes it from sibling tools like list_customers (listing) and update_customer (modification).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when a single customer's full profile is needed, but does not explicitly state when not to use it or compare with alternatives like list_customers. Usage is inferred from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_social_analyticsA
Get social media analytics and performance metrics.
Returns engagement stats, follower growth, reach, and impressions for your social media accounts over a given time period.
| Name | Required | Description | Default |
|---|---|---|---|
| platform | No | Filter by platform ("instagram", "facebook", "tiktok", "twitter") | |
| account_id | No | Filter by specific social account ID | |
| period | No | Time period — "7d" (last 7 days), "30d" (last 30 days), "90d" (last 90 days) | 30d |
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It mentions returned metrics but does not state read-only nature, authentication needs, rate limits, or data freshness. It provides some context but is not comprehensive.
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 two concise sentences, front-loaded with the main purpose, and each sentence adds value without redundancy.
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 4 optional parameters and presence of an output schema, the description explains the returned data but does not address pagination, error handling, or prerequisites (e.g., connected accounts). It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds overall context about returned data but does not add specific meaning to individual parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets social media analytics and lists specific metrics like engagement stats, follower growth, reach, and impressions. This distinguishes it from siblings like get_social_quota or list_social_posts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool vs. alternatives such as list_social_posts or get_social_quota. It lacks explicit context for use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_social_quotaA
Get social media quota and usage limits for the current billing period.
Returns remaining post quota, message limits, and when the period resets. Useful before running bulk operations.
| Name | Required | Description | Default |
|---|---|---|---|
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. States what is returned (remaining quota, message limits, reset time), but does not explicitly confirm read-only behavior or mention permissions/limitations.
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?
Two sentences, no wasted words. First sentence states action and target, second sentence explains returns and usage 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?
Covers key return details and usage hint. Missing mention that org_id is optional and the scope is current billing period. With output schema present, return details are redundant but acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description does not mention the org_id parameter or clarify its role (optional, defaults to env var). No added semantics beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Get social media quota and usage limits for the current billing period,' specifying the exact verb and resource. Distinct from siblings like create_social_post or get_social_analytics.
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?
Provides guidance: 'Useful before running bulk operations,' indicating appropriate context. However, does not explicitly mention when not to use or compare with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_customersA
List CRM customers with optional filtering.
Browse the customer database built from social media conversations. Filter by name/email/phone search, platform source, or tags.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Search by customer name, email, or phone number | |
| platform | No | Filter by platform origin ("instagram", "facebook", "whatsapp") | |
| tag | No | Filter by customer tag (e.g., "vip", "lead", "returning") | |
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description labels the tool as 'list' and 'browse', implying read-only. However, it does not disclose pagination, sorting, or rate limits. Given the simplicity, it is minimally adequate but could be enhanced.
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: first states purpose, second explains data source, third lists filters. No redundant information, front-loaded with key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with 4 optional parameters and an output schema, the description covers main functionality and source. Missing pagination details but overall adequate.
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 descriptions cover 100% of parameters. The description adds context (e.g., 'name/email/phone search' specifies the search field) but does not significantly extend beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List CRM customers' with optional filtering, specifying the verb and resource. It is distinct from siblings like get_customer (single) and sync_customers_from_inbox (syncing vs listing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (browsing with filters) but does not explicitly state when to use this tool over alternatives or when not to use it. No mention of get_customer for specific lookups or sync for bulk data refresh.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_inboxA
List social media inbox conversations (DMs and comments).
Shows all incoming messages from Instagram, Facebook, WhatsApp, etc. Optionally filter by platform or unread status.
| Name | Required | Description | Default |
|---|---|---|---|
| platform | No | Filter by platform ("instagram", "facebook", "tiktok", "twitter") | |
| unread_only | No | If True, return only unread conversations | |
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It describes basic listing behavior but does not disclose potential side effects, pagination, rate limits, or authentication requirements. For a read-only tool, this is minimally sufficient but lacks depth.
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?
Two sentences with no wasted words. The most important information (listing inbox conversations) is front-loaded, followed by optional filtering details.
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 presence of an output schema and full parameter documentation, the description covers the core functionality adequately. However, it could mention potential limitations like pagination or result limits, but overall it is sufficient for a listing 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 coverage is 100%, so the schema already documents all three parameters (platform, unread_only, org_id). The description adds 'Optionally filter by platform or unread status', which mostly repeats schema descriptions. It does not clarify org_id usage beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'social media inbox conversations (DMs and comments)', specifying it shows incoming messages from multiple platforms. This distinguishes it from sibling tools like 'list_customers' or 'list_social_posts'.
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 mentions optional filtering by platform or unread status but does not explicitly state when to use this tool versus alternatives like 'read_conversation' or 'reply_to_message'. It implies listing all messages but lacks decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_organizationsA
List all organizations associated with your API key.
Use this to find your Organization ID (org_id) required for all social media and CRM tools. You can also set YAPARAI_ORG_ID env var to avoid passing it every time.
Returns: List of organizations with id, name, plan, and member count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the tool is read-only (list), returns specific fields, and requires API key association. Could be more explicit about no side effects, but sufficient.
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?
Two short paragraphs, front-loaded with purpose. Every sentence adds value: first line states function, second line gives usage context, third details return structure. 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 zero-parameter tool with output schema, description fully explains purpose, usage, and return format. No gaps given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist in the input schema, so baseline is 4. Description adds no extra parameter info but doesn't need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'list' and resource 'organizations associated with your API key'. It distinguishes from sibling tools like list_customers and list_social_accounts by specifying organization-level scope and its purpose for obtaining the Organization ID.
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?
Explicitly states when to use: to find the Organization ID required for all social media and CRM tools. Also provides an alternative method (setting YAPARAI_ORG_ID env var) and explains the returned data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_social_accountsA
List connected social media accounts (Instagram, Facebook, TikTok, X/Twitter).
Shows all social accounts linked to the organization with their status, username, and follower count. Requires enterprise subscription.
| Name | Required | Description | Default |
|---|---|---|---|
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It mentions output fields (status, username, follower count) but does not cover side effects, rate limits, or authentication beyond the subscription requirement.
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 concise with two sentences, front-loading the key purpose and then listing details. No superfluous 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?
Given the presence of an output schema (not shown) and the simple nature of the tool, the description covers the essential return fields and platform types. However, it lacks info on pagination or filtering, which could be useful for complex scenarios.
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 includes a description for org_id. The tool description does not add any parameter semantics beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'connected social media accounts', specifying platforms (Instagram, Facebook, TikTok, X/Twitter). It distinguishes from sibling tools like list_social_posts and get_social_analytics by focusing on account listing.
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 lacks explicit guidance on when to use this tool versus alternatives. It mentions 'Requires enterprise subscription' as a prerequisite, but no when-not or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_social_postsA
List published and scheduled social media posts.
Returns all posts for the organization with engagement stats. Supports filtering by platform, account, or post status.
| Name | Required | Description | Default |
|---|---|---|---|
| platform | No | Filter by platform ("instagram", "facebook", "tiktok", "twitter") | |
| account_id | No | Filter by specific social account ID | |
| status | No | Filter by post status ("published", "scheduled", "failed") | |
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Lacks annotations, but description adds that it returns engagement stats. However, it does not disclose pagination, ordering, rate limits, or permissions. The statement 'published and scheduled' contradicts later mention of 'failed' status, causing minor confusion.
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, efficient but front-loaded with a minor inconsistency: first sentence says 'published and scheduled' while schema and later sentence include 'failed' status. Otherwise no 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 list tool with output schema and full coverage of optional parameters, it covers core functionality. Missing pagination, sorting, and detailed explanation of 'engagement stats'. Siblings suggest differentiation, but not fully exploited.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all four parameters. Description only reinforces filtering by platform, account, or status, adding no new semantic meaning beyond the schema. The mention of 'engagement stats' relates to output, not parameters.
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?
Clearly states it lists social media posts with engagement stats, distinguishing it from siblings like create_social_post, delete_social_post, and get_social_analytics. The verb 'list' and resource 'social posts' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for listing posts with filters and stats, but does not explicitly state when to use this tool vs alternatives (e.g., get_social_analytics) nor when not to use it. No exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_conversationA
Read all messages in a social media conversation.
Get the full message history of a DM or comment thread.
| Name | Required | Description | Default |
|---|---|---|---|
| conversation_id | Yes | Conversation ID (from list_inbox results) | |
| account_id | Yes | Social account ID that received the messages | |
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description only states it reads and gets full message history, implying a read-only operation. However, no annotations are provided, and the description does not disclose any behavioral traits such as pagination, rate limits, permissions, or side effects. With no annotations, the description should provide more transparency about limitations or performance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two short sentences that front-load the main purpose. Every sentence adds value without superfluous details.
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 (3 parameters, no nested objects, output schema exists), the description is mostly complete. However, it lacks context about how to obtain prerequisite information like conversation_id from list_inbox, and does not mention any integration with sibling tools. Overall adequate but not exhaustive.
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% for all three parameters. The description does not add any extra meaning beyond what the schema already provides. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads all messages in a conversation and provides full message history of a DM or comment thread. It uses specific verbs and resource, distinguishing from sibling tools like list_inbox (which lists conversations) and reply_to_message (which sends messages).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you want to read messages, but does not explicitly state when to use it versus alternatives. It could mention that conversation_id should come from list_inbox, or that this is not for sending messages. Lack of explicit guidelines reduces clarity for selecting the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reply_to_messageA
Reply to a social media DM or message.
Send a reply in an existing conversation on Instagram, Facebook, WhatsApp, or other connected platforms.
| Name | Required | Description | Default |
|---|---|---|---|
| conversation_id | Yes | Conversation ID to reply in (from list_inbox) | |
| account_id | Yes | Social account ID to reply from | |
| message | Yes | Reply text content | |
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the action but does not disclose idempotency, rate limits, error cases (e.g., invalid conversation_id), or mutability. The org_id parameter fallback is noted, but overall behavioral context is thin for a mutating 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?
Two concise sentences with no extraneous information. Clearly states the purpose and scope. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (not shown) and 100% parameter coverage, the description covers the core action adequately. However, a brief note on error/state changes would improve completeness for a mutating 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 coverage is 100% with descriptions for each parameter. The description adds minor context (conversation_id from list_inbox, account_id from social accounts, org_id fallback), but does not significantly enhance beyond the schema. 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 clearly states the tool replies to a social media DM/message in an existing conversation, specifying supported platforms (Instagram, Facebook, WhatsApp). This distinguishes it from sibling tools like 'send_shipping_info' or 'ai_reply_suggestion'.
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 mentions 'existing conversation' and lists required parameters, but does not explicitly state when to use this tool vs alternatives like 'ai_reply_suggestion' or provide constraints (e.g., only for direct messages, not public posts). No when-not or exclusions given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_shipping_infoA
Send shipping and tracking information to a customer.
Automatically sends a tracking message through the same social platform the customer used to contact you (Instagram DM, WhatsApp, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID to notify | |
| carrier | Yes | Shipping carrier name (e.g., "Yurtici", "Aras", "PTT", "MNG", "DHL") | |
| tracking_code | Yes | Package tracking number | |
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description partially carries the burden. It discloses the automatic platform detection behavior, but does not mention potential side effects (e.g., quota usage, permission requirements, failure modes). The description adds some transparency but could be more comprehensive.
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 two sentences: the first establishes the core function, the second adds critical behavioral detail. Every word contributes, and the structure is front-loaded with the key verb and resource.
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 existence of an output schema and full parameter descriptions in the schema, the description is mostly complete. It explains the automatic routing behavior. However, it lacks mentions of prerequisites (e.g., connected social accounts) or limitations (unsupported platforms), which would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so the baseline is 3. The description does not add any additional meaning beyond the schema's parameter descriptions; it merely restates the tool's purpose. No extra value for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (send) and the resource (shipping/tracking information to a customer). It adds distinctive context by specifying the automatic platform detection (Instagram DM, WhatsApp), which differentiates it from generic messaging tools like reply_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?
The description implies usage when shipping information is ready to be sent, but it does not explicitly state when to use this tool over alternatives (e.g., if you need to send a custom message, use reply_to_message). No when-not guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_customers_from_inboxA
Import customers from social media inbox conversations.
Scans all inbox conversations and creates CRM customer records for everyone who has messaged you. New customers are auto-tagged by platform. Existing customers are not duplicated.
| Name | Required | Description | Default |
|---|---|---|---|
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses scanning all conversations, creating records for everyone who messaged, auto-tagging by platform, and no duplication. Lacks details on auth requirements or rate limits, but adequate for a simple import.
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 front-loading the purpose, with no extraneous words. Every sentence is informative.
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 presence of an output schema (not shown but confirmed) and the tool's simplicity, the description adequately covers behavior and intent. No need to detail return values.
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 (org_id) with 100% schema coverage. Description adds no additional meaning beyond the schema's description. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'import' and resource 'customers from social media inbox conversations'. It distinguishes from siblings like 'create_customer' (manual single creation) and 'list_customers' (querying existing records).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for bulk import from inbox conversations, mentioning auto-tagging and no duplicates. However, it does not explicitly state when to use this tool versus alternatives (e.g., create_customer for individual additions).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_customerA
Update an existing customer's information.
Partially update a customer record — only provided fields are changed. Tags replace the existing tag list completely.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID to update | |
| name | No | Updated full name | |
| phone | No | Updated phone number | |
| No | Updated email address | ||
| address | No | Updated address | |
| tags | No | New tag list (replaces all existing tags) | |
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the update is partial (only provided fields changed) and that tags completely replace existing tags. This is good behavioral context, though it does not mention auth or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the action and key behaviors. No redundancy or unnecessary words; every sentence adds value.
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 existence of an output schema, return values are covered. The description covers partial update and tag replacement, which are key points. It could mention org_id inheritance, but overall it is sufficiently complete for a moderately complex update 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 coverage is 100%, so each parameter already has a description. The description adds value by clarifying partial update and tag replacement behavior, but does not elaborate on individual parameters beyond schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it updates an existing customer's information and emphasizes partial update behavior. This distinguishes it from create_customer (creates new) and get_customer (reads), providing purpose clarity.
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 when to use (modify existing customer), but does not explicitly state when not to use or mention alternatives. However, sibling tools like create_customer and get_customer are listed, allowing the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
22 tool updates
v0.1.0- First observed
add_customer_note - First observed
ai_reply_suggestion - First observed
bulk_message - First observed
create_customer - First observed
create_social_post - First observed
delete_social_post - First observed
extract_customer_info - First observed
generate_caption - First observed
generate_hashtags - First observed
get_customer - First observed
get_social_analytics - First observed
get_social_quota - First observed
list_customers - First observed
list_inbox - First observed
list_organizations - First observed
list_social_accounts - First observed
list_social_posts - First observed
read_conversation - First observed
reply_to_message - First observed
send_shipping_info - First observed
sync_customers_from_inbox - First observed
update_customer
TDQS
Scored across 22 tools
Each tool targets a distinct action and resource. For example, customer tools (create, get, update, list, note) are separate from social posting (create, delete, list, caption, hashtags) and inbox management (list, read, reply, bulk, AI suggestion). Even overlapping domains like AI reply suggestion vs. reply_to_message are clearly distinguished by generation vs. sending.
All tools follow a consistent verb_noun pattern in snake_case (e.g., create_customer, list_social_posts, get_social_analytics). No mixing of camelCase or other conventions. The pattern is predictable across all 22 tools.
22 tools is slightly above the typical 3-15 range for a well-scoped server, but each tool has a clear purpose and the number is justified by the breadth of functionality (CRM, social posting, inbox, analytics, organization management). It is not excessive and avoids redundancy.
The tool set covers core CRUD for customers and social posts, inbox interaction, analytics, and AI-assisted features. Minor gaps like missing update for social posts, tag management, or message deletion exist, but the main workflows are well-supported. Agents can accomplish most tasks without dead ends.
Maintenance
Related MCP Connectors
Social media automation from your AI assistant: Instagram DMs, scheduling to 9 platforms, analytics.
Post, schedule, and track social posts on X, Bluesky, LinkedIn, Instagram and more from AI agents.
- AntworkOAuthio.antwork
Draft, schedule, and publish social posts for your workspace straight from your AI.
Create, schedule, and publish social media posts from AI assistants. Built for agencies.
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-
- AlicenseAqualityBmaintenanceEnables AI assistants to schedule and publish social media posts to platforms like Instagram, TikTok, YouTube, LinkedIn, Facebook, X, Threads, and Pinterest using natural language.33118 npm3MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to create, schedule, and manage social media posts across 10 platforms via a unified API.-
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage social media through Sooshie, including scheduling posts, generating captions, managing accounts, and more via natural language.9 npm-