Teleprompter
Mentioned as a use case for creating prompt templates for JIRA ticket formatting with team-specific requirements, standard fields, priority levels, and acceptance criteria templates.
Mentioned as a use case for creating prompt templates for Linear ticket formatting with team-specific requirements, standard fields, priority levels, and acceptance criteria templates.
Mentioned as a use case for creating prompt templates to help discover music on Spotify with specific preferences, constraints, and workflow requirements for adding songs to queue and managing playlists.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Teleprompterspotify-discover mood: focused activity: coding genres: lofi, ambient"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Teleprompter
An MCP server that manages and exposes tools to allow prompt re-use with LLMs.
Table of Contents
Related MCP server: PromptLab MCP Server
Features
Prompt Storage & Reuse: Store, search, and retrieve prompt templates for LLMs.
MCP Server: Exposes prompt tools via the Model Context Protocol (MCP).
Prompt Variables: Supports template variables (e.g.,
{{name}}) for dynamic prompt generation.Search: Fast full-text search over stored prompts using MiniSearch.
TypeScript: Modern, type-safe codebase.
Extensive Testing: Includes unit and integration tests with Vitest.
MCP Configuration
To use Teleprompter with your LLM client, add this configuration:
{
"mcpServers": {
"teleprompter": {
"command": "npx",
"args": ["-y", "mcp-teleprompter"],
"env": {
"PROMPT_STORAGE_PATH": "/path/to/your/prompts-directory"
}
}
}
}Note: Replace /path/to/your/prompts-directory with the absolute path where you want prompts stored.
Usage Examples
Once configured, you can use Teleprompter with your LLM by using prompt tags in your conversations. Here's a detailed example that shows how it solves the problem of repeating complex instructions:
π΅ Music Discovery on Spotify
The Problem: Every time you want music recommendations, you have to remind your LLM of all your preferences and constraints:
"Don't suggest songs I already have in my playlists"
"Avoid explicit lyrics"
"Add songs to my queue for review, not directly to playlists"
"Focus on discovering new artists, not just popular hits"
"Consider my current activity and mood"
"Provide brief explanations for why each song fits"
The Solution: Create a prompt that captures all these instructions once.
Creating the prompt: Ask your LLM: "Create a prompt called 'spotify-discover' that helps me find new music with all my specific preferences and workflow requirements."
This creates a comprehensive template like:
I'm looking for music recommendations for Spotify based on:
**Current mood:** {{mood}}
**Activity/setting:** {{activity}}
**Preferred genres:** {{genres}}
**Recent artists I've enjoyed:** {{recent_artists}}
**Important constraints:**
- DO NOT suggest songs I already have in my existing playlists
- Avoid explicit lyrics (clean versions only)
- Focus on discovering new/lesser-known artists, not just popular hits
- Provide 5-7 song recommendations maximum
**Workflow:**
- Add recommendations to my Spotify queue (not directly to playlists)
- I'll review and save the ones I like to appropriate playlists later
**For each recommendation, include:**
- Artist and song name
- Brief explanation (1-2 sentences) of why it fits my current mood/activity
- Similar artists I might also enjoy
Please help me discover music that matches this vibe while following these preferences.Using it:
>> spotify-discoverNow you just fill in your current mood and activity, and get perfectly tailored recommendations that follow all your rulesβno need to repeat your constraints every time.
π Other Common Use Cases
π Work Ticket Management
Create prompts for JIRA/Linear ticket formatting with your team's specific requirements
Include standard fields, priority levels, acceptance criteria templates
Avoid repeating your company's ticket standards every time
π§ Email Templates
Customer support responses with your company's tone and required disclaimers
Follow-up sequences that match your communication style
Automated inclusion of signatures, links, and standard information
π Code Review Guidelines
Technical review checklists with your team's specific standards
Security considerations and performance criteria
Documentation requirements and testing expectations
The common thread: stop repeating yourself. If you find yourself giving the same detailed instructions to your LLM repeatedly, create a prompt for it.
π Discovering Existing Prompts
You can search your prompt library:
Can you search my prompts for "productivity" or "task management"?Or list all available prompts:
What prompts do I have available?βοΈ Manual Editing
Prompts are stored as simple markdown files in your PROMPT_STORAGE_PATH directory. You can also create and edit them directly with your favorite text editor:
Each prompt is saved as
{id}.mdin your prompts directoryUse
{{variable_name}}syntax for template variablesStandard markdown formatting is supported
File changes are automatically picked up by the server
π‘ Best Practices
Use descriptive IDs: Choose prompt IDs that clearly indicate their purpose (e.g.,
meeting-notes,code-review-checklist)Include helpful variables: Use
{{variable_name}}for dynamic content that changes each time you use the promptOrganize by category: Consider using prefixes like
task-,content-,analysis-to group related prompts
Testing
Run all tests:
npm testRun tests with coverage:
npm run test:coverageTests are written with Vitest. Coverage reports are generated in the coverage/ directory.
Contributing
Contributions are welcome! Please:
Follow the existing code style (see
.prettierrc.jsonand.eslintrc.mjs).Add tests for new features or bug fixes.
License
This project is licensed under the MIT License. See LICENSE for details.
Acknowledgements
Made with β€οΈ by John Anderson
Available Tools
4 toolscreatePromptA
Create a new Teleprompter prompt. Wrap template variables in double curly braces. For example, "Hello, {{name}}!"
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID, or "tag" for the new prompt. This will be used by the user later on to apply prompt usage with an LLM they are chatting with. For example, ">> new-journal-entry". IDs must be suitable for use as a file name. | |
| contents | Yes | The contents of the prompt, with variables placeholders marked with double curly braces. For example, "Hello, {{name}}!" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It communicates that the tool creates a prompt (a mutation), but it does not disclose potential side effects such as overwriting an existing ID, validation rules, or required permissions. The curly braces rule is more about input formatting than behavioral side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and includes a constructive example. Every word earns its place; there is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two well-documented parameters, but it is a creation tool, and the description does not mention return values, error behavior, or idempotency. With no output schema and sibling tools, a bit more detail about what happens after creation would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both id and contents thoroughly described, including the exact curly-braces rule and example. The description repeats these details without adding new meaning beyond the schema, so it stays at the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource: 'Create a new Teleprompter prompt.' This is a specific verb+resource pairing that immediately distinguishes it from sibling tools like usePrompt, searchPrompts, and listPrompts. The added example with curly braces further clarifies the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating prompts via the verb 'create' and the template variable guidance, but it does not explicitly state when to use this tool over alternatives. No exclusions or alternative references are provided, leaving usage context to be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listPromptsA
List all available Teleprompter prompts. Returns a list of all prompt IDs and their content.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool returns all prompt IDs and their content, which is useful, but does not mention potential behaviors like read-only safety, pagination, or any limitations. It is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the primary purpose. The second sentence clarifies return content. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description sufficiently explains what it returns and its scope. It could include more context about sorting or use cases, but for a simple list operation, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, so the schema provides complete coverage. The description adds no parameter-specific details, which is unnecessary. According to the rubric, a baseline of 4 applies for 0 params, and the description does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's verb (List) and resource (all available Teleprompter prompts), and specifies the return includes prompt IDs and content. This distinguishes it from siblings like searchPrompts (which would imply filtering) and createPrompt/usePrompt.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving all prompts but does not explicitly contrast with searchPrompts or state when to prefer this over alternatives. The phrase 'all available' hints at scope, but no explicit when/when-not guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchPromptsA
Fuzzy search the available Teleprompter prompts by text. Returns a list of matching prompt IDs and their content, so the user can discover prompts even if they do not know the exact tag or ID.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (default: 5, max: 20). | |
| query | Yes | The text to search for among available prompts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It states that fuzzy search returns a list of matching prompt IDs and their content, implying a read-only operation. It adds useful context about fuzzy matching and output contents, though it does not explicitly declare safety (e.g., read-only) or address auth/rate limits, which are less critical for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action, and every sentence adds value. It is concise without being under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool, the description covers the essential aspects: purpose, return values (list of IDs and content), and discovery context. With no output schema, it adequately describes the result. It does not mention sorting or empty-result behavior, but these are not critical for a basic search.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; both 'query' and 'limit' have clear descriptions in the schema. The tool description adds no additional parameter-level semantics beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Fuzzy search the available Teleprompter prompts by text.' It specifically identifies the resource (Teleprompter prompts) and the action (fuzzy search), and distinguishes itself from siblings like listPrompts by emphasizing fuzzy text discovery rather than listing all prompts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: 'so the user can discover prompts even if they do not know the exact tag or ID.' This implies it is for discovery when exact identifiers are unknown, but it does not explicitly name alternatives like 'use listPrompts for complete listing' or 'use usePrompt for exact ID lookup.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usePromptA
If the user has sent a message containing a prompt tag, use the this tool to fetch the prompt, and follow its instructions. For example, if the user sends ">> new-journal-entry", this tool will fetch the prompt with the ID "new-journal-entry", so you can use it to generate a new journal entry. Template variables may be included in the template, and are marked with double curly braces. For example, "Hello, {{name}}!". Based on your current session with the end user, fill in values for these variables. If a value cannot be determined, ask the user for it, then follow the instructions in the prompt.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the prompt to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries that burden. It explains the process of fetching, following, variable substitution, and asking for missing values. However, it doesn't describe the return format or error behavior when the prompt ID doesn't exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise, with a few sentences covering purpose, example, and variable handling. The grammar error is minor, and no sentence is superfluous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no output schema, the description provides adequate context for invocation: when to use, how to fill variables, and what to do if values are missing. It could mention what the tool returns, but it's not critical for execution.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes the 'id' parameter minimally, but the description adds valuable context: how the ID corresponds to a prompt tag in user messages, and how template variables in the prompt are populated from session context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches a prompt and follows its instructions, with a concrete example ('>> new-journal-entry' maps to id 'new-journal-entry'). This distinguishes it from sibling tools like createPrompt and searchPrompts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit trigger condition ('If the user has sent a message containing a prompt tag') and demonstrates usage with an example. It does not explicitly name alternatives or exclusions, but the trigger is sufficient for selecting this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Mostly distinct purposes: createPrompt writes, usePrompt fetches and executes, searchPrompts and listPrompts both read but differ in scope (fuzzy search vs. full list). The descriptions clarify the distinction between search and list, so confusion is unlikely.
All tool names follow a verb + noun pattern with camelCase, but there is a minor inconsistency: createPrompt and usePrompt use singular 'Prompt' while searchPrompts and listPrompts use plural 'Prompts'. This is a minor deviation but still readable.
Four tools is well-scoped for a prompt management and usage server. Each tool serves a clear, necessary function (create, use, search, list) without redundancy or bloat.
The core create/read/use operations are covered, but update and delete are missing. This is a notable gap for managing a prompt library, as prompts cannot be edited or removed after creation, potentially causing stale or incorrect prompts to persist.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI continuity and Library Templates: memories, profiles, rules, tasks, and checkpoints.
Long-term memory for AI assistants. Isolated per-user storage, recall across conversations.
Persistent memory for AI agents β verbatim conversations, searchable by meaning.
Persistent memory for AI agents. Search and store durable facts, preferences and decisions.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables creation, management, and templating of prompts through a simplified SOLID architecture, allowing users to organize prompts by category and fill in templates at runtime.62117MIT
- AlicenseNot gradedqualityDmaintenanceServes prompt templates through a standardized protocol for transforming basic user queries into optimized prompts for AI systems.8Apache 2.0
- AlicenseAqualityDmaintenanceAllows users to save, organize, and manage AI prompts, folders, and tags directly within MCP-compatible tools like Claude and Cursor. It supports version history tracking, prompt searching, and the ability to save public templates to a personal collection.2023MIT
- AlicenseNot gradedqualityCmaintenanceEnables users to organize, search, and manage a shared library of prompts across AI tools via the Model Context Protocol. It supports hierarchical folder organization, tagging, and template variable substitution for dynamic prompt generation.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/raisinbread/teleprompter'
If you have feedback or need assistance with the MCP directory API, please join our Discord server