list_snippets
Filter and retrieve code snippets by language or tags from a centralized server, streamlining access to reusable code for efficient development.
Instructions
List snippets (can filter by language or tags)
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "list_snippets"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Filter by specific language | |
| tag | No | Filter by specific tag |
Implementation Reference
- src/index.ts:147-154 (handler)Primary MCP tool handler for list_snippets: wraps engine.ListSnippets and returns JSON-formatted response
private async listSnippets(args: any): Promise<GenericMCPResponse> { return { content: [{ type: 'text', text: JSON.stringify(await this.engine.ListSnippets(args), null, 2) }] }; } - src/engine/local_storage.ts:28-46 (handler)Core implementation of snippet listing with filtering by language, tag, and title
async ListSnippets(query?: SnippetQuery): Promise<CodeSnippet[]> { // 単一のfilter関数で全フィルタリング条件を処理 return this.snippets.filter(s => { if (query) { if (query.language && s.language.toLowerCase() !== query.language.toLowerCase()) { return false; } if (query.tag && !s.tags.some(t => t.toLowerCase() === query.tag!.toLowerCase())) { return false; } if (query.title && !s.title.toLowerCase().includes(query.title.toLowerCase() || '')) { return false; } } return true; }); } - src/index.ts:70-85 (registration)Registration of the list_snippets tool in the ListTools response
name: 'list_snippets', description: this.getLocalizedString("tool_list_snippets"), inputSchema: { type: 'object', properties: { language: { type: 'string', description: this.getLocalizedString("snippet_schema_language_filter") }, tag: { type: 'string', description: this.getLocalizedString("snippet_schema_tag_filter") } } } }, - src/index.ts:72-84 (schema)Input schema for list_snippets tool defining optional language and tag parameters
inputSchema: { type: 'object', properties: { language: { type: 'string', description: this.getLocalizedString("snippet_schema_language_filter") }, tag: { type: 'string', description: this.getLocalizedString("snippet_schema_tag_filter") } } } - src/engine/storage_base.ts:3-7 (schema)Type definition for SnippetQuery used in ListSnippets method, matching tool input schema
export type SnippetQuery = { tag?: string, title?: string, language?: string };