List posts
List posts with their status, tags and publish date.
MCP tool ghost_read → list_posts
read
Returns id, title, slug, status, access, tags, authors, published_at and updated_at for each post, plus the pagination meta. The body is left out; get_post returns it. Which posts you see follows your staff role.
Parameters
| Name | Type | Description |
|---|---|---|
| status string | string | draft, published or scheduled. Omit for all. |
| tag string | string | Tag slug to filter by. |
| order string | string | Sort order such as published_at desc. Default is newest first. |
| page integer | integer | Page number, starting at 1. The response meta says how many pages there are. |
| limit integer | integer | Records per page, 100 at most. Default 15. |
tools/call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "ghost_read",
"arguments": {
"operation": "list_posts",
"arguments": {}
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"posts": [
{
"id": "6710a1c2f3e4d500a1b2c3d4",
"title": "Issue 42: pricing notes",
"slug": "issue-42-pricing-notes",
"status": "draft",
"tags": [
"Weekly"
],
"published_at": null,
"updated_at": "2026-10-17T08:12:44.000Z"
}
],
"meta": {
"page": 1,
"limit": 15,
"pages": 1,
"total": 1
}
},
"isError": false
}