Agent skill

Add Prompt

by cyanheads in cyanheads/pubmed-mcp-server

Scaffold a new MCP prompt template. An agent skill from cyanheads/pubmed-mcp-server.

Apache-2.0Auto-check passedAgent Workflows

Install Add Prompt

skills CLI
$ npx skills add cyanheads/pubmed-mcp-server --skill add-prompt -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install cyanheads/pubmed-mcp-server add-prompt --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/cyanheads/pubmed-mcp-server.git skills-src && mkdir -p .claude/skills && cp -r skills-src/framework-skills/add-prompt .claude/skills/add-prompt && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
add-prompt
GitHub stars
158
Token cost
~1.6k tokens
SKILL.md length
461 words
Files
1
Skills in repo
30
Repo updated
First seen
Licence
Apache-2.0

At a glance

Scaffold a new MCP prompt template. An agent skill from cyanheads/pubmed-mcp-server.

  • Works in 5 steps: Gather the prompt's name, purpose, and… → Create the file at… → Register the prompt in the project's… → …
  • The user asks to add a prompt
  • SKILL.md covers Context, Steps, Template and Argument autocompletion, plus 1 more section
  • Calls bun

What it does

Add Prompt is an agent skill from cyanheads/pubmed-mcp-server. Scaffold a new MCP prompt template. Use when the user asks to add a prompt, create a reusable message template, or define a prompt for LLM interactions.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering Prompt engineering and MCP servers. It works with Model Context Protocol. The repository describes itself as: Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms via MCP. STDIO or Streamable HTTP. The licence is Apache-2.0.

When your agent uses it

  • The user asks to add a prompt
  • Create a reusable message template
  • Define a prompt for LLM interactions

Example prompts

  • “/add-prompt”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Gather the prompt's name, purpose, and arguments from the user's request — ask only if genuinely absent
  2. Create the file at src/mcp-server/prompts/definitions/{{prompt-name}}.prompt.ts
  3. Register the prompt in the project's existing createApp() prompt list (directly in src/index.ts for fresh scaffolds, or via a barrel if…
  4. Run bun run devcheck to verify
  5. Smoke-test with bun run rebuild && bun run start:stdio < /dev/null — the Core services constructed log record must list the new prompt in…

What it can do on your machine

Read from SKILL.md and the folder at commit 79145a6. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • bun

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Add Prompt loads about 1.6k tokens when it runs. Until then it costs about 41 tokens; SKILL.md has 461 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~41
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from cyanheads/pubmed-mcp-server at commit 79145a6, republished under its Apache-2.0 licence (© cyanheads). 461 words, ~1,596 tokens.

Download SKILL.mdSave it as .claude/skills/add-prompt/SKILL.md (or your agent's skills folder).
name
add-prompt
description
Scaffold a new MCP prompt template. Use when the user asks to add a prompt, create a reusable message template, or define a prompt for LLM interactions.
metadata.author
cyanheads
metadata.version
1.5
metadata.audience
external
metadata.type
reference

Context

Prompts use the prompt() builder from @cyanheads/mcp-ts-core. Each prompt lives in src/mcp-server/prompts/definitions/ with a .prompt.ts suffix. The standard registration pattern uses a definitions/index.ts barrel that collects all prompts into an allPromptDefinitions array for createApp(). Fresh scaffolds start with direct imports in src/index.ts — the barrel is introduced as definitions grow. Match the pattern already used by the project you're editing.

Prompts are pure message templates — no Context, no auth, no side effects. generate can be sync or async (returns PromptMessage[] | Promise<PromptMessage[]>).

Steps

  1. Gather the prompt's name, purpose, and arguments from the user's request — ask only if genuinely absent
  2. Create the file at src/mcp-server/prompts/definitions/{{prompt-name}}.prompt.ts
  3. Register the prompt in the project's existing createApp() prompt list (directly in src/index.ts for fresh scaffolds, or via a barrel if the repo already has one)
  4. Run bun run devcheck to verify
  5. Smoke-test with bun run rebuild && bun run start:stdio < /dev/null — the Core services constructed log record must list the new prompt in its prompts field (the message text shows only counts); if it doesn't, the prompt never reached createApp()

Template

typescript
/**
 * @fileoverview {{PROMPT_DESCRIPTION}}
 * @module mcp-server/prompts/definitions/{{PROMPT_NAME}}
 */

import { completable, prompt, z } from '@cyanheads/mcp-ts-core';

export const {{PROMPT_EXPORT}} = prompt('{{prompt_name}}', {
  description: '{{PROMPT_DESCRIPTION}}',
  // title is optional — human-readable display name surfaced in prompts/list.
  // title: '{{PROMPT_DISPLAY_TITLE}}',
  // args is optional — omit entirely for prompts with no parameters.
  // When present, all fields need .describe(). Only JSON-Schema-serializable types allowed.
  // Wrap any field with completable() to enable argument autocompletion.
  args: z.object({
    // All fields need .describe()
    // language: completable(z.string().describe('Language'), async (partial) => matchingLanguages(partial)),
  }),
  generate: (args) => [
    {
      role: 'user',
      content: {
        type: 'text',
        text: `{{PROMPT_TEMPLATE_TEXT}}`,
      },
    },
  ],
});
Multi-message prompt
typescript
generate: (args) => [
  {
    role: 'user',
    content: {
      type: 'text',
      text: `Here is the ${args.type} to review:\n\n${args.content}`,
    },
  },
  {
    role: 'assistant',
    content: {
      type: 'text',
      text: 'I will analyze this carefully. Let me start with...',
    },
  },
],
Registration
typescript
// src/index.ts (fresh scaffold default)
import { createApp } from '@cyanheads/mcp-ts-core';
import { {{PROMPT_EXPORT}} } from './mcp-server/prompts/definitions/{{prompt-name}}.prompt.js';

await createApp({
  tools: [/* existing tools */],
  resources: [/* existing resources */],
  prompts: [{{PROMPT_EXPORT}}],
});

If the repo already uses src/mcp-server/prompts/definitions/index.ts, add the prompt to that barrel the way it holds the existing ones — it must end up in the array passed to createApp(). A bare export … from line registers nothing on its own. The standard barrel shape:

typescript
import { {{PROMPT_EXPORT}} } from './{{prompt-name}}.prompt.js';

export const allPromptDefinitions = [/* existing prompts */, {{PROMPT_EXPORT}}];

Argument autocompletion

Wrap any args field with completable() (re-exported from @cyanheads/mcp-ts-core) to enable argument autocompletion. The SDK auto-installs completion/complete handling and advertises the completions capability when any registered prompt has a completable argument — no other changes are needed.

typescript
import { completable, prompt, z } from '@cyanheads/mcp-ts-core';

export const codeReview = prompt('code_review', {
  description: 'Review code for issues.',
  title: 'Code Review',
  args: z.object({
    language: completable(
      z.string().describe('Programming language'),
      async (partial) => ['typescript', 'python', 'rust'].filter((l) => l.startsWith(partial)),
    ),
    code: z.string().describe('Code to review'),
  }),
  generate: (args) => [
    { role: 'user', content: { type: 'text', text: `Review this ${args.language} code:\n${args.code}` } },
  ],
});

completable() is transparent to the linter — it does not affect describe-on-fields or schema-serializable rules. All completable-wrapped fields still require .describe() on the underlying schema.

For an optional argument, wrap the inner schema and apply .optional() outside: completable(z.string().describe('…'), cb).optional(). The SDK unwraps .optional() before checking for a completer, so completable(z.string().optional(), cb) type-checks but never completes.

Show full SKILL.md (144 more words)Show less

Checklist

  • File created at src/mcp-server/prompts/definitions/{{prompt-name}}.prompt.ts
  • Prompt name passed to prompt() uses snake_case
  • description field set (lint warns if absent, but devcheck won't hard-fail — verify it's present)
  • title field set if a human-readable display name is needed in prompts/list
  • All Zod args fields have .describe() annotations — or args omitted entirely for no-parameter prompts
  • args fields use only JSON-Schema-serializable Zod types (no z.date(), z.transform(), z.bigint(), z.symbol(), z.custom(), etc.)
  • If using completable(), the underlying schema still has .describe() on each wrapped field
  • JSDoc @fileoverview and @module header present
  • generate function present and returns at least one { role, content: { type: 'text', text } } message
  • No side effects — prompts are pure templates
  • Registered in the project's existing createApp() prompt list (directly or via barrel)
  • bun run devcheck passes
  • Smoke-tested with bun run rebuild && bun run start:stdio < /dev/null; the Core services constructed record lists the new prompt in its prompts field

© cyanheads, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in framework-skills/add-prompt of cyanheads/pubmed-mcp-server.

Open the folder on GitHubat commit 79145a6

Compare with similar skills

Add Prompt next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Add Prompt compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Add Prompt this skillcyanheads/pubmed-mcp-server158—~1.6kAutomated safety check: PassApache-2.0
Workflow Schema Tuningbreaking-brake/cc-wf-studio5.4k—~1.3kAutomated safety check: PassCustom licence
Cco Overheadegorfedorov/claude-context-optimizer114—~606Automated safety check: PassMIT
MCP Developmentrohitg00/awesome-claude-code-toolkit2.7k—~1.2kAutomated safety check: PassApache-2.0
Spring AI MCP Server Patternsgiuseppe-trisciuoglio/developer-kit357—~2.7kAutomated safety check: NotesMIT
Agentforce GenerateSalesforceAIResearch/agentforce-adlc1141 repos~7.4kAutomated safety check: PassCustom licence

Similar skills

  • Workflow Schema Tuning

    breaking-brake/cc-wf-studio

    Guides edits to cc-wf-studio's workflow schema so AI agents generate better workflows, treating schema text as prompt engineering rather than validation.

    5.4k GitHub stars~1.3k tokensUpdated 4 days ago
    Agent WorkflowsAuto-check passed
  • Cco Overhead

    egorfedorov/claude-context-optimizer

    Audit the fixed context overhead every session starts with — system prompt, MCP tools, agents, CLAUDE.md, memory — measured from real transcript usage

    114 GitHub stars~606 tokensUpdated 11 days ago
    Agent WorkflowsAuto-check passed
  • MCP Development

    rohitg00/awesome-claude-code-toolkit

    MCP server development including tool design, resource endpoints, prompt templates, and transport configuration

    2.7k GitHub stars~1.2k tokensUpdated 5 mo ago
    Agent WorkflowsAuto-check passed
  • Spring AI MCP Server Patterns

    giuseppe-trisciuoglio/developer-kit

    Provides Spring Boot MCP server patterns that create Model Context Protocol servers with Spring AI by defining tool handlers, exposing resources, configuring prompt templates, and setting up…

    357 GitHub stars~2.7k tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check: notes
  • Agentforce Generate

    SalesforceAIResearch/agentforce-adlc

    Build, modify, audit, repair, optimize, debug, and deploy agents with Agentforce Agent Script.

    114 GitHub starsUsed in 1 repo~7.4k tokens
    Agent WorkflowsAuto-check passed
  • Hcls Build Agent

    aws-samples/amazon-bedrock-agents-healthcare-lifesciences

    Official

    A skill your agent uses when a developer wants to build a new healthcare or life sciences agent, structure tools and system prompts for an HCLS workflow, or create a Strands agent with…

    274 GitHub stars~885 tokensUpdated 9 days ago
    Research & ScienceAuto-check passed

More from cyanheads/pubmed-mcp-server

All 30 skills in this repo
  • Add App Tool

    cyanheads/pubmed-mcp-server

    Scaffold an MCP App tool + UI resource pair. An agent skill from cyanheads/pubmed-mcp-server.

    158 GitHub stars~3.2k tokensUpdated yesterday
    Auto-check passed
  • Add Resource

    cyanheads/pubmed-mcp-server

    Scaffold a new MCP resource definition. An agent skill from cyanheads/pubmed-mcp-server.

    158 GitHub stars~3k tokensUpdated yesterday
    Auto-check passed
  • Add Service

    cyanheads/pubmed-mcp-server

    Scaffold a new service integration. An agent skill from cyanheads/pubmed-mcp-server.

    158 GitHub stars~3.6k tokensUpdated yesterday
    Auto-check passed
  • Add Test

    cyanheads/pubmed-mcp-server

    Scaffold a test file for an existing tool, resource, or service.

    158 GitHub stars~4.1k tokensUpdated yesterday
    Auto-check passed
  • API Auth

    cyanheads/pubmed-mcp-server

    Authentication, authorization, and multi-tenancy patterns for @cyanheads/mcp-ts-core.

    158 GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed
  • API Mirror

    cyanheads/pubmed-mcp-server

    Stand up a persistent, self-refreshing local mirror of a bulk upstream dataset with the MirrorService (@cyanheads/mcp-ts-core/mirror).

    158 GitHub stars~2.6k tokensUpdated yesterday
    Auto-check passed

Questions about Add Prompt

What does Add Prompt do?

Scaffold a new MCP prompt template. An agent skill from cyanheads/pubmed-mcp-server. Add Prompt is an agent skill from cyanheads/pubmed-mcp-server. Scaffold a new MCP prompt template.

When should I use Add Prompt?

Add Prompt fits situations like: the user asks to add a prompt; create a reusable message template; define a prompt for LLM interactions.

How do I install Add Prompt in Claude Code?

Run `npx skills add cyanheads/pubmed-mcp-server --skill add-prompt -a claude-code`. Or copy the skill folder (framework-skills/add-prompt in cyanheads/pubmed-mcp-server) into .claude/skills/add-prompt in your project. Claude Code loads it when a task matches its description.

How do I install Add Prompt in Codex?

Run `npx skills add cyanheads/pubmed-mcp-server --skill add-prompt -a codex`. Or copy the skill folder (framework-skills/add-prompt in cyanheads/pubmed-mcp-server) into .agents/skills/add-prompt in your project. Codex loads it when a task matches its description.

Can I use Add Prompt in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add cyanheads/pubmed-mcp-server --skill add-prompt -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-prompt, .gemini/skills/add-prompt, .github/skills/add-prompt and .opencode/skills/add-prompt in your project.

What does Add Prompt need to run?

Going by SKILL.md and its folder, Add Prompt needs the command-line tools its instructions call (bun).

Does Add Prompt access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Add Prompt safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Add Prompt use?

Add Prompt is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Add Prompt use?

About 1.6k tokens (SKILL.md is roughly 6.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Add Prompt?

Skills that share tags, products or a category with Add Prompt: Workflow Schema Tuning (breaking-brake/cc-wf-studio, 5.4k stars), Cco Overhead (egorfedorov/claude-context-optimizer, 114 stars), MCP Development (rohitg00/awesome-claude-code-toolkit, 2.7k stars) and Spring AI MCP Server Patterns (giuseppe-trisciuoglio/developer-kit, 357 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Add Prompt?

cyanheads (a GitHub user) maintains it in cyanheads/pubmed-mcp-server, which has 158 GitHub stars. The repository holds 30 skills in this directory. The repository was last updated on October 9, 2026.

Source: cyanheads/pubmed-mcp-server on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.