> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getmcp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# prompts/list

> Retrieve the list of all prompt templates available on the MCP server.

The `prompts/list` method returns all prompt templates configured for the server, including their names, descriptions, and argument schemas. AI clients call this to discover what prompt templates they can retrieve.

## MCP Endpoint

```
POST https://yoursite.com/mcp/{slug}
Content-Type: application/json
```

## Request

<ParamField body="jsonrpc" type="string" required>
  Must be `"2.0"`.
</ParamField>

<ParamField body="id" type="integer | string" required>
  Arbitrary request identifier echoed back unchanged in the response.
</ParamField>

<ParamField body="method" type="string" required>
  Must be `"prompts/list"`.
</ParamField>

<ParamField body="params" type="object">
  Empty object `{}`. No parameters accepted.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
       --url https://yoursite.com/mcp/my-server \
       --header 'content-type: application/json' \
       --header 'Mcp-Session-Id: your_session_id' \
       --data '
  {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "prompts/list",
    "params": {}
  }
  '
  ```

  ```python Python theme={null}
  import requests
  response = requests.post(
      "https://yoursite.com/mcp/my-server",
      headers={"Content-Type": "application/json"},
      json={"jsonrpc": "2.0", "id": 1, "method": "prompts/list", "params": {}}
  )
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    "https://yoursite.com/mcp/my-server",
    {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({ jsonrpc: "2.0", id: 1, method: "prompts/list", params: {} })
    }
  );
  const data = await response.json();
  ```
</RequestExample>

## Response

<ResponseField name="result.prompts" type="array">
  Array of prompt objects. Each object contains:

  * `name` — Machine-readable identifier (used in `prompts/get`)
  * `description` — What the prompt does; used by AI clients for discovery
  * `arguments` — Array of argument definitions, each with `name`, `description`, and `required`
</ResponseField>

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
      "prompts": [
        {
          "name": "write_product_description",
          "description": "Generate a compelling product description given product details",
          "arguments": [
            {
              "name": "product_name",
              "description": "The name of the product",
              "required": true
            },
            {
              "name": "key_features",
              "description": "Comma-separated list of key features",
              "required": true
            },
            {
              "name": "tone",
              "description": "Writing tone: professional, casual, or enthusiastic",
              "required": false
            }
          ]
        },
        {
          "name": "summarize_document",
          "description": "Summarize a document in a given number of bullet points",
          "arguments": [
            {
              "name": "content",
              "description": "The document text to summarize",
              "required": true
            },
            {
              "name": "bullet_count",
              "description": "Number of bullet points in the summary",
              "required": false
            }
          ]
        }
      ]
    }
  }
  ```
</ResponseExample>

<Note>
  To retrieve the rendered content of a prompt with arguments substituted, call [`prompts/get`](/api-reference/mcp-protocol/prompts-get).
</Note>
