snippet-vault
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., "@snippet-vaultSave the debounce function with tag utility"
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.
snippet-vault
An MCP server that gives Claude a personal code snippet library. Save snippets during any conversation and retrieve them later — across sessions, projects, and machines.
What it does
save_snippet — save any code block with a title, language, and tags
search_snippets — search by title, language, tag, or content
get_snippet — retrieve a full snippet by ID
list_snippets — see all saved snippets
delete_snippet — remove a snippet by ID
Snippets are stored locally at ~/.snippet-vault/snippets.json — your data stays on your machine.
Related MCP server: Snippets MCP
Example prompts
"Save this debounce function to my vault with tags: utility, typescript"
"Find my auth middleware snippet"
"Show me all my Python snippets"
"List everything in my vault"
"Delete snippet abc123"
Add to Claude Desktop
{
"mcpServers": {
"snippet-vault": {
"command": "npx",
"args": ["-y", "@engineeringmatrixexplorer/snippet-vault"]
}
}
}Add to Claude Code
claude mcp add snippet-vault -- npx -y @engineeringmatrixexplorer/snippet-vaultWhere snippets are stored
Snippets live at ~/.snippet-vault/snippets.json on your machine. No cloud, no account, no tracking.
Requirements
Node.js 18+
Part of the MCP Developer Tools Bundle
This server is also available as part of a bundle with engineering-matrix-explorer and stack-advisor.
License
MIT
Available Tools
5 toolsdelete_snippetB
Delete a snippet from your vault by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Snippet ID to delete |
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 states 'Delete', which implies destructiveness, but does not mention side effects (e.g., irreversibility), permissions, or error handling for missing IDs. This is insufficient for an agent to understand the full impact.
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 sentence with no wasted words. It is appropriately concise for a simple tool, though slightly terse. Front-loads the action clearly.
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's simplicity and no output schema, the description should explain return values or success indication. It omits details like idempotency, error handling, and confirmation of deletion. This leaves the agent without critical operational context.
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 coverage is 100% with a single required parameter id described as 'Snippet ID to delete'. The description does not add meaning beyond the schema; it merely reiterates. Baseline 3 applies as schema already covers the parameter adequately.
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 'Delete', the resource 'snippet', and the scope 'from your vault by ID'. It distinguishes from sibling tools like get_snippet (retrieve), list_snippets (list), save_snippet (create/update), and search_snippets (search).
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 removing a specific snippet, but does not explicitly state when to use this tool vs alternatives, nor does it provide when-not or exclusion criteria. Usage is implied but not guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_snippetB
Get a specific snippet by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Snippet ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the basic retrieval functionality. It lacks details on idempotency, error handling (e.g., if snippet ID does not exist), or any 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 a single, efficient sentence with no unnecessary words. It is front-loaded and concise.
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 get-by-ID tool, the description is adequate but lacks details about return values or behavior on missing IDs. Without an output schema, some extra context 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%, and the description adds no additional meaning beyond the parameter name and type. 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?
The description clearly states the verb 'Get', the resource 'specific snippet', and the method 'by its ID'. It distinguishes itself from sibling tools like delete_snippet, list_snippets, save_snippet, and search_snippets.
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 on when to use this tool versus siblings. It does not mention alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_snippetsA
List all saved snippets (titles and IDs only)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It declares the tool lists all snippets and returns only titles and IDs, indicating read-only and non-destructive behavior. However, it omits details like pagination or ordering, which are likely absent given no parameters.
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?
Single sentence, front-loaded with the main action and resource. No unnecessary words. Efficiently conveys core purpose and output.
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?
No output schema exists, but description explains return content (titles and IDs). For a simple list-all tool with no parameters, it covers essential aspects. Minor missing: whether it's an array or ordered, but acceptable for this simplicity.
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?
No parameters exist, so schema coverage is 100%. The description does not need to add parameter info. Baseline score of 4 applies as it provides no extra parameter meaning, but none is required.
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 starts with 'List all saved snippets', clearly stating the action and resource. It specifies the output (titles and IDs only), distinguishing from siblings like get_snippet (single) and search_snippets (filtered).
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 use for a full listing without filters. It does not explicitly state when to use or not use this tool versus alternatives like search_snippets. No exclusion criteria provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_snippetB
Save a code snippet to your personal vault
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Short title for the snippet e.g. 'Debounce function' | |
| code | Yes | The code to save | |
| language | Yes | Programming language e.g. 'typescript', 'python', 'bash' | |
| tags | No | Tags for searching later e.g. ['utility', 'async', 'react'] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral context. It does not mention idempotency, whether it overwrites, success/failure indicators, or any side effects beyond saving.
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?
Single sentence, front-loaded with action and resource, no filler. 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?
Core purpose is clear, but for a tool with no output schema and no annotations, more context would help (e.g., whether existing snippets with same title are overwritten, size limits). Adequate but not rich.
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?
All four parameters have descriptions in the schema, so the description adds no extra meaning. Baseline of 3 is appropriate since schema coverage is 100%.
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 provides a specific verb 'Save', a clear resource 'code snippet', and a location 'personal vault'. It cleanly distinguishes from sibling tools like delete, get, list, and search.
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 on when to use this tool versus alternatives (e.g., updating an existing snippet). No conditions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_snippetsA
Search your saved snippets by title, language, tag, or content
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query e.g. 'debounce', 'typescript', 'auth' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must cover behavioral aspects. It fails to disclose search behavior such as case sensitivity, full-text vs exact match, pagination, or how multiple fields are combined. The description is too minimal 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?
Single sentence, front-loaded with the action and resource. No fluff, every word serves a purpose. Very concise.
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 1-parameter tool with no output schema, the description covers the core purpose. However, it lacks details on search behavior (e.g., boolean operators, matching logic) making it adequate but not complete for an agent to fully understand the tool's capabilities.
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 single parameter 'query' is well-described in schema with examples. The description adds valuable context by specifying the fields searched (title, language, tag, content), which is not in the schema. Schema coverage is 100%, but the description enhances understanding.
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 clearly states verb 'Search' and resource 'your saved snippets', specifying searchable fields (title, language, tag, or content). It distinguishes itself from sibling tools like list_snippets (which likely returns all snippets) by focusing on search functionality.
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?
Description implies usage for searching with a query but does not explicitly state when to use this tool versus alternatives (e.g., list_snippets for listing all). No exclusions or 'when-not-to-use' guidance is provided.
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.
5 tool updates
v1.0.1- First observed
delete_snippet - First observed
get_snippet - First observed
list_snippets - First observed
save_snippet - First observed
search_snippets
TDQS
Scored across 5 tools
Each tool targets a distinct operation (create, read, list, search, delete) with no overlap in purpose. An agent can clearly differentiate them.
All tools follow a verb_noun pattern. Minor inconsistency: 'list_snippets' uses plural noun while others use singular, but the pattern is clear and predictable.
With 5 tools, the server covers all essential operations for a snippet vault without being excessive or sparse. Each tool contributes meaningfully.
The tool surface includes create, read (by ID, list, search), and delete operations. An update operation is missing, but snippets are often immutable, so this is acceptable.
Maintenance
Related MCP Connectors
Shared memory for AI coding agents. Save once, reuse from Cursor, Claude Code, Codex.
Persistent memory for Claude Code and Cursor. Stop re-explaining your project every session.
Persistent cross-session memory shared by Codex, Claude Code, ChatGPT, and other AI agents.
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceEnables Claude to manage GitHub Gists as an intelligent code library, allowing users to save, retrieve, update, and organize code snippets from anywhere with natural language commands.-
- AlicenseNot gradedqualityCmaintenanceEnables storing, searching, and managing code snippets using hybrid semantic search and keyword matching with automatic language detection and tag-based organization.4 npm2MIT
- AlicenseNot gradedqualityCmaintenanceEnables searching and retrieving Claude Code conversation history that would otherwise expire after 30 days. Supports full-text search, semantic search, and session management with automatic backup of all conversations.5 npm28MIT
- AlicenseNot gradedqualityCmaintenancePersistent knowledge base tools for Claude Code that store project context, decisions, and patterns locally across sessions, eliminating cold starts.MIT