Skip to main content

Prompts

Manage and execute custom prompts with optional resource attachments.

List Prompts

Retrieves all available prompts, including both built-in and custom prompts.

GET/api/prompts

Responses

Success (200)

{
"prompts": [
{
"name": "analyze-code",
"description": "Analyze code for issues",
"arguments": [
{
"name": "language",
"description": "Programming language",
"required": true
}
],
"source": "custom"
}
]
}

Get Prompt Definition

Fetches the definition for a specific prompt.

GET/api/prompts/:name

Responses

Success (200)

{
"definition": {
"name": "analyze-code",
"description": "Analyze code for issues",
"arguments": [
{
"name": "language",
"description": "Programming language",
"required": true
}
]
}
}

Error (404)

{
"error": "Prompt not found"
}

Resolve Prompt

Resolves a prompt template with provided arguments and returns the final text with resources.

GET/api/prompts/:name/resolve

Query Parameters

  • context (string, optional): Additional context for prompt resolution.
  • args (object, optional): Arguments to substitute in the prompt template. Pass as a JSON string.

Example Request

GET /api/prompts/analyze-code/resolve?args={"language":"TypeScript"}

Responses

Success (200)

{
"text": "Analyze this TypeScript code...",
"resources": [
"mcp:server-name:resource-uri"
]
}

Error (400)

{
"error": "Missing required argument: language"
}

Create Custom Prompt

Creates a new custom prompt with optional resource attachment. Maximum request size: 10MB.

POST/api/prompts/custom

Request Body

  • name (string, required): Unique name for the custom prompt.
  • title (string, optional): Display title for the prompt.
  • description (string, optional): Description of what the prompt does.
  • content (string, required): The prompt content text. Can include {{argumentName}} placeholders.
  • arguments (array, optional): Array of argument definitions.
    • name (string, required): Argument name.
    • description (string, optional): Argument description.
    • required (boolean, optional): Whether the argument is required. Default: false.
  • resource (object, optional): Attach a resource to this prompt.
    • base64 (string, required): Base64-encoded resource data.
    • mimeType (string, required): MIME type of the resource (e.g., text/plain, application/pdf).
    • filename (string, optional): Resource filename.

Example Request

{
"name": "review-pr",
"description": "Review pull request code",
"content": "Review this {{language}} pull request...",
"arguments": [
{
"name": "language",
"description": "Programming language",
"required": true
}
],
"resource": {
"base64": "Y29kZSBjb250ZW50IGhlcmU=",
"mimeType": "text/plain",
"filename": "pr.diff"
}
}

Responses

Success (201)

{
"prompt": {
"name": "review-pr",
"description": "Review pull request code",
"arguments": [
{
"name": "language",
"description": "Programming language",
"required": true
}
],
"source": "custom"
}
}

Error (400)

{
"error": "Prompt name already exists"
}

Error (413)

{
"error": "Request body too large. Maximum size: 10MB"
}

Delete Custom Prompt

Permanently deletes a custom prompt. Built-in prompts cannot be deleted.

DELETE/api/prompts/custom/:name

Responses

Success (204)

No content returned.

Error (404)

{
"error": "Prompt not found"
}

Error (400)

{
"error": "Cannot delete built-in prompt"
}