MCPMCP Tools/Posts/list_posts
list_posts
Readposts:read
Scope location means one location, brand means locationless client posts, all means every client post; default location when locationId is given, otherwise all. List real Posts, including unpublished Series drafts and client-level posts without a location. Provide clientId or locationId; both must agree. Follow nextPage until hasMore is false and reconcile changed totals/IDs; pages are live, not a snapshot. createdFrom/createdTo (legacy from/to) filter creation dates; scheduledFrom/scheduledTo filter actual schedules, never suggestions. UI Series titles belong to list_distribution_campaigns, not ContentSeries ideas.
Parameters
locationIdstringoptional
The location's id (from list_locations). Accepts the database ID or public loc- ID. IDs must belong to the authenticated agency and permitted client.
clientIdstringoptional
Client id; includes client/account-level posts with no location. Accepts the database ID or public cli- ID. IDs must belong to the authenticated agency and permitted client.
connectionIdstringoptional
Connected account id; intersects selected scope.
distributionCampaignIdstringoptional
UI Series / DistributionCampaign id.
postIdsstring[]optional
Exact real Post ids; [] returns no posts.
createdFromstringoptional
Creation time from (ISO).
createdTostringoptional
Creation time to (ISO).
scheduledFromstringoptional
Actual scheduled time from (ISO); excludes unscheduled drafts.
scheduledTostringoptional
Actual scheduled time to (ISO).
scope"location" | "brand" | "all"optional
Post scope.
pagenumberoptional
Positive page number; default 1.
platform"google" | "facebook" | "instagram" | "x" | "linkedin" | "pinterest" | "mastodon" | "bluesky" | "threads" | "tiktok" | "youtube"optional
Filter by platform.
type"announcement" | "event" | "offer"optional
Filter by post type.
status"draft" | "scheduled" | "paused" | "publishing" | "active" | "partial" | "error" | "expired" | "incomplete"optional
Filter by status. `incomplete` = drafts that can't publish yet because a required field is missing (each comes back with its missingFields).
fromstringoptional
Created from (ISO).
tostringoptional
Created to (ISO).
searchstringoptional
Name contains (case-insensitive).
limitnumberoptional
Page size 1–50; default 50.
Example request
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_posts",
"arguments": {}
}
}Example response
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}Response shape shown for illustration — the actual content depends on the tool and your data.