Sociality MCP
Server Details
Social media analytics, post insights, and competitor benchmarking for AI agents.
- Status
- Healthy
- Uptime
- 3.6% over 64 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- socialityio/sociality-mcp
- GitHub Stars
- 6
- Server Listing
- Sociality MCP
TDQS
Scored across 7 tools
Tools split cleanly along two axes: own account vs. tracked competitor, and posts vs. stats vs. list. Each name-plus-description targets a distinct resource and action, leaving no realistic chance of misselection.
All tools follow a predictable snake_case pattern of social_<resource>_<action> with the verb trailing (list, create). Minor deviation in singular/plural handling ('social_accounts_list' vs 'social_account_posts_list'/'social_competitor_posts_list'), but the convention is still readable and consistent.
Seven tools is well-scoped for a social analytics/tracking server, with a symmetric read surface for both owned and competitor accounts plus a single write operation. No tool feels redundant or padded.
The read/analytics surface is well covered (accounts, posts, stats for both owned and competitor channels) and competitors can be added via social_competitors_create. However, there is no way to remove/untrack a competitor, so the competitor lifecycle is incomplete and asymmetrical with the create operation.
Available Tools
7 toolssocial_accounts_listAccounts ToolBRead-onlyInspect
This tool is used to get the social media accounts that the user has access to.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Filter accounts by name or username (contains). | |
| page | No | Page number for pagination (default: 1). | |
| channel | No | Filter accounts by channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| accounts | Yes | List of social media accounts the user has access to. |
| _envelope | Yes | Versioned response envelope metadata. |
| pagination | Yes | |
| action_required | No | Present only when a user action is required before this request can be answered. The data block is empty and no credits were charged. Do not re-call this tool with different arguments or a wider date range; the workspace needs a change first, unless the action says how to adjust the call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds one useful behavioral fact — results are scoped to accounts the user has access to — but says nothing about pagination behavior or result volume. With annotations carrying the main burden, a 3 is appropriate.
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 short sentence with no padding beyond the boilerplate opener 'This tool is used to'. It is front-loaded and cheap to read, though the boilerplate could be dropped entirely.
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 low-risk read-only list tool with full schema coverage and an output schema, the description is minimally sufficient. It still omits any guidance on when to reach for this versus the competitor listing siblings, which for a family of six similarly named tools is a real gap.
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 all three parameters (name, page, channel) are documented in the schema, including the channel enum. The description adds no filtering or pagination semantics beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('get the social media accounts'), and the qualifier 'that the user has access to' implicitly distinguishes it from the competitor-account siblings. However, it never names or contrasts with any sibling, so the differentiation is left to inference.
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 statement of prerequisites, and no mention of alternatives such as social_competitors_list. The agent must infer that this is a discovery/list step for the caller's own accounts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
social_account_stats_listAccount Stats ToolCRead-onlyInspect
This tool is used to get the insights of the social media account including followers, views, engagement rate, comments, likes and more for the given period.
| Name | Required | Description | Default |
|---|---|---|---|
| since | Yes | The date to start the analytics from (YYYY-MM-DD). Metric lag is an expected delay, not a strict cutoff; available data is returned through the requested date. Use social_platform_capabilities for channel-specific lag details. | |
| until | Yes | The date to end the analytics at (YYYY-MM-DD). Metric lag is an expected delay, not a strict cutoff; available data is returned through the requested date. Use social_platform_capabilities for channel-specific lag details. | |
| period | No | Aggregation period: day, week, or month. | |
| account_id | Yes | The ID of the account to get analytics for. |
Output Schema
| Name | Required | Description |
|---|---|---|
| account | No | |
| _envelope | Yes | Versioned response envelope metadata. |
| account_stats | Yes | List of account stats for the given period. |
| action_required | No | Present only when a user action is required before this request can be answered. The data block is empty and no credits were charged. Do not re-call this tool with different arguments or a wider date range; the workspace needs a change first, unless the action says how to adjust the call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds no behavioral context of its own — notably it omits the metric-lag semantics that the schema documents, and says nothing about pagination, rate limits, or data freshness. Its only addition (the metric list) is duplicative of the output 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 sentence with no filler, and the core purpose plus metric list are front-loaded. It wastes a few words on the boilerplate opener 'This tool is used to', which pushes it just short of a 5.
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 a rich schema (100% coverage), a populated output schema, and safety annotations, the description is not required to explain parameters or return shape. It is nevertheless thin where it matters most: no guidance on own-account vs competitor stats selection and no mention of the metric-lag behavior that defines the since/until semantics.
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%: since/until document the YYYY-MM-DD format and the metric-lag caveat in depth, period documents its enum values, and account_id is spelled out. The description contributes no parameter-level detail at all, 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?
The description states a specific verb and resource ('get the insights of the social media account') and enumerates the returned metrics (followers, views, engagement rate, comments, likes), so the agent knows exactly what the tool produces. It does not, however, distinguish itself from the near-identical sibling social_competitor_stats_list, leaving the account-vs-competitor distinction to the tool names 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 when-to-use, when-not-to-use, or alternative routing guidance. The only implied usage is 'given period', which comes from the required since/until params rather than from any prose. Nothing tells the agent to prefer this over social_competitor_stats_list for own-account analytics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
social_competitor_posts_listCompetitor Posts ToolBRead-onlyInspect
This tool is used to get the published posts of a competitor (tracked social media account) for the given period.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1). Check pagination.has_more for more posts. | |
| type | No | Filter competitor posts by type. Supported types by channel: facebook: status, photo, video, link, album; instagram: photo, video, carousel, reels; linkedin: status, photo, video, link, document; tiktok: video; x: status, photo, video; youtube: video. | |
| limit | No | Maximum number of posts to return (1-50). Defaults to 50; values above 50 are capped at 50. | |
| order | No | Sort order for posts. | |
| since | Yes | Filter by published_at start date (YYYY-MM-DD). | |
| until | Yes | Filter by published_at end date (YYYY-MM-DD). | |
| competitor_id | Yes | The ID of the competitor (track) to get posts for. Use social_competitors_list to find competitor IDs. |
Output Schema
| Name | Required | Description |
|---|---|---|
| _envelope | Yes | Versioned response envelope metadata. |
| competitor | No | |
| pagination | No | |
| competitor_posts | Yes | List of published posts for the competitor. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered without the description. The description adds one useful behavioral fact — that only *published* posts are returned (excluding drafts/scheduled) and that results are scoped to a period — but says nothing about pagination, rate limits, or empty-result 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; the key noun (published posts of a competitor) lands immediately. Minor deduction for the leading whitespace and the slightly redundant 'This tool is used to' preamble.
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 a full-coverage schema, an output schema, and annotations, the structured fields carry most of the burden, so the thin description is not fatal. Still, for a 7-parameter filtered-list tool the description omits any mention of default result size or the competitor_id prerequisite, leaving it merely 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 description coverage is 100%: pagination, type-per-channel enum mapping, limit capping, sort order, date formats and the competitor_id lookup hint are all documented in the schema itself. The description adds no parameter detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('get the published posts') and resource ('a competitor (tracked social media account)'), and adds a scope qualifier ('for the given period'). The parenthetical clarifies what a competitor is, which helps. However, it never names the near-identical sibling social_account_posts_list, so the agent must infer the competitor-vs-owned-account distinction on its own.
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 only implies that a date range is needed ('for the given period') and gives no explicit when-to-use guidance, no prerequisites, and no mention of the sibling alternative social_account_posts_list. Nothing tells the agent when this tool is the right choice over listing its own account's posts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
social_competitors_createCompetitor Create ToolBIdempotentInspect
This tool is used to add a competitor/tracked social media account by social profile URL and start tracking it.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The social media profile URL of the competitor (for example: https://www.instagram.com/pepsi). | |
| timezone | No | Optional timezone for this tracked competitor. Defaults to team's timezone when not provided. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message if operation fails. |
| _envelope | Yes | Versioned response envelope metadata. |
| competitor | No | Created competitor tracking record. |
| action_required | No | Present only when a user action is required before this request can be answered. The data block is empty and no credits were charged. Do not re-call this tool with different arguments or a wider date range; the workspace needs a change first, unless the action says how to adjust the call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false and openWorldHint=true, covering the safety and repeat-call profile. The description adds one piece of behavioral context beyond that — that creation also begins ongoing tracking — but says nothing about what happens when the competitor already exists, permission requirements, or tracking frequency.
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 that front-loads the action, with no padding or repetition. It opens with the low-value boilerplate 'This tool is used to', which is the only thing keeping it from a 5.
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?
An output schema exists, so return values need no explanation, and the annotations carry the mutation/idempotency profile. For a two-parameter tool with 100% schema coverage, the description supplies everything an agent needs to invoke it correctly, even if it is terse.
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 the url and timezone parameters (including the default-to-team-timezone behavior) are already fully documented in the schema. The description only restates that a social profile URL is the input, adding no format or syntax detail beyond what the schema provides. 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 and resource: adding a competitor/tracked social account by profile URL and starting tracking. It is clearly distinguishable from the sibling list tools (social_competitors_list, social_competitor_posts_list), though it never names them or explicitly contrasts itself.
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, when-not-to-use, or alternative guidance. The only hint is the phrase 'start tracking it', which implies this is the entry point for onboarding a new competitor, but the agent must infer prerequisites (auth, existing-team context) and duplicate-handling behavior entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
social_competitors_listCompetitors ToolBRead-onlyInspect
This tool is used to get the competitors and/or public social media accounts that are tracked across social media channels.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Filter competitors by name or username (contains). | |
| page | No | Page number for pagination (default: 1). | |
| channel | No | Filter competitors by channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| _envelope | Yes | Versioned response envelope metadata. |
| pagination | Yes | |
| competitors | Yes | List of competitors the user's team is tracking. |
| action_required | No | Present only when a user action is required before this request can be answered. The data block is empty and no credits were charged. Do not re-call this tool with different arguments or a wider date range; the workspace needs a change first, unless the action says how to adjust the call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety and scope are covered without the description. The description adds only that results are limited to tracked competitors/public accounts, but says nothing about pagination behavior, result caps, or auth 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?
One short sentence with no padding beyond the boilerplate opener 'This tool is used to' and leading whitespace. It is appropriately sized for a simple list tool, though the phrasing could be tighter.
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?
An output schema exists, so return values need not be explained, and the low complexity (3 optional params) keeps the bar modest. Still, the description leaves the sibling overlap with social_accounts_list unresolved and offers no guidance on paginating through results.
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% (name, page, channel all documented, with an enum for channel), so the schema carries the parameter burden. The description contributes no additional meaning about filtering semantics or pagination usage, 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?
The description names a specific verb ('get') and resource ('competitors and/or public social media accounts that are tracked across social media channels'), which is enough for an agent to know what it returns. However, the 'and/or' phrasing muddies the scope and it never distinguishes this tool from the very similar sibling social_accounts_list, so the agent cannot tell them apart from the description 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 statement of when to use this tool versus social_accounts_list or social_competitors_create, and no prerequisites or exclusions. Usage is only inferable from the verb 'get'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
social_competitor_stats_listCompetitor Stats ToolARead-onlyInspect
This tool is used to get the public stats of a competitor (tracked social media account) including followers, views, likes and more for the given period.
| Name | Required | Description | Default |
|---|---|---|---|
| since | Yes | The date to start the stats from (YYYY-MM-DD). Metric lag is an expected delay, not a strict cutoff; available data is returned through the requested date. Use social_platform_capabilities for channel-specific lag details. | |
| until | Yes | The date to end the stats at (YYYY-MM-DD). Metric lag is an expected delay, not a strict cutoff; available data is returned through the requested date. Use social_platform_capabilities for channel-specific lag details. | |
| period | No | Aggregation period: day, week, or month. | |
| competitor_id | Yes | The ID of the competitor (track) to get stats for. Use social_competitors_list to find competitor IDs. |
Output Schema
| Name | Required | Description |
|---|---|---|
| _envelope | Yes | Versioned response envelope metadata. |
| competitor | No | |
| competitor_stats | Yes | List of competitor stats for the given period. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds only that the data is 'public' and what metrics come back; it says nothing about metric lag (which the schema params do explain), permissions, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler beyond a mild 'This tool is used to' lead-in and stray leading whitespace. It is front-loaded on the resource and lists the returned metrics immediately, though it spends no words on the sibling disambiguation that would earn a 5.
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 an output schema present, return values need no explanation, and all four parameters plus date-lag caveats are covered by the schema. Annotations cover the safety profile, so the remaining gap is only the missing competitor-vs-account routing versus social_account_stats_list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in the schema, including date format, metric-lag semantics, and the pointer to social_competitors_list for ID lookup. The description contributes nothing beyond the schema, which is the expected baseline when 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?
States a specific verb and resource ('get the public stats of a competitor') and enumerates returned metrics (followers, views, likes), which is clearer than a bare restatement of the name. It does not, however, explicitly distinguish itself from the very similar sibling social_account_stats_list; the reader must infer the competitor-vs-owned-account split 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: 'for the given period' signals it is a stats-fetch over a date range, but there is no when-to-use/when-not guidance and no mention of the sibling social_account_stats_list as the alternative for owned accounts. The only routing hint lives in the schema (competitor_id -> social_competitors_list), not in the description.
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.
7 tool updates
- First observed
social_account_posts_list - First observed
social_account_stats_list - First observed
social_accounts_list - First observed
social_competitor_posts_list - First observed
social_competitor_stats_list - First observed
social_competitors_create - First observed
social_competitors_list
Publisher details
- Operator
- Sociality.io · Publisher source
- Operator website
- https://sociality.io/ · Publisher source
- Vendor relationship
- First-party · Publisher source
- Documentation
- https://sociality.io/docs/ · Publisher source
- Trust center
- https://sociality.io/security · Publisher source
- Restrictions
- Requires a Sociality.io account with MCP access and OAuth authorization. Account and competitor analytics and post queries consume MCP credits. Data access depends on workspace permissions, connected accounts, source platform availability, and plan retention. Client availability may depend on the client plan and workspace settings. · Publisher source
Related MCP Connectors
Social media analytics, video analysis, and competitor intel for any MCP-compatible AI agent.
AI-powered social media intelligence: profile analysis, engagement scoring, and trend detection.
Live social media data for AI agents: X, LinkedIn, Instagram, TikTok, YouTube, Reddit, Facebook.
Post, schedule, and track social posts on X, Bluesky, LinkedIn, Instagram and more from AI agents.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides social intelligence tools for AI agents to analyze competitor sentiment, trends, and brand mentions from X/Twitter data.MIT
- AlicenseAqualityDmaintenanceProvides AI agents with unified access to 21 social media platforms and 105 endpoints for retrieving profiles, posts, comments, search results, trending content, and analytics without per-platform authentication.4132 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to draft, schedule, and publish social media content, generate AI text and image variations, analyze performance, and automate social workflows.MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to create, schedule, and manage social media posts across 10 platforms via a unified API.-
Glama MCP Gateway
Add one secure layer between your agents and this server.
social_account_posts_listAccount Posts ToolBRead-only Inspect
This tool is used to get the published posts and stories of the social media account for the given period.
Output Schema
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds almost nothing behavioral beyond this — only the word 'published' hints that drafts/scheduled posts are excluded. No pagination or auth context is added, though the output schema does exist.
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 no wasted words and the purpose stated up front. Minor deduction for the stray leading indentation and the filler opening 'This tool is used to.'
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 a simple read-only list with a complete schema and an output schema, so return values need not be described. However, it omits any guidance on choosing between this and sibling post/stats tools, leaving a clear gap for an agent picking among six related tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters including the enum values and date formats. The description contributes no additional parameter meaning, 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 (get) and resource (published posts and stories of the social media account) with a scope (given period). It is clear what the tool does, but it never names or contrasts with the closest sibling, social_competitor_posts_list, so the agent must infer the own-account vs competitor distinction.
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 'for the given period' and 'the social media account.' There is no explicit when-to-use, when-not-to-use, or routing to alternatives such as social_competitor_posts_list or the stats tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.