Prompt Book Server
OfficialAllows managing AI prompts stored in Notion databases, including search, retrieval, addition, updating, and copying of prompts across multiple prompt collections.
Click on "Deploy 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., "@Prompt Book Serverlist all prompts in my active book"
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.
Prompt Book Server
An MCP server that connects to Notion databases containing AI prompts, allowing you to manage, search, and retrieve prompts efficiently across multiple prompt collections.
What does prompt book server do?
The Prompt Book Server is a powerful tool that helps you organize and access your AI prompts stored in Notion databases. It provides the following key capabilities:
Multiple Prompt Books: Manage multiple collections of prompts (prompt books) with different Notion databases
Prompt Discovery: Search, filter, and browse prompts by title, type, or tags
Prompt Retrieval: Quickly access the full content of any prompt
Prompt Management: Add new prompts, update existing ones, and copy prompts between books
Database Creation: Create new prompt databases with the proper schema directly in Notion
The server acts as a bridge between your AI tools and your Notion-based prompt collections, making it easy to maintain a centralized library of prompts that can be accessed from various coding and AI tools.
Related MCP server: Notion MCP Server
All the tools
Configuration Management Tools
Tool Name | Description |
| Lists all configured prompt books |
| Adds a new prompt book configuration |
| Removes a prompt book configuration |
| Sets a prompt book as active |
| Renames a prompt book configuration |
| Creates a new prompt database in Notion and adds it to the configuration |
| Copies a prompt from one book to another |
Prompt Management Tools
Tool Name | Description |
| Lists all prompts in the active database |
| Searches prompts by title |
| Gets prompts filtered by a specific tag |
| Gets prompts filtered by a specific type |
| Reads the full content of a specific prompt |
| Lists all unique prompt types in the database |
| Lists all unique tags used in the database |
| Adds a new prompt to the database |
| Updates an existing prompt in the database |
How to configure it in my coding tools (or non coding tools)?
Add to MCP Configuration
Add the server to your MCP configuration file. The location depends on your MCP client:
Path to the MCP config
cline:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.jsonroo_code:
~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.jsonwindsurf:
~/.codeium/windsurf/mcp_config.jsonclaude:
~/Library/Application Support/Claude/claude_desktop_config.json
Add the following configuration:
{
"mcpServers": {
"prompt-book-server": {
"command": "npx",
"args": [
"-y",
"@piccollage/prompt-book-mcp-server"
],
"disabled": false,
"alwaysAllow": []
}
}
}Example prompts to work with it
Here are some example prompts you can use to interact with the Prompt Book Server:
Listing and Searching Prompts
List all my prompt books.Show me all prompts in the prompt book.Search for prompts related to "GPUImage" in my prompt book.Show me all prompts with the tag "PicCollage".List all prompts of type "Coding"What types of prompts are available in my prompt book?Reading Prompts
Get the prompt about idea evaluation from the prompt book.
Follow the instructions in it and then verify the following idea for me:
describe your ideaManaging Prompt Books
Activate the engineering prompt book.Copy the GPUImage porting prompt from my private book to the engineering book.Adding and Updating Prompts
Add a new prompt titled "React Component Generator" with type "Coding" and tags ["React", "Frontend"].
The prompt should include ....
......
.....Update the "React Component Generator" prompt to include TypeScript support.Please create a very detailed prompt to instruct LLM agents to convert Android XML UI implementations into Compose UI elements or screens. Put that prompt to the prompt book.How to add a new prompt book?
You have two main options for adding a new prompt book:
Option 1: Connect to an Existing Notion Database
If you already have a Notion database with prompts, you can connect it directly:
Get your Notion API token from https://www.notion.so/my-integrations
Share your Notion database with your integration
Get the database ID from the URL (it's the part after the workspace name and before the question mark)
Use the
create_prompt_book_configtool:
Add a new prompt book with the following details:
- Name: "My Team Prompts"
- Notion token: "secret_abc123..."
- Notion database ID: "1a748be2b63280988d9bc5f89918431d"Option 2: Create a New Notion Database
If you want to create a fresh prompt database with the correct schema:
Get your Notion API token from https://www.notion.so/my-integrations
Find the ID of a Notion page where you want to create the database
Use the
create_prompt_databasetool:
Create a new prompt database with these details:
- Name: "My New Prompt Book"
- Notion token: "secret_abc123..."
- Page ID: "1a748be2b63280988d9bc5f89918431d"
- Activate: trueThis will create a new database with the proper schema (Name, Type, Tags) and add it to your configuration.
Notion Database Requirements
For optimal functionality, your Notion database should have the following properties:
Name (title): The title of the prompt
Type (select): The category of the prompt (e.g., "Coding", "Image Generation")
Tags (multi-select): Tags for organizing and filtering prompts
The prompt content itself is stored in the page body as blocks of text.
Development
Prerequisites
Node.js 16+
TypeScript
Notion API token
Setup
Clone the repository
Install dependencies:
npm installBuild the project:
npm run buildRun the server:
npm start
Configuration File Structure
The configuration file at ~/.mcp_config/prompt_book.json has the following structure:
{
"promptBooks": [
{
"id": "uuid-string",
"name": "My Prompt Book",
"notion_token": "your-notion-api-token",
"notion_database_id": "your-notion-database-id"
}
],
"activePromptBookId": "uuid-string"
}Environment Variable Configuration (DEFAULT_BOOKS)
You can provide a default configuration using the DEFAULT_BOOKS environment variable. This is particularly useful for:
Setting up prompt books automatically in deployment environments
Providing default configurations for team members
Pre-populating the server with prompt book configurations
The DEFAULT_BOOKS environment variable should contain a valid JSON string matching the configuration file structure above.
Important Notes:
The
DEFAULT_BOOKSenvironment variable is only used when the configuration file~/.mcp_config/prompt_book.jsondoesn't exist yetIf the configuration file already exists, the environment variable is ignored
If the JSON in
DEFAULT_BOOKSis invalid or doesn't match the expected structure, it will be ignored and an empty configuration will be created instead
Example usage:
# Set the environment variable
export DEFAULT_BOOKS='{"promptBooks":[{"id":"12345678-1234-1234-1234-123456789012","name":"Default Prompt Book","notion_token":"secret_abc123...","notion_database_id":"1a748be2b63280988d9bc5f89918431d"}],"activePromptBookId":"12345678-1234-1234-1234-123456789012"}'
# Run the server - it will use the DEFAULT_BOOKS configuration if no config file exists
npx @piccollage/prompt-book-mcp-serverThis feature is especially useful when deploying the server in containerized environments or when you want to provide team members with a pre-configured setup.
Available Tools
16 toolsactivate_prompt_bookB
Set a prompt book as active
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the prompt book to activate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says the prompt book will be 'set as active' but does not explain side effects, whether activation is exclusive, whether it is idempotent, or how it affects other prompt books. For a state-changing tool, this is a significant gap.
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 a single direct sentence with no filler or unnecessary wording. The action and object are immediately visible, making it easy to parse quickly.
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 one-parameter tool, the minimal description is workable, but it lacks behavioral context and a definition of what 'active' means or what effect activation has. There is no output schema, so a brief note about expected results or side effects would improve 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?
The input schema already fully describes the only parameter, 'id', with 100% schema description coverage. The description adds no additional meaning about the parameter, so the baseline score 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 states a specific action ('Set') on a clear resource ('a prompt book') with a target state ('as active'), which distinguishes it from sibling tools that create, rename, remove, or list prompt books. However, it leaves the meaning of 'active' somewhat undefined and uses 'prompt book' while siblings refer to 'prompt_book_config', introducing slight ambiguity.
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?
No guidance is provided about when to use this tool versus alternatives such as create_prompt_book_config, rename_prompt_book, or list_prompt_books. The agent must infer the appropriate context from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_promptB
Add a new prompt to the database
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the prompt | |
| tags | No | Optional list of tags for the prompt | |
| type | Yes | Type of the prompt. Use the list_all_types tool to check existing types to use. | |
| detailed_prompt | Yes | The detailed content of the prompt |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It accurately indicates a mutation ('Add') but does not mention duplicate handling, validation behavior, return values, or any side effects beyond insertion.
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 a single clear sentence with no filler and is immediately informative. It could be slightly richer, but it earns its place efficiently.
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?
This is a simple create operation with a schema that documents all parameters, but there are no annotations and no output schema. The description does not cover what happens on success, uniqueness constraints, or any preconditions, which leaves some gaps for an agent selecting the tool.
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%, so the parameters are already documented. The description itself adds no parameter-level meaning, though the schema's note on the type field pointing to list_all_types is a helpful cross-reference.
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 verb (Add) and the resource (a new prompt to the database), distinguishing it from sibling tools like update_prompt, copy_prompt, and create_prompt_database. The scope is apparent: creating a brand-new prompt, not modifying or duplicating an existing one.
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?
No guidance is provided about when to use this tool versus alternatives such as update_prompt or copy_prompt. The description implies 'use this to create' but does not state exclusions or prerequisites, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copy_promptB
Copy a prompt from one book to another
| Name | Required | Description | Default |
|---|---|---|---|
| prompt_id | Yes | ID of the prompt to copy | |
| source_book_id | No | ID of the source prompt book (optional if using the active book as source) | |
| destination_book_id | Yes | ID of the destination prompt book to copy the prompt to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, yet it only states the core operation. The word 'copy' usefully implies the original is preserved, but the description does not disclose what gets duplicated (tags, types, references), whether a new prompt ID is minted in the destination, conflict behavior, or side effects — significant gaps for a mutation 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?
An eight-word sentence with zero filler; the verb is front-loaded and every word carries meaning. It avoids redundant restatement of the tool name or schema content, making it an efficiently structured definition.
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?
With no annotations and no output schema, the description must supply behavioral context on its own, and it falls short: it doesn't address prerequisites (destination book must exist, active book requirement), copy semantics, or result behavior. For a mutation tool with 3 parameters, this is incomplete even though the parameters themselves are well-documented in the schema.
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% — every parameter already has a clear description, including the active-book fallback for source_book_id — so the baseline is 3. The phrase 'from one book to another' restates the source/destination relationship but adds no parameter-level meaning beyond what the schema already provides.
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?
States a specific verb ('copy') on a specific resource (a prompt) and names the source/destination relationship ('from one book to another'), making the operation unambiguous. None of the 15 sibling tools describe a cross-book duplication operation, so the description inherently distinguishes copy_prompt from add_prompt and update_prompt.
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 no guidance on when to choose this tool over add_prompt or update_prompt, and names no exclusions or alternatives. The only usage hint ('optional if using the active book as source') lives in the input schema, not the description, so an agent gets no context about prerequisites or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_prompt_book_configC
Add a new prompt book configuration
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the prompt book | |
| notion_token | Yes | Notion API token with access to the prompts database | |
| notion_database_id | Yes | ID of the Notion database containing the prompts |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It indicates a creation operation but does not mention side effects, validation of the Notion token, duplicate handling, or whether the new configuration becomes active.
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 a single efficient sentence with no wasted words and the core action is front-loaded. It is appropriately short, though the brevity does sacrifice explanatory value.
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 three-parameter create operation with full schema coverage, the description is minimally viable. However, it omits any context about what a prompt book configuration is, what the tool returns, or how it fits with sibling tools like create_prompt_database.
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%, so the schema already documents each parameter. The description adds no additional semantic meaning about how the parameters relate to the prompt book configuration.
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 'Add a new prompt book configuration' clearly identifies a specific verb and resource. It is understandable on its own, though it does not actively distinguish itself from sibling tools like create_prompt_database or activate_prompt_book.
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?
There is no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as needing a Notion database first, or situations where another sibling like create_prompt_database would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_prompt_databaseB
Create a new prompt database and add it to the configuration
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the prompt book to create | |
| page_id | Yes | ID of the page where the database will be created | |
| activate | No | Whether to set the new prompt book as active (default: false) | |
| notion_token | Yes | Notion API token with access to the prompts database |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does disclose the side effect of adding the database to the configuration, which is valuable, but it omits permission requirements, overwrite/idempotency behavior, and what the resulting configuration looks like.
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 a single, front-loaded sentence with no filler. It conveys both the primary action and the configuration side effect in a compact, easily parseable way.
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 mutating tool with no annotations and no output schema, the description is somewhat thin. The schema covers parameter details, but the description does not mention expected results, failure conditions, or how this fits into the broader prompt-book workflow.
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%, so all four parameters are already documented in the schema. The description adds no additional parameter-level meaning, so the baseline score 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 names a specific action (create) and resource (prompt database), plus a meaningful follow-on effect (add to configuration). It is clear and generally distinguishable from sibling tools, though it does not explicitly mention the closely related create_prompt_book_config.
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?
There is no guidance about when to use this tool versus alternatives such as create_prompt_book_config, list_prompt_books, or activate_prompt_book. The description implies use when a new database is needed, but it provides no context, exclusions, or explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_prompts_by_tagB
Get prompts by tag
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | Tag to filter prompts by |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral transparency burden. It only restates the tool name and offers no details about read-only behavior, ordering, pagination, missing-tag handling, side effects, or authentication. 'Get' weakly implies retrieval, but nothing beyond that is disclosed.
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 a short four-word sentence with no fluff, so it is structurally tidy. But it is essentially a restatement of the tool name, making it under-specified rather than a concise description that earns its place by adding value.
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 one-parameter tool, the description is minimally viable: it communicates the primary operation and the tag filter. However, with no output schema and no annotations, details such as return shape, behavior for unknown tags, and pagination are left to inference, and the description does not disambiguate among similar sibling tools.
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 input schema already covers the single tag parameter completely, describing it as 'Tag to filter prompts by'. The description adds no extra meaning beyond echoing 'by tag', so the schema does the heavy lifting and the description does not compensate with examples or constraints.
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 states a clear retrieval verb and resource: 'Get prompts' with a tag filter. It is not a tautology, though it does not explicitly distinguish itself from siblings like get_prompts_by_type or search_prompts_by_title beyond the tag filter dimension.
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 phrase 'by tag' implies the tool should be used when filtering prompts by a tag, and the required tag parameter reinforces this. However, it gives no explicit guidance about when to prefer this tool over list_prompts, search_prompts_by_title, or get_prompts_by_type, and names no alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_prompts_by_typeB
Get prompts by type
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Type to filter prompts by (e.g., "Coding", "Image Generation", "Conversation") |
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 of behavioral disclosure. It only restates the basic operation and does not mention whether it returns a list, whether matching is exact or partial, whether results are paginated or ordered, or any other behavioral nuance. This is a significant gap for a tool with no annotations.
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 very short and front-loaded, with no wasted words. However, 'Get prompts by type' essentially restates the tool name, so it provides little additive value; it is under-specified rather than efficiently informative.
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?
With only one parameter and full schema coverage, the context requirements are relatively light. However, there is no output schema and no behavioral detail, so the description leaves the return format and exact matching semantics unexplained. This is adequate for a trivial lookup tool but not fully 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?
Schema description coverage is 100%, and the 'type' parameter already includes explanatory examples. The description adds no additional meaning beyond the schema, 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 states a specific action and resource: 'Get prompts by type,' and the parameter schema confirms the filtering dimension. It is distinguishable from siblings like get_prompts_by_tag and search_prompts_by_title, though it does not explicitly name those alternatives or contrast with them, so it falls short of a 5.
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 schema's parameter description implies the tool is used when filtering prompts by a type value, such as 'Coding' or 'Conversation.' However, there is no explicit guidance about when to prefer this over list_prompts, get_prompts_by_tag, or search_prompts_by_title, so the agent must infer usage from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_all_tagsA
List all unique tags used in the database
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral disclosure burden. It conveys a read-only list operation returning unique database-wide tags, but does not mention ordering, return format, case sensitivity, or behavior for empty databases.
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?
One short sentence with no filler or repetition. The core action, scope, and result type are all front-loaded, making it easy for an agent to process quickly.
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 zero-parameter, no-side-effect list operation, the description is largely complete: it states what is listed, uniqueness, and source scope. It could optionally mention sorting or return shape, but the low complexity keeps the gap minor.
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 zero parameters and schema coverage is 100%, so there is no parameter documentation burden. The description adds a small amount of scope context ('used in the database') but is not required to explain parameters.
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 identifies a specific verb ('List') and resource ('all unique tags') with a clear scope ('used in the database'). It is unambiguous, though it does not explicitly differentiate itself from similar sibling tools like list_all_types or get_prompts_by_tag.
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 no guidance on when to use this tool versus alternatives such as get_prompts_by_tag or search_prompts_by_title. Usage context is only implied by the tool's name and listing behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_all_typesA
List all unique prompt types in the database
| 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 the behavioral burden; 'List' clearly marks a read-only enumeration and 'unique' implies deduplication. However, it does not disclose return shape, ordering, sorting, or whether types come from a specific field, which would be useful since no output schema is present.
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?
One sentence, no filler, and the key scope word 'unique' is front-loaded. Every word earns its place.
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?
Low complexity and zero parameters make this easy to invoke correctly; the description names the resource and scope. Minor gap: without an output schema, a hint about the return format (e.g., array of strings, sorted) would make it fully complete, but it is not necessary for selecting or invoking the tool.
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 zero parameters and schema coverage is 100%, so the baseline is 4. There are no parameter semantics to document; the description correctly doesn't invent any.
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?
States a precise verb ('List'), resource ('prompt types'), and scope ('all unique'), and is distinct from siblings: it enumerates type values rather than tags (list_all_tags) or prompts matching a type (get_prompts_by_type).
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 its use case—when you need the full set of prompt type values—but it gives no explicit guidance on when to prefer list_all_tags or get_prompts_by_type, and no exclusion criteria. This is adequate but leaves routing to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_prompt_booksA
List all configured prompt books
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The verb 'List' implies a read-only operation and 'all configured' indicates an unfiltered scope, but no annotations are present to confirm safety. The description does not disclose return format, ordering, failure behavior, or whether any filtering or pagination applies.
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 a single front-loaded sentence with no filler. Every word contributes to the meaning, making it easy for an agent to parse quickly.
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 parameterless list tool, the description is reasonably complete: it names the resource and the scope. The lack of an output schema and any detail about the returned entries is a minor gap, but the simplicity of the tool makes the missing information less critical.
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 zero parameters, so there are no parameter semantics to explain. The empty schema and the description align, and no additional parameter-level information is needed.
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 states a specific action and resource: 'List all configured prompt books'. The word 'all' and 'configured' clarify the scope and help distinguish this from sibling tools like list_prompts, which operates on prompts rather than prompt books.
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 action and resource make the general use case clear, but the description gives no explicit guidance about when to choose this tool over alternatives. It does not mention list_prompts or related book-configuration tools, so an agent must infer the intended distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_promptsB
List all prompts in the database
| Name | Required | Description | Default |
|---|---|---|---|
| show_all_fields | No | If true, shows all fields including tags and url. Default is false, showing only id, title, and type. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral burden. The verb 'list' implies a read-only operation with no side effects, but the description does not disclose whether the result is paginated, whether soft-deleted or archived prompts are included, or whether the output is ordered. It is minimally transparent but lacks meaningful behavioral context.
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?
A single, front-loaded sentence that states exactly what the tool does without any filler. Every word earns its place, and the structure is immediately scannable.
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 has no annotations, no output schema, and several sibling tools that offer filtered alternatives. The description does not clarify the return shape, mention pagination or limits, or guide the agent toward the correct sibling for narrower queries. Given the available context, this is incomplete for reliable agent selection and invocation.
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 the parameter show_all_fields already documented in the input schema. The description adds no additional meaning about parameter usage, formatting, or interaction, so the baseline score 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 'List all prompts in the database' clearly identifies the action (list) and resource (prompts), and the word 'all' distinguishes it from sibling tools that filter by tag, type, or title. However, it does not explicitly name any sibling or contrast itself with them, so it lacks the sharp differentiation of the highest tier.
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?
No guidance is given on when to use this tool versus search_prompts_by_title, get_prompts_by_tag, get_prompts_by_type, or list_prompt_books. The description implies a general 'list everything' use case, but it does not state exclusions, alternatives, or prerequisites, leaving the agent to infer selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_promptA
Read the content of a specific prompt
| Name | Required | Description | Default |
|---|---|---|---|
| prompt_id | Yes | ID of the prompt to read |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. 'Read' clearly conveys a non-mutating read operation, which is a meaningful behavioral trait. However, it does not disclose what happens for invalid or missing prompt_id, whether the full content or metadata is returned, or any error behavior. The description is adequate but minimal.
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 a single concise sentence with no filler. It front-loads the core action ('Read the content') and directly states the target ('a specific prompt'). Every word earns its place.
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 one-parameter read tool, the description is reasonably complete, but the absence of an output schema means the agent does not know what response to expect (e.g., plain text, JSON payload, full prompt object). The description states the action but leaves the return format and edge-case behavior to inference, which is a noticeable gap for a tool with no structured output definition.
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% — the schema already documents prompt_id as 'ID of the prompt to read.' The tool description adds no additional meaning beyond the schema, so the baseline score of 3 applies. No extra context about the parameter format or restrictions is provided.
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 uses a specific verb ('Read') with a clear resource ('content of a specific prompt'). It distinguishes itself from sibling listing/search tools by emphasizing 'a specific prompt,' implying retrieval by ID rather than enumeration. However, it does not explicitly name any sibling or contrast itself with them.
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 phrase 'specific prompt' implies that the tool is used when the caller already has a prompt_id and wants its content, which is a clear context. But there is no explicit guidance on when to use this tool instead of list_prompts, search_prompts_by_title, get_prompts_by_tag, or get_prompts_by_type, and no mention of prerequisites for obtaining the ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_prompt_book_configC
Remove a prompt book configuration
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the prompt book to remove |
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 of behavioral disclosure. 'Remove' implies destruction, but the description does not state whether removal is permanent, whether it affects associated prompts, or whether any confirmation is needed. This is opaque for a destructive 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 a single short phrase with no filler, which is structurally clean. However, it is under-specified for a deletion operation and provides no behavioral or usage context that would help an agent use it confidently.
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?
With no annotations, no output schema, and only one parameter, the description is the only source of context. It does not explain what happens when the config is removed, whether the operation is reversible, or what error behavior to expect. This is insufficient for a destructive tool with no additional metadata.
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 documentation coverage is 100%, with the id parameter described as 'ID of the prompt book to remove'. The description adds no additional semantic value beyond the schema, so the baseline score of 3 applies.
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?
Description states the specific action 'Remove' and resource 'prompt book configuration', which distinguishes it from siblings like create, rename, or list. It is clear about what the tool does, though it does not explicitly contrast it with the other prompt-book tools.
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?
No guidance is provided about when to use this tool instead of alternatives such as rename_prompt_book or deactivate/activate. There is no mention of prerequisites, edge cases, or what qualifies as a prompt book configuration. Usage is only implied by the verb and resource.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_prompt_bookA
Rename a prompt book configuration
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the prompt book to rename | |
| name | Yes | New name for the prompt book |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the burden of behavioral disclosure. 'Rename' implies a mutation, but the description does not state whether the operation is reversible, whether it requires an existing configuration, or whether it has any side effects on associated prompts. This leaves significant behavioral ambiguity.
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 a single short sentence with no filler or redundant information. It conveys the action efficiently and front-loads the core purpose.
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 two-parameter rename operation with full schema coverage, the description is adequate but not rich. It lacks any note about return values, persistence, uniqueness constraints, or the effect on related resources. Since no annotations exist, a bit more context would help make the tool fully self-explanatory.
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 already documents both parameters with clear descriptions ('ID of the prompt book to rename' and 'New name for the prompt book'), covering 100% of parameters. The tool description adds no additional parameter-level meaning, so the baseline of 3 applies.
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 uses a specific verb ('Rename') and a clear resource ('a prompt book configuration'), making the action unambiguous. It also distinguishes this tool from sibling config tools like create, remove, activate, and list, so an agent can identify it correctly without opening the schema.
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 intended use is implied by the verb and resource: use this tool when the name of an existing prompt book configuration must be changed. However, there is no explicit guidance about when not to use it or how it compares to create_prompt_book_config or remove_prompt_book_config, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_prompts_by_titleC
Search prompts by title
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for prompt titles |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the behavioral disclosure burden. 'Search' implies a read operation, but the description does not clarify matching semantics, case sensitivity, partial matching, result size, or return format.
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 a single, short sentence that is easy to parse and front-loads the core action. It is not verbose, though it is sparing enough that some helpful behavioral context is absent.
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?
With no output schema and no annotations, the description should clarify what a successful search returns and how title matching works. It only restates the basic purpose, leaving important operational context missing for a tool that agents must invoke correctly.
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%, so the parameter is fully documented in the schema. The description's 'by title' phrasing aligns with the schema but adds no additional meaning beyond it, matching the baseline for complete schema coverage.
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 states a clear verb and resource: it searches prompts by their title. It does not explicitly distinguish itself from sibling tools like get_prompts_by_tag or get_prompts_by_type, but the title-based scope is implicit in the phrasing.
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?
No guidance is given on when to use this tool versus alternatives such as list_prompts, get_prompts_by_tag, or get_prompts_by_type. The agent is left to infer usage solely from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_promptC
Update an existing prompt in the database
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name for the prompt (optional) | |
| tags | No | New list of tags for the prompt (optional) | |
| type | No | New type for the prompt (optional). Use the list_all_types tool to check existing types. | |
| prompt_id | Yes | ID of the prompt to update | |
| detailed_prompt | No | New detailed content for the prompt (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Update', implying mutation, but does not explain whether optional fields are replaced wholesale, what happens to omitted fields, whether changes are reversible, or what the response contains. This is a significant gap for a mutating 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 a single concise sentence with no wasted words. It is front-loaded with the core action, but it could have added useful behavioral details without becoming bloated.
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 mutation tool with no annotations and no output schema, this description is too thin. It does not explain behavior on partially specified updates, return values, or failure conditions, and it gives no guidance relative to sibling tools. The schema covers parameters, but not the operational context an agent needs.
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%, so the baseline is 3. The description itself adds no parameter-level meaning, but the schema already documents each parameter, including optionality and the hint to use list_all_types for the type parameter.
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 states a clear verb and resource: 'Update an existing prompt in the database.' It distinguishes this mutation tool from creation or read tools, though it does not explicitly contrast with siblings like copy_prompt or add_prompt.
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?
There is no guidance on when to use this tool versus alternatives. It does not mention prerequisites, nor does it explain situations where another tool such as add_prompt or copy_prompt would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
16 tool updates
v1.0.5- First observed
activate_prompt_book - First observed
add_prompt - First observed
copy_prompt - First observed
create_prompt_book_config - First observed
create_prompt_database - First observed
get_prompts_by_tag - First observed
get_prompts_by_type - First observed
list_all_tags - First observed
list_all_types - First observed
list_prompt_books - First observed
list_prompts - First observed
read_prompt - First observed
remove_prompt_book_config - First observed
rename_prompt_book - First observed
search_prompts_by_title - First observed
update_prompt
TDQS
Scored across 16 tools
Each tool targets a distinct entity or action: prompt book configs, prompt databases, individual prompts, and metadata queries. The list/search/get operations are clearly separated by their parameters and descriptions, so there is little risk of selecting the wrong tool.
Most tools follow a consistent verb_noun pattern such as create_prompt_book_config, list_prompts, and rename_prompt_book. The main inconsistency is using both read_prompt and get_prompts_by_* for retrieval, but the overall naming remains predictable.
At 16 tools, the set is slightly above the ideal range, but the domain covers both book configuration management and prompt metadata retrieval. Each tool has a clear purpose, though the number is on the higher end for a single server.
The server covers prompt book lifecycle operations, database creation, and prompt add/update/read/query operations. However, there is no delete or remove prompt tool and no way to remove a prompt database, so lifecycle management is incomplete for the core prompt entity.
Maintenance
Related MCP Connectors
- PromptOTOAuthcom.promptot
Manage, version, and publish LLM prompts with blocks, variables, and evaluations.
Your prompt library inside your AI: 1,000+ pro templates, frameworks, vocab & pipelines.
Build and manage Chipp AI apps: prompts, knowledge, custom actions, and chat with your apps.
Self-hosted AI prompt library: prompts, collections, tags, teams, chains. 29 MCP tools for agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Notion workspaces through the Notion API. Supports searching, reading, creating pages, and querying databases with filters and sorting capabilities.1,642 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with Notion workspaces through the Notion API, allowing them to search, read, create, update pages and databases, and manage comments using natural language commands.122,532 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to search, create, and manage Notion workspace content including pages and databases. It supports advanced database querying, page updates, and content organization through natural language conversations.-
- FlicenseNot gradedqualityDmaintenanceEnables interaction with Notion databases and pages via the Notion API. Allows searching, reading, and writing to Notion through natural language.-