A specialized Model Context Protocol (MCP) server for Svelte 5 frontend development, providing curated knowledge, code examples, and intelligent assistance for modern Svelte development with runes, snippets, and enhanced reactivity.
Note: This is a fork of svelte5-mcp that has been adapted to use Bun instead of Node.js. This version is specifically optimized for Svelte 5 development with Bun as the runtime.
- Knowledge Base: Curated Q&A covering Svelte 5 concepts, runes, and best practices
- Code Examples: Searchable collection of Svelte 5 patterns and component implementations
search_knowledge- Find explanations and conceptssearch_examples- Discover code patterns and implementationsgenerate_with_context- Create components using curated patternsaudit_with_rules- Review code against Svelte 5 best practicesexplain_concept- Get detailed explanations with examples
generate-component- Generate modern Svelte 5 componentsaudit-svelte5-code- Audit code for optimization opportunitiesexplain-concept- Detailed concept explanationssearch-patterns- Find specific implementation patterns
Simply add to your Claude Desktop configuration - no installation required:
{
"mcpServers": {
"svelte5": {
"command": "bunx",
"args": ["@binsarjr/svelte5-mcp"],
"env": {}
}
}
}# Clone and setup
git clone https://github.com/binsarjr/svelte5-mcp
cd svelte5-mcp-bin
# Install dependencies with Bun
bun install
# Start the server
bun startsvelte5-mcp-bin/
βββ src/
β βββ index.ts # Main MCP server implementation
β βββ Svelte5SearchDB.ts # SQLite database with FTS5 search
β βββ data/
β βββ svelte_5_knowledge.json # Curated Q&A knowledge base
β βββ svelte_5_patterns.json # Code examples and patterns
βββ package.json
βββ bun.lockb # Bun lock file
βββ tsconfig.json
βββ README.md
{
"mcpServers": {
"svelte5": {
"command": "bunx",
"args": ["@binsarjr/svelte5-mcp"],
"env": {}
}
}
}{
"mcpServers": {
"svelte5": {
"command": "bun",
"args": ["/path/to/svelte5-mcp-bin/src/index.ts"],
"env": {}
}
}
}Tool: search_knowledge
Query: "runes reactivity"
Returns detailed explanations about Svelte 5 runes and the new reactivity system.
Tool: search_examples
Query: "counter component $state"
Returns working Svelte 5 counter implementations using the $state rune.
Tool: generate_with_context
Description: "A todo list with add/remove functionality"
Features: ["$state", "snippets", "accessibility"]
Generates a complete todo component using modern Svelte 5 patterns with relevant examples from the knowledge base.
Tool: audit_with_rules
Code: "<script>let count = 0;</script><button on:click={() => count++}>{count}</button>"
Focus: "best-practices"
Analyzes code and suggests Svelte 5 improvements (e.g., using $state and modern event handling).
$state- Reactive state management$derived- Computed values and derived state$effect- Side effects and lifecycle$props- Component properties$bindable- Two-way data binding$inspect- Development debugging
- Snippets - Reusable template blocks (
{#snippet},{@render}) - Enhanced Reactivity - Fine-grained updates
- Event Handling - Modern
onclickvs legacyon:click - TypeScript Integration - Better type inference
- Accessibility - Built-in a11y considerations
- Svelte 4 β 5 migration patterns
- Legacy reactive statements (
$:) β runes - Slots β snippets conversion
- Event dispatcher β callback props
{
"question": "How do you manage reactive state in Svelte 5?",
"answer": "In Svelte 5, reactive state is managed using the $state rune..."
}{
"instruction": "Create a Svelte 5 component demonstrating $state",
"input": "The rune allows you to create reactive state...",
"output": "<script>\nlet count = $state(0);\n</script>\n\n<button onclick={() => count++}>\n clicks: {count}\n</button>"
}The server stores its SQLite database following the XDG Base Directory specification:
- All platforms:
~/.config/binsarjr/svelte5-mcp/database.db
This provides a consistent, organized location across all operating systems.
You can customize the database location using environment variables:
{
"mcpServers": {
"svelte5": {
"command": "bunx",
"args": ["@binsarjr/svelte5-mcp"],
"env": {
"SVELTE5_MCP_CONFIG_DIR": "/custom/config/path",
"SVELTE5_MCP_DB_PATH": "/custom/database.db"
}
}
}
}The server uses SQLite with FTS5 for advanced search capabilities:
- Full-Text Search: Utilizes SQLite's FTS5 extension for powerful and efficient searching across the knowledge base and code examples.
- Tokenization: Employs the
unicode61tokenizer with a comprehensive set of separators for robust indexing of terms. - Synonym Expansion: Enhances search recall by automatically expanding query terms with predefined Svelte 5-specific synonyms (e.g., '$state' also matches 'reactive state').
- Result Highlighting: Search results include highlighted matches within relevant fields (e.g., question, answer, instruction) using FTS5's
highlight()function. - Relevance Ranking: Results are ordered by relevance based on FTS5's internal ranking algorithm.
- Advanced Boosting: Offers capabilities for custom scoring and boosting to fine-tune search results, such as prioritizing matches in question fields or code content.
=
bun process-attached-data.js # Process curated knowledge
bun setup-data.js # Create sample dataThe server provides comprehensive logging and error handling:
# Test the server
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' | bun start- Add entries to
data/svelte_5_knowledge.json - Format:
{"question": "...", "answer": "..."} - Focus on Svelte 5 specific features and best practices
- Add entries to
data/svelte_5_patterns.json - Format:
{"instruction": "...", "input": "...", "output": "..."} - Include complete, working Svelte 5 code examples
- Use descriptive, searchable keywords in questions and instructions
- Include alternative phrasings for common concepts
- Tag examples with relevant feature names (
$state,snippets, etc.)
The search tools support sophisticated queries:
// Search for state management patterns
search_examples("$state reactive updates")
// Find accessibility guidance
search_knowledge("a11y accessibility screen reader")
// Discover migration patterns
search_examples("svelte 4 migration runes")Use prompts in sequence for complex workflows:
search-patterns- Find relevant patternsgenerate-component- Create based on patternsaudit-svelte5-code- Review and optimize
- Claude Desktop: Best for interactive development
- API Integration: Use programmatically for code generation
- CI/CD: Audit code in automated workflows
- Documentation: Generate examples for style guides
"No results found"
- Check search terms are relevant to Svelte 5
- Try broader queries first, then narrow down
- Ensure data files are properly formatted json
"Tool not found"
- Check MCP client configuration
- Review server logs for startup errors
"Invalid data format"
- Validate JSON files
- Check for trailing commas or syntax errors
Database/Config Issues
- Check if config directory is writable
- Verify database permissions in the config folder
- Use
SVELTE5_MCP_DB_PATHenvironment variable for custom locations - Check logs for database initialization messages
# Enable debug logging
DEBUG=* bun start
# Test database location
bunx @binsarjr/svelte5-mcp # Watch for config path logs
# Check config directory (all platforms)
ls -la ~/.config/binsarjr/svelte5-mcp/MIT License - see LICENSE file for details.
- Built with MCP TypeScript SDK
- Validation with Zod
- Curated Svelte 5 knowledge from official documentation and community best practices