# list_articles (/docs/build/mcp-reference/list_articles)

{/* GENERATED by scripts/generate-mcp-reference.mjs from the MCP server tools/list. Do not edit. */}

| Group | Access | MCP name |
| --- | --- | --- |
| Articles | Read-only | `list_articles` |

## Description [#description]

The description the MCP server sends to the model, word for word. Its rules apply to every call.

> List WriteStack articles from newsletters the user has enabled in Articles, optionally filtered by status or publicationId. Call list_article_newsletters first if you need valid publication IDs. Returns title, topic, status, target date (plannedForDate, null for undated drafts), publicationId, and Substack sync fields.

## Arguments [#arguments]

| Argument | Type | Required | Description |
| --- | --- | --- | --- |
| `limit` | `number` | No | Default `20`. |
| `publicationId` | `number` | No | Enabled newsletter publicationId. BEFORE creating or pushing an article, call list_article_newsletters and ASK the user which newsletter to use. Never guess or pick a default. Only IDs returned by that tool are accepted — newsletters the user hid from Articles are rejected. |
| `skip` | `number` | No | Default `0`. |
| `status` | `string` | No | One of: `"planned"`, `"generating"`, `"draft"`, `"reviewed"`, `"failed"`. |

## Example call [#example-call]

The smallest valid request: required arguments only, with placeholder values.

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_articles",
    "arguments": {}
  }
}
```

## Result [#result]

The result has `structuredContent` that matches this schema. The same data is also in `content` as JSON text.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `articles` | `object[]` | Yes |  |
| `articles[].id` | `string` | Yes |  |
| `articles[].plannedForDate` | `string \| null` | Yes |  |
| `articles[].publicationId` | `number` | Yes |  |
| `articles[].publishAt` | `string \| null` | No |  |
| `articles[].status` | `string` | Yes |  |
| `articles[].substackDraftUrl` | `string \| null` | No |  |
| `articles[].substackSyncStatus` | `string` | No |  |
| `articles[].subtitle` | `string \| null` | Yes |  |
| `articles[].title` | `string` | Yes |  |
| `articles[].topic` | `string` | Yes |  |
| `count` | `number` | Yes |  |
| `hasMore` | `boolean` | Yes |  |
| `skip` | `number` | Yes |  |

## Annotations [#annotations]

| Hint | Value |
| --- | --- |
| `readOnlyHint` | `true` |
| `destructiveHint` | `false` |
| `openWorldHint` | `false` |

The full input and output JSON Schemas for every tool are in [/mcp-tools.json](/mcp-tools.json).
