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

# Prompts

> Fetch server-defined prompt templates

Prompts are server-defined message templates. List the available prompts, then
request one by name with its arguments.

```typescript theme={null}
import { MCPClient } from "@mcp-use/client";

const client = new MCPClient({
  mcpServers: {
    demo: { url: "http://localhost:3000/mcp" },
  },
});

try {
  const connection = await client.connect("demo");

  const { prompts } = await connection.listPrompts();
  for (const prompt of prompts) {
    console.log(prompt.name, prompt.description);
  }

  const result = await connection.getPrompt("plan_trip", {
    destination: "Japan",
    days: "7",
  });

  console.log(result.description);
  for (const message of result.messages) {
    if (message.content.type === "text") {
      console.log(message.role, message.content.text);
    }
  }
} finally {
  await client.close();
}
```

`listPrompts()` returns `{ prompts }`. `getPrompt(name, args)` returns a prompt
result with an optional `description` and a `messages` array. Each message has a
`role` and one MCP content block.

## React

```tsx theme={null}
import { useMcpServer } from "@mcp-use/client/react";

export function LoadPromptButton() {
  const server = useMcpServer("demo");

  async function handleLoad() {
    if (server?.state !== "ready") return;

    const result = await server.getPrompt("code_review", {
      language: "ts",
    });
    console.log(result.messages);
  }

  return (
    <button disabled={server?.state !== "ready"} onClick={handleLoad}>
      Load prompt
    </button>
  );
}
```

The React `getPrompt` arguments are optional and use string values.

## Reference

[`MCPConnection`](https://mcp-use-typescript-api-reference.vercel.app/modules/_mcp-use_client.index.html#mcpconnection) —
`listPrompts` and `getPrompt`.
