Core Concepts

Prompts

Register reusable MCP prompts from src/prompts/.

Prompts are parameterized message templates the model can fetch with prompts/get.

Add a prompt folder

src/prompts/triage/
  prompt.ts

Define the prompt

triage/prompt.ts
import { definePrompt } from "bitmcp";

export default definePrompt({
  name: "triage",
  description: "Triage inbox notes",
  arguments: [{ name: "tone", required: false }],
  async get({ tone }) {
    return {
      messages: [
        {
          role: "user",
          content: {
            type: "text",
            text: `Triage inbox notes in a ${String(tone ?? "neutral")} tone.`,
          },
        },
      ],
    };
  },
});

Test in dev

pnpm dev

Call prompts/list and prompts/get with name triage and optional { tone: "formal" }.

Reference

definePrompt options

FieldDescription
namePrompt name for prompts/get
descriptionShown in prompts/list
arguments{ name, description?, required? }[]
getReturns { messages } for the host
completeOptional completion hook for argument values
argsSchemaOptional Standard Schema override for arguments

Prompts are independent from tools. They live under src/prompts/, not inside tool folders.