Skip to main content
Glama

Query Monitored Posts

query_monitored_posts
Read-only

mode="search" (default): individual post rows. mode="stats": per-status counts.

Each row is one post a monitor surfaced, with the comment Sliq drafted for it (draft_comment) and the post's lifecycle status: 'discovered' (claimed, pre-draft), 'queued' (drafted + enqueued), 'commented' (comment sent), 'rejected' (user declined the draft), 'skipped' / 'skipped_no_credit' (no comment drafted), 'engagers_only' (captured for its engagers, not commented), 'surfaced' (a surface-only monitor discovered it — no comment, no capture, just surfaced in the feed to act on manually). reaction_status is the independent reaction track: '' (no reaction), 'queued' (a reaction enqueued), 'reacted' (sent), 'rejected' (user declined it), 'skipped' (deduped) — disjoint from status since one post can be both commented and reacted to. reaction_type is which reaction landed (like/celebrate/support/love/insightful/funny, '' until sent).

Columns: id, monitor_id, post_urn, post_url, author_name, author_provider_id, post_text, reaction_count, comment_count, posted_at, status, draft_comment, reaction_status, reaction_type, created_at. Pass a row's id to generate_monitored_post_comment to draft + queue a Sliq comment for it.

Pass agent_id to scope to that agent's monitors — omitting it reads every monitored post across all the user's agents. To act on recent posts (e.g. queue a reaction on this agent's fresh finds), pass agent_id and filter on posted_at; this keeps actions on the agent's own scoped feed rather than the account-wide analytics.

This is the monitor-scoped feed. query_linkedin_posts is a different table — the account-global analytics of the user's own posts plus any post they've fetched engagers for, with no agent/monitor dimension. Use that for "how did my posts perform"; use this for "what did this agent's monitors find". In search mode, {count, truncated, items array}. In stats mode, {total, by_status: {discovered: N, commented: M, ...}}.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNo"search" to list rows, "stats" for per-status counts.search
limitNoMax results (default 50, capped at 100). Search mode only.
offsetNoRows to skip for paging (default 0, search mode only). When the result is truncated, re-call with offset += limit for the next page.
agent_idNoScope to one agent's monitors. Omit for cross-agent queries.
order_byNoSQL ORDER BY (default: created_at DESC). Search mode only.created_at DESC
where_clauseNoSQL WHERE condition (default: all). Examples: "status = 'commented'", "posted_at >= NOW() - INTERVAL '24 hours'", "author_name ILIKE '%founder%'"1=1

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / agent_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Scope to one agent's monitors. Omit for cross-agent queries."
      +}
    • removedInput schema / properties / task_id
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Scope to one task's monitors. Omit for cross-task queries."
      -}
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Even with readOnlyHint=true, the description adds substantial behavioral context: the two modes, the full lifecycle status set (discovered/queued/commented/rejected/skipped/engagers_only/surfaced), the independent reaction_status track, and the consequence of omitting agent_id (reads every monitored post across all agents). It also clarifies that rows carry draft_comment and can be passed to generate_monitored_post_comment, making behavior predictable. No contradiction with annotations.

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 long but justified: it is front-loaded with purpose and modes, and the status/reaction enumerations are essential because no output schema exists and the schema's where_clause examples only hint at filterable values. The <summary>/<returns> structure keeps it scannable, and there is no filler.

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?

This complex 6-parameter, 0-required tool with no output schema is fully covered: return shapes for both modes are stated, the item columns are enumerated, paging behavior is referenced (offset += limit when truncated), and the sibling distinction is explicit. The only details left to the schema are parameter defaults and caps, which is appropriate.

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, and the description adds real value on top: it defines the status values usable in where_clause, explains agent_id cross-agent behavior beyond the schema, and clarifies mode output differences. It doesn't add much on limit/offset/order_by, which the schema already documents, so it stops short of a 5.

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: 'Query the posts an agent's LinkedIn monitors discovered', and immediately scopes it as 'this agent's own monitor-scoped feed, not the account-global post analytics.' It also names the sibling query_linkedin_posts and explains the exact distinction ('how did my posts perform' vs 'what did this agent's monitors find'), so an agent can select it correctly without opening schemas.

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?

The description gives explicit when-to-use and when-not-to-use guidance: use this tool for 'what did this agent's monitors find' and query_linkedin_posts for 'how did my posts perform'. It also covers mode selection, agent_id scoping, and routing a row's id to generate_monitored_post_comment, which is actionable guidance beyond a simple purpose statement.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources