Skip to main content
Glama

Tools

Tool

Description

list_keyword_searches

List all keyword searches, filtered by status

keyword_search

Create a keyword/hashtag search and return results when complete

get_keyword_search

Get keyword search results (status, analytics, posts)

list_user_searches

List all user searches, filtered by status

user_search

Create a user profile search and return results when complete

get_user_search

Get user search results (profile, metrics, content analysis)

list_expert_searches

List all expert searches, filtered by status

expert_search

Find experts matching a natural-language query and return results when complete

get_expert_search

Get expert search results (recommended experts with AI-generated match summaries)

get_topic_tree

Get conversation topic tree for a keyword search

get_keyword_search_posts

Get raw posts from a keyword search

get_user_search_posts

Get raw posts from a user search

list_agent_runs

List Rolli Agent runs (AI-driven social intelligence investigations)

start_agent_run

Start a Rolli Agent investigation and return the markdown report when complete

get_agent_run

Get a Rolli Agent run by ID (progress while running, full report when complete)

cancel_agent_run

Cancel a pending or running Rolli Agent run

rerun_agent_run

Retry a failed, waiting, or stuck Rolli Agent run

update_agent_run

Pin or rename a Rolli Agent run

delete_agent_run

Soft-delete a completed or failed Rolli Agent run

list_agent_schedules

List Rolli Agent scheduled reports

create_agent_schedule

Create a recurring Rolli Agent report (daily/weekly/monthly/once)

get_agent_schedule

Get a Rolli Agent schedule with its 10 most recent runs

update_agent_schedule

Update a Rolli Agent schedule

delete_agent_schedule

Permanently delete a Rolli Agent schedule

pause_agent_schedule

Pause a Rolli Agent schedule

resume_agent_schedule

Resume a paused Rolli Agent schedule

list_agent_schedule_runs

List the full execution history of a Rolli Agent schedule

get_integration_setup

Get current integration settings (webhook URL, name)

update_integration_setup

Set the webhook URL for search completion notifications

get_usage

Get API usage data and per-user breakdowns

Related MCP server: Grok X Insights MCP Server

Setup

You need a Rolli account with API access. Get your API token from rolli.ai.

Claude Desktop / Claude Code / VS Code / Cursor / Windsurf

Add to your MCP config (claude_desktop_config.json, .vscode/mcp.json, or equivalent):

{
  "mcpServers": {
    "rolli": {
      "command": "npx",
      "args": ["-y", "@rolli/mcp"],
      "env": {
        "ROLLI_API_TOKEN": "your_token"
      }
    }
  }
}

ROLLI_USER_ID is optional and defaults to "rolli-mcp". Set it to override with your own user ID.

Optional Environment Variables

Variable

Default

Description

ROLLI_USER_ID

"rolli-mcp"

User ID sent with API requests

ROLLI_POLL_INTERVAL_MS

5000

Polling interval (ms) when waiting for search results

ROLLI_MAX_POLL_MS

600000

Max time (ms) to wait before search timeout (default: 10 min)

ROLLI_MAX_RESPONSE_BYTES

140000

Max tool-response size in bytes; larger responses are trimmed (truncated: true). claude.ai and Claude Desktop accept ~150,000 characters per tool result, so keep it under that

Smithery

This server includes a smithery.yaml for deployment via Smithery. It will prompt for your API token during setup.

Usage Examples

Search for a keyword across social media:

"Search for posts about 'artificial intelligence' on Twitter and Reddit from the last week"

Analyze a user profile:

"Look up @elonmusk on Twitter and analyze their recent posts"

Get topic breakdown:

"Show me the topic tree for my keyword search #123"

Check API usage:

"How many searches have I used this month?"

Set up a webhook:

"Set my webhook URL to https://myapp.com/rolli-callback"

Optional X/Twitter Source Context

Rolli is useful for cross-platform social search, topic trees, user analysis, and scheduled social intelligence reports. If an agent also needs reviewed account-scoped X/Twitter source evidence before a Rolli investigation, collect that evidence in an approved OpenClaw workflow such as TweetClaw, then pass only the reviewed handles, post URLs, post IDs, excerpts, or summary notes into Rolli prompts.

Keep Rolli and TweetClaw credentials separate. Do not transfer API tokens, cookies, sessions, or account credentials between tools. Treat TweetClaw output as source context for Rolli searches and reports, not as publishing approval.

Development

npm ci
npm run lint    # ESLint
npm run build   # TypeScript
npm test        # Vitest

CI runs on every push and PR to master. Releases published on GitHub automatically publish to npm (requires NPM_TOKEN repo secret).

License

MIT

Available Tools

30 tools
cancel_agent_runA

Cancel a pending or running Rolli Agent run. Marks the run as failed.

NameRequiredDescriptionDefault
idYesRun UUID

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It does usefully disclose the post-condition ('Marks the run as failed'), but omits whether cancellation is immediate or cooperative, whether it is reversible or the run can be rerun, and what happens to partial output. Those gaps matter for a mutation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and scope, then the side effect. Nothing is wasted and nothing needs reordering.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter mutation tool with no annotations and no output schema, the definition covers the action, the eligible states, and the resulting status. It still leaves an agent guessing about irreversibility and about how to obtain a valid run id, which is the main remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single required parameter whose schema description ('Run UUID') and regex pattern already document it fully at 100% coverage. The description adds no format or sourcing guidance (e.g. obtainable from list_agent_runs), so it matches the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Cancel a ... Rolli Agent run') and scopes it to 'pending or running' runs, which separates it from delete_agent_run on state grounds. It does not name the sibling it differs from, so an agent must infer the distinction from sibling names alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'pending or running' implies a state precondition, giving some implicit guidance on when the tool applies. However, it never says when to prefer this over delete_agent_run or update_agent_run, nor what to do for a completed run.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_agent_scheduleB

Create a recurring Rolli Agent report that runs on a cron-like cadence (daily, weekly, monthly, or one-time) with optional email and Slack notifications.

NameRequiredDescriptionDefault
modeNoInvestigation mode (default: trend_briefing)
nameYesUser-friendly name
ends_atNoISO 8601 timestamp when the schedule stops
max_postNoPosts per platform per run (default: 100)
questionYesThe recurring question for the agent
platformsNoPlatforms to search
starts_atYesISO 8601 timestamp when the schedule becomes active
time_windowNoTime window per run (default: 7d)
notify_emailNoEmail address for run notifications
slack_team_idNoSlack workspace ID
recurrence_timeYesTime of day in HH:MM format (e.g., "09:00")
recurrence_typeYesSchedule cadence
slack_bot_tokenNoSlack bot token
slack_team_nameNoSlack workspace name
available_creditsNoReasoning effort for each run: 1=low, 2=medium, 3=high, 4=max (default)
recurrence_timezoneYesIANA timezone (e.g., "America/New_York")
notify_slack_webhookNoSlack webhook URL
recurrence_day_of_weekNo0–6 for weekly schedules (0 = Sunday)
notify_slack_channel_idNoSlack channel ID
recurrence_day_of_monthNo1–31 for monthly schedules

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing beyond the surface purpose. For a mutation that creates an ongoing job with per-run credit consumption (available_credits), the description never says whether the schedule starts running immediately, what happens on duplicate names, whether notification failures block a run, or what the tool returns. Only the 'optional email and Slack notifications' clause adds real behavioral color.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the cadence list and notification clause both earn their place. It could be marginally tighter, but nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 20-parameter creation tool with six required fields, no annotations, and no output schema, the definition is minimum viable: it conveys what gets created and on what cadence but leaves the agent to infer startup behavior, return value, and the interaction between starts_at, ends_at, and the recurrence_* fields. The internal schema is well documented, which offsets part of the gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 every parameter including enums, defaults, and formats; the description adds no syntax or format detail beyond restating the cadence options. It does flag that notifications are optional, which helps an agent decide which of the three Slack/email parameters are safe to omit, but that is marginal against a 20-parameter schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource ('Create a recurring Rolli Agent report') and enumerates the supported cadences (daily, weekly, monthly, one-time) plus the notification channels, which maps directly onto recurrence_type's enum. The word 'Create' implicitly distinguishes it from the large family of update_/delete_/pause_/resume_/list_ schedule siblings, though it never names one explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'recurring ... report' suggests this is the setup step rather than an execution step, which contrasts loosely with start_agent_run and the *_agent_schedule mutation siblings. There is no explicit guidance on when to choose a schedule versus a one-off run, nor any prerequisite note (e.g. that a schedule may need to be resumed/activated, or that credits are consumed per run).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_agent_runA

Soft-delete a Rolli Agent run. The record remains in the database for audit purposes but is hidden from listings. Only works on completed or failed runs — cancel the run first if it is still running.

NameRequiredDescriptionDefault
idYesRun UUID

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations supplied, the description carries the full burden and does well: it discloses that deletion is soft (record retained for audit, hidden from listings) and that the operation is gated on terminal run state. It stops short of stating permission/auth requirements, whether the deletion can be undone, or what a success response looks like — a meaningful but not fatal gap for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with zero filler; the operation is front-loaded, followed by the persistence consequence, then the precondition. Every sentence contributes distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter mutation with no output schema, the description covers the essentials: effect on data, visibility consequence, and the state guard. Only permission requirements and the success/error surface are left unstated, which is minor at this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single 'id' parameter is already documented as 'Run UUID' with a strict UUID pattern, so the description adds no format or scope meaning beyond it. The baseline of 3 applies when the schema does the parameter work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Soft-delete a Rolli Agent run') and immediately qualifies it with the soft-delete semantics, so an agent knows exactly what operation is performed. Naming the running-state restriction also implicitly separates it from cancel_agent_run and update_agent_run.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit preconditions: 'Only works on completed or failed runs' tells the agent when the call will fail, and 'cancel the run first if it is still running' names the alternative action for the excluded case. Both when-to-use and when-not-to-use are covered without inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_agent_scheduleA

Permanently delete a Rolli Agent schedule and its execution history. This is irreversible. Use pause_agent_schedule to temporarily stop a schedule without losing history.

NameRequiredDescriptionDefault
idYesSchedule UUID

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden; it discloses the two most important traits — permanence ('Permanently', 'This is irreversible') and collateral destruction of execution history. It does not mention permission requirements or what happens when the id does not exist, keeping it short of 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the destructive nature and irreversible consequence, followed by the alternative. No filler, though the 'Rolli Agent' qualifier is slightly redundant for an agent already in this toolset.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter destructive tool with no output schema, the description covers consequence, irreversibility, and the safe alternative. The only gap is behavior on an invalid or already-deleted id, which is a minor edge case given the simple schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter and schema description coverage is 100%, so the schema already documents 'id' as a Schedule UUID. The description adds no format, source, or lookup guidance (e.g. where to obtain the schedule id) beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Permanently delete a Rolli Agent schedule') plus the extended scope ('and its execution history'), which an agent cannot infer from the name alone. It is clearly distinguishable from sibling update_agent_schedule and pause_agent_schedule.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the alternative (pause_agent_schedule) and the condition that selects it: temporarily stopping a schedule without losing history. This gives a direct when-to-use-this-vs-that routing rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_agent_runA

Get a Rolli Agent run by ID. While running, returns progress (percentage, phase, current tool). Once complete, returns the full markdown report, signals, evidence links, and usage metrics.

NameRequiredDescriptionDefault
idYesRun UUID

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations supplied, the description carries the full burden, and it discloses the key non-obvious trait: the response shape changes with run state, returning progress (percentage, phase, current tool) while running and a full report, signals, evidence links, and usage metrics when complete. It omits error behavior for invalid or deleted run IDs and any rate-limit or polling guidance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action and followed by the state-dependent return contract. Every clause carries information; nothing is repetitive filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description appropriately compensates by describing both possible return shapes and enumerating the completed-run payload. Minor gaps remain around failure modes and whether polling is expected, which matter for an agent driving a long-running job.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is documented as 'Run UUID' with format and pattern constraints, so the schema does the heavy lifting. The description's 'by ID' adds no syntax or format detail beyond that, matching the baseline for high-coverage schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get a Rolli Agent run by ID'), which is unambiguous on its own. It does not reference siblings such as list_agent_runs or cancel_agent_run, so an agent must infer that this is the single-run retrieval counterpart to the list tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The two-state phrasing ('While running... Once complete...') implies the polling pattern for an in-flight run, which is useful implied guidance. There is no explicit statement of when to prefer this over list_agent_runs, nor any exclusion or precondition such as what to do if the ID is unknown.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_agent_scheduleA

Get a Rolli Agent schedule's full configuration plus its 10 most recent execution records.

NameRequiredDescriptionDefault
idYesSchedule UUID

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose a real behavioral trait beyond the schema — the result is capped at the 10 most recent execution records — which tells an agent the payload is bounded and not a complete history. It says nothing about read-only safety, auth requirements, error behavior, or whether the 10-record cap is fixed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence with no wasted words, and the most decision-relevant information (what the response contains) is front-loaded rather than buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only getter with no output schema, the description does the important remaining job by summarizing return contents, including the bounded recent-runs portion. The only real gaps are how the schedule id is discovered and any failure modes, which are minor for a tool this simple.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single required parameter whose schema coverage is 100% and which is explicitly described as the 'Schedule UUID' with a UUID format and pattern. The description adds no extra meaning about the identifier or its source, so the schema does all the work — the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Get a Rolli Agent schedule') and, unusually, specifies the exact return payload: full configuration plus the 10 most recent execution records. That payload detail distinguishes it from list_agent_schedules and list_agent_schedule_runs, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the detail-fetch for a single schedule whose UUID it already has, but the description never states when to prefer it over list_agent_schedule_runs or where to obtain the id. No exclusions or prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_integration_setupA

Get the current integration settings (webhook return URL and integration name).

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It indicates a read operation via 'get' but does not explicitly state read-only nature, auth requirements, or rate limits. The description is 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence with no wasted words, front-loading the action and result.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple parameterless retrieval tool, the description covers the key information. However, the lack of output schema means the agent must infer the return format; mentioning the returned fields helps slightly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the description does not need to add parameter semantics. Baseline for zero parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets current integration settings and specifies the two fields returned (webhook return URL and integration name), making the purpose specific and distinct from sibling tools like update_integration_setup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (when current settings are needed) but provides no explicit guidance on when not to use or mention of alternatives like update_integration_setup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_keyword_search_postsA

Get raw posts from a keyword search. The first line says how many of the search's posts this response shows and the offset of the next page; total, returned, offset and platform_counts (posts per platform across the whole search) are in the JSON. Read a large search in pages with offset and limit, one platform at a time, and fields=lean when the text matters more than media and profile URLs. A response over the size cap is marked truncated: true.

NameRequiredDescriptionDefault
limitNoPosts per page, 1 to 1000 (default: every remaining post)
fieldsNolean leaves out media_url, profile_url and sentiment_reason, so roughly twice as many posts fit in one response (default: full)
offsetNoPosts to skip (default 0). To read the next page, use the offset the previous response's first line gives.
platformNoFilter by platform (default: all)
search_idYesKeyword search ID

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the whole burden and does much of it well: it discloses the response envelope (a first line with count and next offset, plus total/returned/offset/platform_counts in JSON) and the truncation behavior when the size cap is exceeded. It does not cover ordering guarantees, auth requirements, or whether results are a cached snapshot, which keeps it short of 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with purpose then response shape then paging strategy, with essentially no filler. The middle sentence bundling total/returned/offset/platform_counts is dense but each item earns its place by telling the agent what fields to read.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by describing the return envelope and the truncation flag, which is exactly the missing structured information. For a 5-parameter read tool with full schema coverage, nothing an agent needs in order to page correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real operational meaning: use the offset reported in the previous response's first line rather than computing it, filter per platform rather than fetching all, and note that lean roughly doubles posts per response because it omits media_url, profile_url and sentiment_reason.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource, 'Get raw posts from a keyword search', which pins down both the action and the scope. 'Raw posts' distinguishes it from the sibling get_keyword_search, which returns the search record itself, and from get_user_search_posts, so an agent can pick without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains how to consume a large result set: page with offset and limit, narrow to one platform at a time, and use fields=lean when text matters more than media and profile URLs. It never states explicit exclusions or names a sibling alternative, so it gives clear operating context rather than full when/when-not routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_topic_treeB

Get the conversation topic tree for a keyword search. Shows how topics and subtopics are distributed across the search results.

NameRequiredDescriptionDefault
platformNoFilter by platform
search_idYesKeyword search ID

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It implies a read-only 'Get' operation, but does not disclose permissions, whether the tree is computed or cached, how deep the hierarchy goes, or how the platform filter affects the result—all important context for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences that are front-loaded with the core purpose and contain no filler. The second sentence adds a small but useful clarification of what the tree shows, though it could be slightly tighter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description gives only a high-level sense of the return value (topics/subtopics distribution). It omits practical details an agent would want—such as return shape, tree depth, or how results relate to search_id—making it adequate but not fully complete for a tool of this nature.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 search_id as the keyword search ID and platform as an enum filter. The description only loosely references the keyword search and says nothing about the platform parameter, so it adds no meaningful semantic detail beyond what the schema provides; a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description pairs a specific verb ('Get') with a specific resource ('conversation topic tree for a keyword search') and explains what the tree represents (topics and subtopics distributed across results). This distinguishes it from siblings like get_keyword_search or get_keyword_search_posts, which retrieve raw search or posts, though it does not explicitly name those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this follows a keyword search, but the description never states when to choose this over get_keyword_search, get_keyword_search_posts, or other search-related tools, nor does it mention prerequisites such as needing an existing search_id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_usageA

Get API usage data. Returns search counts, per-user breakdowns, and the current IQ credit balance (credits.credits_remaining, credits.credits_limit, credits.period_reset_date — the latter two are null for one-time credit grants). Optionally filter by month.

NameRequiredDescriptionDefault
monthNoMonth to query (YYYY-MM format). Omit to get the last 12 months.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does meaningful work: it discloses the return contents and a non-obvious edge case, that credits_limit and period_reset_date are null for one-time credit grants. It does not cover permission requirements, response size, or whether per-user breakdowns are paginated, which keeps it from 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the verb and resource, followed by the return inventory. The parenthetical listing credit field paths is dense but earns its place by conveying a null-semantics rule. Slightly over-packed, but there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single optional-parameter, read-only reporting tool with no output schema, the description carries the necessary return-value explanation well, including the credit fields and their null behavior. The structure of per-user breakdowns and search counts is left unstated, a minor gap given there is no output schema to consult.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the month parameter fully documented including the YYYY-MM pattern and the omit-for-12-months default. The description merely restates that filtering by month is optional and adds no format or default 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ("Get API usage data") and then enumerates the payload: search counts, per-user breakdowns, and the IQ credit balance. That is enough for an agent to distinguish it from the surrounding search/agent-run siblings, none of which report usage or credits. It stops short of explicitly contrasting with a sibling, so it lands at 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent should call this when it needs usage or credit information. "Optionally filter by month" hints at the one scoping decision available, but there is no explicit when-to-use or when-not-to-use guidance and no mention of alternatives. For a read-only reporting tool with no competing sibling, this is adequate but thin.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_user_search_postsA

Get raw posts from a user search. The first line says how many of the profile's posts this response shows and the offset of the next page; total, returned and offset are in the JSON. Read a large search in pages with offset and limit, and fields=lean when the text matters more than media and profile URLs. A response over the size cap is marked truncated: true.

NameRequiredDescriptionDefault
limitNoPosts per page, 1 to 1000 (default: every remaining post)
fieldsNolean leaves out media_url, profile_url and sentiment_reason, so roughly twice as many posts fit in one response (default: full)
offsetNoPosts to skip (default 0). To read the next page, use the offset the previous response's first line gives.
search_idYesUser search ID

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden and does well: it explains the response's first line, the JSON fields (total, returned, offset), the truncation flag for oversized responses, and the payload tradeoff of lean mode. It omits failure modes (invalid search_id, expired searches) and any permission or rate-limit context, which keeps it short of 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the purpose before the response-shape and pagination details. Every sentence carries information, though the response-format sentence is dense and slightly awkward to parse on a first read.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must explain return values, and it does: the first line's counts, the total/returned/offset fields, and the truncated marker. It never says where a valid search_id comes from (presumably user_search / get_user_search) or what happens on an invalid ID, leaving a small gap for a read tool with no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all four parameters are already documented, including the lean enum's omitted fields and the offset-as-next-page hint. The description mostly restates that contract plus a usage rationale for lean, adding modest meaning beyond the schema rather than new syntax or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Get raw posts from a user search" gives a concrete verb (get), resource (posts), and scope (from a user search), which separates it from the metadata-oriented get_user_search and from get_keyword_search_posts. It never explicitly names those siblings, so the differentiation rests on the name and implication rather than on stated contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says when to paginate a large search with offset and limit, and when to pick fields=lean ("when the text matters more than media and profile URLs"). It supplies a concrete next-page procedure (reuse the offset from the previous response's first line) but gives no guidance on when to call this versus get_user_search or get_keyword_search_posts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_agent_runsA

List Rolli Agent runs (AI-driven social intelligence investigations). Returns a paginated summary list. Discarded runs are excluded.

NameRequiredDescriptionDefault
limitNoPage size (default: 50, max: 100)
offsetNoPagination offset (default: 0)
statusNoFilter by status
user_idNoFilter to a specific Rolli user

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose two useful behaviors: results are paginated and only a summary representation is returned, and discarded runs are filtered out. It says nothing about ordering, total-count metadata, permissions, or rate limits, which leaves meaningful gaps for an unannotated read tool, but the exclusion rule is genuine behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and resource, then the return shape, then the exclusion rule. Nothing is redundant and nothing is buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter, all-optional listing tool with no output schema, the description is nearly sufficient: it establishes scope, return shape, and one filtering rule. The remaining gap is that it does not describe what fields the summary entries contain or whether pagination metadata is returned, which matters slightly more without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including defaults, bounds, and an enum for status, so the schema already does the parameter work and baseline is 3. The description adds no filtering syntax or guidance beyond the note that discarded runs are excluded, which is tangentially relevant to the status filter but not explanatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("List Rolli Agent runs") and glosses what an agent run is ("AI-driven social intelligence investigations"), which is real disambiguation value. It also marks the result shape ("paginated summary list"). It stops short of naming the sibling it contrasts with, notably get_agent_run for a single run or list_agent_schedule_runs for the scheduled variant, so 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the purpose and by the word "summary" (this is the browse/overview entry point, get_agent_run would be the detail path), but that inference is never made explicit. No when-not conditions or prerequisites are stated, and the sibling tools list includes several similarly named listing tools the agent must distinguish on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_agent_schedule_runsA

List the full execution history of a Rolli Agent schedule, including a preview of each linked agent run.

NameRequiredDescriptionDefault
idYesSchedule UUID
limitNoPage size (default: 50, max: 100)
offsetNoPagination offset (default: 0)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations supplied, the description carries the full burden: "List" implies a non-mutating read, and "full execution history... preview of each linked agent run" usefully signals a truncated summary per run rather than full run payloads. It says nothing about result ordering, whether pagination is needed to obtain the "full" history, or rate/permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the resource comes first and the return-content note follows. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with three fully documented parameters and no output schema, the description is adequate but leaves ordering and the interaction between "full execution history" and the paginated limit/offset interface unexplained. It also does not clarify whether the embedded run previews require a separate get_agent_run call for detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (id, limit, offset all documented with defaults and bounds), so the schema already does the parameter work. The description adds no format, filtering, or sorting semantics beyond it. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("List") and a specific resource ("execution history of a Rolli Agent schedule"), which cleanly separates it from list_agent_schedules/get_agent_schedule even though no sibling is named. It also notes the payload includes a preview of each linked agent run, so an agent knows what comes back. Sibling differentiation is implied by the resource scope rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: this is the tool to reach for when you need the run history of one schedule, and the required `id` parameter reinforces that. There is no explicit when-to-use/when-not guidance and no pointer to get_agent_run for full run details or to list_agent_schedules for the schedules themselves.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_agent_schedulesB

List Rolli Agent scheduled reports. Schedules execute on a daily/weekly/monthly/once cadence and produce a new agent run each time.

NameRequiredDescriptionDefault
limitNoPage size (default: 50, max: 100)
offsetNoPagination offset (default: 0)

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden, but it does usefully disclose the cadence model (daily/weekly/monthly/once) and that each schedule execution spawns a new agent run. It omits behavior an agent would want: whether paused or deleted schedules are included, ordering, and whether the response is a bare array or wrapped.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and resource, with the second sentence supplying genuinely useful domain context rather than filler. Nothing is redundant with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only listing with two optional pagination parameters and no output schema, the description covers purpose and domain semantics adequately. It falls short on what a returned schedule contains and whether filtering by status is possible, which an agent must discover empirically.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with limit and offset documented inline including defaults and maxima, so the description need not restate them. It adds no extra meaning about pagination strategy or how many schedules typically exist, which is the correct baseline for a fully documented two-parameter schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ("List Rolli Agent scheduled reports") and clarifies what a schedule is (a recurring job producing agent runs). It does not distinguish this from siblings like get_agent_schedule or list_agent_schedule_runs, so the agent must infer the boundary from names alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no mention of when not to use it, and no routing to alternatives such as get_agent_schedule (single schedule) or list_agent_schedule_runs (executions). The only cue is the word "List", which implies enumeration but leaves selection up to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_expert_searchesC

List all expert searches. Returns a paginated list filtered by status.

NameRequiredDescriptionDefault
pageNoPage number (100 results per page)
showNoFilter by status (default: all)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full behavioral burden, yet it only states that results are paginated and status-filterable - both of which the schema already declares. It says nothing about ordering, what fields an expert search carries, or whether results are scoped to the caller's account.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action, with no filler. The second sentence partially restates what the schema already conveys (pagination and status filtering), which is the only wasted effort.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-optional-parameter read tool with no output schema, the description covers the essentials but leaves the concept of an "expert search" undefined and says nothing about result ordering or default behavior when no filter is given. It is adequate to call the tool, not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the schema documents the page parameter (100 results per page) and the show enum with a default of "all". The description adds no syntax or semantics beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"List all expert searches" names a specific verb and resource, and the second sentence clarifies the scope (paginated, status-filterable). It stops short of distinguishing this from the many sibling list tools (list_keyword_searches, list_user_searches, list_agent_runs), so an agent must infer the difference from the noun alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance, no exclusion of alternatives, and no prerequisites. With five sibling list/search tools present, it never says whether to call this versus get_expert_search for a single item or list_keyword_searches for a different resource type.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_keyword_searchesB

List all keyword searches. Returns a paginated list filtered by status.

NameRequiredDescriptionDefault
pageNoPage number (100 results per page)
showNoFilter by status (default: all)

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations supplied, the description carries the full burden. It does disclose two useful behavioral facts — results are paginated and can be filtered by status — but says nothing about permissions, result ordering, or what a page contains, which matters for a list tool with no 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler, with the core purpose front-loaded before the return-behavior note. Nothing in it is wasted, even though the second sentence lightly overlaps the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-parameter list tool with a fully documented schema, the description is minimally sufficient. However, with no output schema it does not describe what a result entry looks like, and it gives no way to distinguish this tool from the other list_* siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including an enum for the status filter, so the baseline is 3. The description restates pagination and status filtering but adds no semantics beyond the schema (e.g. page-size implications or status lifecycle meaning).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('List all keyword searches'), so an agent knows it enumerates keyword-search entities rather than executing one. It does not distinguish itself from the sibling list tools (list_expert_searches, list_user_searches), leaving the agent to infer the resource distinction 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no exclusions, and no reference to alternatives such as get_keyword_search or the sibling list tools. The agent must infer that this is the enumeration counterpart to keyword_search/get_keyword_search from naming conventions only.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_user_searchesC

List all user searches. Returns a paginated list filtered by status.

NameRequiredDescriptionDefault
pageNoPage number (100 results per page)
showNoFilter by status (default: all)

TDQS

C2.9/5.0
Behavior2/5

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 discloses only that results are paginated and filtered by status, which mostly restates the schema; it says nothing about permissions, default ordering, what fields each search record contains, or behavior when the status filter matches nothing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with no filler. The second sentence adds pagination and filtering information, though it is somewhat redundant against the schema and could have spent that space on sibling differentiation instead.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-required-parameter list tool with no output schema, the description covers the basics of pagination and filtering. The notable gap is disambiguation from the four-plus sibling list/lookup tools in this namespace, which an agent needs in order to select correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both `page` (100 results per page) and `show` (status enum with default) fully documented in the schema. The description's phrase "filtered by status" merely echoes the `show` enum, so a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a clear verb+resource ("List all user searches"), so an agent immediately knows the operation and the entity. However, it never distinguishes this tool from sibling list tools such as list_expert_searches, list_keyword_searches, or get_user_search, so the agent must infer the difference 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no stated prerequisites, and no mention of when to prefer a sibling such as get_user_search or list_keyword_searches. The only contextual cue is the implicit "list" semantics, which the agent could already derive from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pause_agent_scheduleA

Pause a Rolli Agent schedule so it stops executing. The schedule and its history are preserved — resume it later with resume_agent_schedule.

NameRequiredDescriptionDefault
idYesSchedule UUID

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does address the two facts that matter most for a pause mutation: the schedule and its history are preserved (no data loss) and the change is reversible via resume_agent_schedule. Gaps remain: it does not say whether an already-paused schedule errors or is a no-op, whether an in-progress run is affected, or what 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero waste; the core action and effect are front-loaded, and the second sentence delivers the preservation/reversibility guarantee and the follow-up tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter mutation with no output schema and no annotations, the description covers purpose, the key side effect (preservation) and the reversal path, which is enough to invoke it correctly. It could be stronger by describing what is returned or the state transitions (paused vs. active), but nothing critical is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single required parameter whose schema description ('Schedule UUID') is fully covered at 100%, so the schema already does the documenting. The description adds no extra meaning about the id (e.g., where to obtain it via list_agent_schedules), so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Pause a Rolli Agent schedule') plus the immediate effect ('stops executing'), and it names the counterpart tool resume_agent_schedule, so the agent can distinguish it from resume/update/delete siblings without reading the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is clear from the stated effect: use this to stop a schedule from running while keeping it. The description also points to resume_agent_schedule as the way back, which is the main alternative an agent would weigh. It stops short of explicit exclusions (e.g., use delete_agent_schedule if the schedule should be removed permanently, or cancel_agent_run for an in-flight run).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rerun_agent_runA

Rerun a failed, waiting, or stuck Rolli Agent run. Resets the run to pending and re-enqueues it. Running runs are force-cancelled first. Returns 422 if the run is already completed. Fails immediately if the IQ credit balance is exhausted (a rerun needs at least 1 credit).

NameRequiredDescriptionDefault
idYesRun UUID

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses the state mutation ('Resets the run to pending and re-enqueues it'), a destructive side effect ('Running runs are force-cancelled first'), a failure mode (422 on completed runs), and a cost precondition (at least 1 IQ credit, fails immediately if exhausted). These are exactly the behavioral facts an agent cannot infer from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, each earning its place, with the core action and eligible states front-loaded before the side effects and error conditions. No filler or restatement of the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter mutation with no output schema, the description covers preconditions, destructive behavior, and failure codes thoroughly. The only gap is the success return value — it never says what a successful rerun yields (e.g., the updated run object), which matters since no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter, 'id', and schema description coverage is 100% ('Run UUID'), so the schema already fully documents it. The description adds no format, sourcing, or constraint detail about the identifier, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Rerun a ... Rolli Agent run') and immediately qualifies the eligible states (failed, waiting, stuck). The verb 'Rerun' plus the state eligibility naturally separates it from start_agent_run, cancel_agent_run, and update_agent_run without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear when-to-use conditions (failed, waiting, or stuck runs) and an implicit when-not ('Returns 422 if the run is already completed'). It never names the sibling alternatives such as start_agent_run for a fresh run, so it falls short of fully explicit routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resume_agent_scheduleA

Resume a paused Rolli Agent schedule. next_run_at is recalculated based on the recurrence parameters.

NameRequiredDescriptionDefault
idYesSchedule UUID

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations at all, the description carries the full behavioral burden, and it does deliver one genuinely useful disclosure: next_run_at is recalculated from the recurrence parameters rather than resumed at the old time. It omits permission requirements, idempotency, and the error behavior for a non-paused schedule, which matter for a state-mutating call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero filler; the operation is front-loaded and the side-effect note follows immediately. Nothing could be removed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter state toggle with no output schema, an agent still needs to know what the call returns and how it behaves when the schedule is not paused; neither is addressed. The description is adequate to attempt the call but incomplete for predicting its outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — the single `id` parameter is documented as "Schedule UUID" with a strict UUID pattern — so the schema already does the work. The description adds nothing about the identifier beyond what the schema states, which is acceptable at one parameter but earns no extra credit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Resume") and a specific resource ("a paused Rolli Agent schedule"), which an agent can distinguish from pause_agent_schedule, delete_agent_schedule, or update_agent_schedule without opening the schema. It stops short of naming any sibling explicitly, so the differentiation is implicit rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word "paused" implies the precondition for use, but the description never says what happens if the schedule is already active, nor does it point to pause_agent_schedule as the inverse operation or to update_agent_schedule when recurrence itself needs changing. Usage is inferable but not spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_agent_runA

Start a Rolli Agent investigation. Submit a plain-English question; the agent plans a search strategy, queries Rolli IQ across platforms, analyzes posts, and produces a markdown intelligence report with signals, evidence links, and a confidence rating. Fails immediately (before starting) if the IQ credit balance is insufficient. Polls inline for up to 2 minutes. If the run finishes in that window, returns the full results; otherwise returns the run ID and a note to fetch the results with get_agent_run (typical run takes 3–5 minutes).

NameRequiredDescriptionDefault
modeNoInvestigation mode (default: trend_briefing)
max_postNoMaximum posts per platform (default: 100)
metadataNoArbitrary JSON object stored on the run for your own tracking
questionYesPlain-English question (e.g., "What is being said about Tesla battery recalls this week?")
platformsNoPlatforms to search
time_windowNoTime window to search (default: 7d). Examples: 24h, 7d, 30d
parent_run_idNoUUID of a parent run (for follow-ups)
available_creditsNoReasoning effort: 1=low, 2=medium, 3=high, 4=max (default). Higher values let the agent perform more searches at higher cost.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations supplied, the description carries the full burden and does so well: it discloses the pre-flight failure mode (insufficient IQ credits aborts before starting), the inline polling window (up to 2 minutes), the expected total latency (3-5 minutes), and the two possible return shapes (full results vs. run ID plus a follow-up instruction). These are exactly the cost, timing, and failure facts an agent needs before committing to a long-running operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with purpose, then the pipeline, then the failure/latency/return contract. Every sentence carries operational information an agent needs, and the parenthetical '(typical run takes 3-5 minutes)' pre-empts the obvious follow-up question about the 2-minute poll window.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an eight-parameter, long-running async tool with no annotations and no output schema, the description covers what matters: what it does, what it costs, how long it takes, how it can fail, and what comes back in each outcome. Return-value explanation is present precisely because no output schema exists to supply it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all eight parameters are already documented in structured data, which sets the baseline at 3. The description only reinforces the 'question' parameter as plain English; it adds nothing about mode selection, platform defaults, time_window syntax, or the fact that the field named available_credits actually controls reasoning effort rather than a credit balance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Start a Rolli Agent investigation') and then spells out the full pipeline: plan search strategy, query Rolli IQ across platforms, analyze posts, produce a markdown report with signals, evidence links, and confidence rating. An agent can distinguish this from siblings like get_agent_run, rerun_agent_run, or expert_search without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear conditions for calling it (submit a plain-English question) and explicitly routes to get_agent_run when the inline poll window expires. It also flags the credit-balance precondition. It stops short of stating when NOT to use it versus rerun_agent_run, cancel_agent_run, or the expert_search/keyword_search alternatives, so it is strong but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_agent_runB

Update a Rolli Agent run's metadata (rename or pin). At least one of pinned or label is required.

NameRequiredDescriptionDefault
idYesRun UUID
labelNoCustom label (e.g., "Weekly trend report")
pinnedNoPin or unpin the run

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description must carry the behavioral burden. It does add one genuinely useful constraint the schema does not encode (no anyOf/oneOf enforcing at least one of pinned/label), but it omits permission requirements, whether label overwrites or clears, and whether the update is idempotent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, no filler, with the resource and the allowed operations front-loaded ahead of the precondition. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter mutation tool with no annotations and no output schema, the definition is minimally viable. The schema covers the parameters well, but the description leaves the agent guessing about side effects, permissions, and what a successful update returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 id, label, and pinned. The description adds only the cross-parameter requirement that at least one of pinned or label be present, which is real value but limited; nothing is said about label length, empty-string semantics, or pinning behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Update a Rolli Agent run's metadata") and narrows the scope with "(rename or pin)", which lets an agent separate it from get_agent_run, delete_agent_run, and cancel_agent_run. It stops short of naming a sibling or stating what the tool does NOT do.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only conditional guidance is a precondition ("At least one of pinned or label is required"), not a when-to-use rule. There is no indication of when to choose this over adjacent tools such as update_agent_schedule or rerun_agent_run, and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_agent_scheduleB

Partially update a Rolli Agent schedule. Unspecified fields are left unchanged. next_run_at is recalculated if any recurrence parameter changes.

NameRequiredDescriptionDefault
idYesSchedule UUID
modeNoNew investigation mode
nameNoNew schedule name
ends_atNoNew end ISO 8601 timestamp
max_postNoNew posts-per-platform limit
questionNoNew question
platformsNoNew platforms array
starts_atNoNew start ISO 8601 timestamp
time_windowNoNew time window
notify_emailNoNew notification email
recurrence_timeNoNew time of day in HH:MM format
recurrence_typeNoNew cadence
available_creditsNoNew reasoning effort: 1=low, 2=medium, 3=high, 4=max
recurrence_timezoneNoNew IANA timezone
notify_slack_webhookNoNew Slack webhook URL
recurrence_day_of_weekNo0–6 for weekly schedules
notify_slack_channel_idNoNew Slack channel ID
recurrence_day_of_monthNo1–31 for monthly schedules

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It usefully discloses that unspecified fields are left unchanged and that next_run_at is recalculated when recurrence parameters change, but it omits permissions, validation behavior, error handling, and whether updates affect currently running schedules.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences, front-loaded with the core action and partial-update semantics. Every sentence adds relevant information about behavior without unnecessary wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-parameter mutation tool with no annotations and no output schema, the description covers the most important update semantics: partial updates and next_run_at recalculation. However, it leaves out prerequisite state, permission requirements, and side effects that would help an agent invoke it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 18 parameters in detail, including enum values and ranges. The description adds useful context about recurrence parameters triggering next_run_at recalculation, but otherwise does not add meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Partially update a Rolli Agent schedule.' The word 'Partially' distinguishes it from a full replacement update, and the resource is unambiguous, though it does not explicitly name sibling tools like pause_agent_schedule or create_agent_schedule.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not say when to use this tool versus alternatives such as pause_agent_schedule, resume_agent_schedule, or create_agent_schedule. Usage is only implied by the 'partially update' wording, with no explicit context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_integration_setupC

Update integration configuration. Set the webhook URL that receives notifications when a search completes.

NameRequiredDescriptionDefault
return_urlYesURL that will receive webhook notifications when a search completes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure for a mutation tool. It never says whether the URL replaces an existing one, whether other integration settings are preserved, whether authentication or an existing integration is required, or what the call returns on success.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the verb and the target field front-loaded; nothing is padded. The second sentence largely duplicates the schema's parameter description, which is the only minor redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, fully documented schema this is close to sufficient — an agent knows what to send. But with no annotations and no output schema, the description should have covered the write's effect (overwrite semantics, required pre-existing integration), which is the remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter and schema coverage is 100%; the schema already documents return_url as the webhook notification URL with URI format and a max length. The description's second sentence merely restates that schema text, adding no new constraint or format detail, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Update integration configuration") and names the single configurable field, the webhook/return URL. It does not mention the sibling get_integration_setup, so the read-vs-write distinction is left to inference, but the operation itself is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description only implies when to use it ("Set the webhook URL that receives notifications when a search completes"). It gives no prerequisites, no note that get_integration_setup can be used to read the current value first, and no guidance on what happens if an integration is not yet configured.

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.

  1. 29 tool updatesv1.5.0
    • Changedcancel_agent_run2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / id / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • Changedcreate_agent_schedule2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / max_post / maximum
        Added value: +9007199254740991
    • Changeddelete_agent_run2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / id / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • Changeddelete_agent_schedule2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / id / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • Changedexpert_search1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget_agent_run2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / id / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • Changedget_agent_schedule2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / id / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • Changedget_expert_search2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / id / maximum
        Added value: +9007199254740991
    • Changedget_keyword_search2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / id / maximum
        Added value: +9007199254740991
    • Changedget_keyword_search_posts5 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / fields
        Added value: +{
        +  "description": "lean leaves out media_url, profile_url and sentiment_reason, so roughly twice as many posts fit in one response (default: full)",
        +  "enum": [
        +    "full",
        +    "lean"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Posts per page, 1 to 1000 (default: every remaining post)",
        +  "maximum": 1000,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "Posts to skip (default 0). To read the next page, use the offset the previous response's first line gives.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / search_id / maximum
        Added value: +9007199254740991
    • Changedget_topic_tree2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / search_id / maximum
        Added value: +9007199254740991
    • Changedget_usage1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget_user_search2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / id / maximum
        Added value: +9007199254740991
    • Changedget_user_search_posts5 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / fields
        Added value: +{
        +  "description": "lean leaves out media_url, profile_url and sentiment_reason, so roughly twice as many posts fit in one response (default: full)",
        +  "enum": [
        +    "full",
        +    "lean"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Posts per page, 1 to 1000 (default: every remaining post)",
        +  "maximum": 1000,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "Posts to skip (default 0). To read the next page, use the offset the previous response's first line gives.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / search_id / maximum
        Added value: +9007199254740991
    • Changedkeyword_search1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedlist_agent_runs2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / offset / maximum
        Added value: +9007199254740991
    • Changedlist_agent_schedule_runs3 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / id / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
      • addedInput schema / properties / offset / maximum
        Added value: +9007199254740991
    • Changedlist_agent_schedules2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / offset / maximum
        Added value: +9007199254740991
    • Changedlist_expert_searches2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / page / maximum
        Added value: +9007199254740991
    • Changedlist_keyword_searches2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / page / maximum
        Added value: +9007199254740991
    • Changedlist_user_searches2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / page / maximum
        Added value: +9007199254740991
    • Changedpause_agent_schedule2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / id / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • Changedrerun_agent_run2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / id / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • Changedresume_agent_schedule2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / id / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • Changedstart_agent_run4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / max_post / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / metadata / propertyNames
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / parent_run_id / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • Changedupdate_agent_run2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / id / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • Changedupdate_agent_schedule3 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / id / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
      • addedInput schema / properties / max_post / maximum
        Added value: +9007199254740991
    • Changedupdate_integration_setup1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changeduser_search1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
  2. 2 tool updatesv1.4.1
    • Changedcreate_agent_schedule2 fields changed
      • changedInput schema / properties / available_credits / description
        Previous value: -"Reasoning effort for each run: 1=low, 2=medium (default), 3=high, 4=max"New value: +"Reasoning effort for each run: 1=low, 2=medium, 3=high, 4=max (default)"
      • changedInput schema / properties / max_post / description
        Previous value: -"Posts per platform per run (default: 50)"New value: +"Posts per platform per run (default: 100)"
    • Changedstart_agent_run2 fields changed
      • changedInput schema / properties / available_credits / description
        Previous value: -"Reasoning effort: 1=low, 2=medium (default), 3=high, 4=max. Higher values let the agent perform more searches at higher cost."New value: +"Reasoning effort: 1=low, 2=medium, 3=high, 4=max (default). Higher values let the agent perform more searches at higher cost."
      • changedInput schema / properties / max_post / description
        Previous value: -"Maximum posts per platform (default: 50)"New value: +"Maximum posts per platform (default: 100)"
  3. 6 tool updatesv1.4.0
    • Changedcreate_agent_schedule1 field changed
      • changedInput schema / properties / platforms / items / enum
        Previous value: -[
        -  "twitter",
        -  "reddit",
        -  "bluesky",
        -  "youtube",
        -  "threads",
        -  "facebook",
        -  "weibo"
        -]New value: +[
        +  "twitter",
        +  "reddit",
        +  "bluesky",
        +  "youtube",
        +  "threads",
        +  "facebook"
        +]
    • Changedget_keyword_search_posts1 field changed
      • changedInput schema / properties / platform / enum
        Previous value: -[
        -  "all",
        -  "twitter",
        -  "reddit",
        -  "bluesky",
        -  "youtube",
        -  "instagram",
        -  "facebook",
        -  "weibo",
        -  "linkedin"
        -]New value: +[
        +  "all",
        +  "twitter",
        +  "reddit",
        +  "bluesky",
        +  "youtube",
        +  "instagram",
        +  "facebook",
        +  "threads"
        +]
    • Changedget_topic_tree1 field changed
      • changedInput schema / properties / platform / enum
        Previous value: -[
        -  "twitter",
        -  "bluesky",
        -  "youtube"
        -]New value: +[
        +  "twitter",
        +  "reddit",
        +  "bluesky",
        +  "youtube",
        +  "facebook",
        +  "instagram",
        +  "threads"
        +]
    • Changedkeyword_search2 fields changed
      • changedInput schema / properties / platforms / items / enum
        Previous value: -[
        -  "twitter",
        -  "reddit",
        -  "bluesky",
        -  "youtube",
        -  "linkedin",
        -  "facebook",
        -  "instagram",
        -  "weibo"
        -]New value: +[
        +  "twitter",
        +  "reddit",
        +  "bluesky",
        +  "youtube",
        +  "facebook",
        +  "instagram",
        +  "threads"
        +]
      • changedInput schema / properties / query / description
        Previous value: -"Search query (keyword or hashtag)"New value: +"Search query. Expects KEYWORDS, not prose — a plain multi-word query is token-OR-matched server-side (each word matched independently), which pulls in unrelated posts and pollutes the sentiment/coordination analytics. ALWAYS prefer boolean syntax: AND = both required (Tesla AND battery); OR = synonyms/variants (EV OR \"electric vehicle\"); NOT = exclude noise (Tesla NOT \"Nikola Tesla\"); quotes = exact phrase (\"Sherrod Brown\"); parentheses = grouping. Example: \"Sherrod Brown\" AND (Husted OR \"Ohio Senate\") NOT satire. For broad topics, run several focused boolean searches rather than one wide query."
    • Changedstart_agent_run1 field changed
      • changedInput schema / properties / platforms / items / enum
        Previous value: -[
        -  "twitter",
        -  "reddit",
        -  "bluesky",
        -  "youtube",
        -  "threads",
        -  "facebook",
        -  "weibo"
        -]New value: +[
        +  "twitter",
        +  "reddit",
        +  "bluesky",
        +  "youtube",
        +  "threads",
        +  "facebook"
        +]
    • Changedupdate_agent_schedule1 field changed
      • changedInput schema / properties / platforms / items / enum
        Previous value: -[
        -  "twitter",
        -  "reddit",
        -  "bluesky",
        -  "youtube",
        -  "threads",
        -  "facebook",
        -  "weibo"
        -]New value: +[
        +  "twitter",
        +  "reddit",
        +  "bluesky",
        +  "youtube",
        +  "threads",
        +  "facebook"
        +]
  4. 18 tool updatesv1.3.0
    • Addedcancel_agent_run
    • Addedcreate_agent_schedule
    • Addeddelete_agent_run
    • Addeddelete_agent_schedule
    • Addedexpert_search
    • Addedget_agent_run
    • Addedget_agent_schedule
    • Addedget_expert_search
    • Addedlist_agent_runs
    • Addedlist_agent_schedule_runs
    • Addedlist_agent_schedules
    • Addedlist_expert_searches
    • Addedpause_agent_schedule
    • Addedrerun_agent_run
    • Addedresume_agent_schedule
    • Addedstart_agent_run
    • Addedupdate_agent_run
    • Addedupdate_agent_schedule
  5. 12 tool updatesv1.1.7
    • First observedget_integration_setup
    • First observedget_keyword_search
    • First observedget_keyword_search_posts
    • First observedget_topic_tree
    • First observedget_usage
    • First observedget_user_search
    • First observedget_user_search_posts
    • First observedkeyword_search
    • First observedlist_keyword_searches
    • First observedlist_user_searches
    • First observedupdate_integration_setup
    • First observeduser_search

TDQS

A3.5/5.0

Scored across 30 tools

Disambiguation4/5

Tools are grouped into clearly distinct resource families (expert searches, keyword searches, user searches, agent runs, agent schedules, integration, usage), so an agent can pick the right family easily. The only friction is between the create-and-poll search tools (keyword_search, user_search, expert_search) and their get_* counterparts, which both return results; the descriptions clarify when to use which (results_pending retries), but the boundary is not perfectly crisp.

Naming Consistency4/5

The dominant pattern is consistent snake_case verb_noun (get_*, list_*, create_*, update_*, delete_*, pause_*, resume_*, cancel_*, rerun_*, start_*). The three search-creation tools deviate by being noun-only (keyword_search, user_search, expert_search) where create_keyword_search would match the pattern, a minor but noticeable inconsistency.

Tool Count3/5

30 tools is heavy, sitting above the comfortable 3–15 range, though the surface spans several real domains (three search types with pagination, agent runs, agent schedules, integration, usage) rather than being padded. Most tools earn their place, but the schedule and run lifecycles together consume 15 slots, making the set feel larger than strictly necessary.

Completeness4/5

Coverage is strong: agent runs and schedules have full lifecycle operations (start/get/list/update/delete/cancel/rerun; create/update/delete/pause/resume/list runs), searches support create/get/list plus post pagination and topic trees, and integration/usage are covered. The main gap is that searches themselves cannot be deleted or renamed — only listed and fetched — which is a minor but real dead end.

Maintenance

ActivityNo data
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    SocialCrawl provides the "best" quality public web data on the internet. Access 65+ real-time social media, e-commerce and public web data from a single API with a single schema.
    5
    147 npm
    28
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to search, describe and call 239 social data endpoints across Instagram, TikTok, LinkedIn, Facebook, YouTube, X, Reddit, Threads and Pinterest through a single API key, covering profiles, posts, comments, followers, hashtags, ads and transcripts with one unified schema. Full responses are saved server-side and can be re-sliced for free with jq, fields or size outlines, so agents pull only the data they need into context.
    236 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI tools to read publicly visible social media posts, comments, profiles, and trends from 18 platforms such as TikTok, Instagram, X, Reddit, YouTube, Xiaohongshu, and Weibo, on a prepaid pay-per-call basis where failed calls are free. Ships tools for search, trending, detail, comments, user profiles and posts, plus higher-level workflows like brand buzz, comment analysis, account watching, creator discovery, bulk link data, and viral finding.
    MIT