Svelte 5 MCP Server
Provides curated knowledge, code examples, and intelligent assistance for Svelte 5 development, including runes, snippets, and enhanced reactivity.
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., "@Svelte 5 MCP Servergenerate a counter component using $state"
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.
Svelte 5 MCP Server
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.
Features
🔍 Searchable Resources
Knowledge Base: Curated Q&A covering Svelte 5 concepts, runes, and best practices
Code Examples: Searchable collection of Svelte 5 patterns and component implementations
🛠️ Intelligent Tools
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
📝 Smart Prompts
generate-component- Generate modern Svelte 5 componentsaudit-svelte5-code- Audit code for optimization opportunitiesexplain-concept- Detailed concept explanationssearch-patterns- Find specific implementation patterns
Installation
# Clone and setup
git clone <repository-url>
cd svelte5-mcp-server
# Install dependencies
npm install
# Build the server
npm run build
# Start the server
npm startProject Structure
svelte5-mcp-server/
├── src/
│ └── index.ts # Main MCP server implementation
├── data/
│ ├── svelte_5_knowledge.json # Curated Q&A knowledge base
│ └── svelte_5_patterns.json # Code examples and patterns
├── package.json
├── tsconfig.json
├── example system prompt # Svelte 5 specific system prompt (quite strict, adjust for your own preferences)
└── README.mdUsage with Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"svelte5": {
"command": "node",
"args": ["/path/to/svelte5-mcp-server/dist/index.js"],
"env": {}
}
}
}Usage Examples
🔍 Search Knowledge
Tool: search_knowledge
Query: "runes reactivity"Returns detailed explanations about Svelte 5 runes and the new reactivity system.
📚 Find Code Examples
Tool: search_examples
Query: "counter component $state"Returns working Svelte 5 counter implementations using the $state rune.
🏗️ Generate Components
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.
🔍 Audit Code
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).
Key Svelte 5 Concepts Covered
🎯 Runes System
$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
🧩 Modern Patterns
Snippets - Reusable template blocks (
{#snippet},{@render})Enhanced Reactivity - Fine-grained updates
Event Handling - Modern
onclickvs legacyon:clickTypeScript Integration - Better type inference
Accessibility - Built-in a11y considerations
📈 Migration Support
Svelte 4 → 5 migration patterns
Legacy reactive statements (
$:) → runesSlots → snippets conversion
Event dispatcher → callback props
Data Format
Knowledge Base (svelte_5_knowledge.json)
{
"question": "How do you manage reactive state in Svelte 5?",
"answer": "In Svelte 5, reactive state is managed using the $state rune..."
}Examples (svelte_5_patterns.json)
{
"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>"
}Configuration
The server uses a better-sqlite3 database and FTS5 queries for search
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.
Development
Building
npm run build # Compile TypeScript
npm run dev # Watch mode for developmentData Processing
node process-attached-data.js # Process curated knowledge
node setup-data.js # Create sample dataTesting
The server provides comprehensive logging and error handling:
# Test the server
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' | npm startContributing
Adding Knowledge
Add entries to
data/svelte_5_knowledge.jsonFormat:
{"question": "...", "answer": "..."}Focus on Svelte 5 specific features and best practices
Adding Examples
Add entries to
data/svelte_5_patterns.jsonFormat:
{"instruction": "...", "input": "...", "output": "..."}Include complete, working Svelte 5 code examples
Search Optimization
Use descriptive, searchable keywords in questions and instructions
Include alternative phrasings for common concepts
Tag examples with relevant feature names (
$state,snippets, etc.)
Advanced Usage
Custom Search Queries
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")Prompt Chaining
Use prompts in sequence for complex workflows:
search-patterns- Find relevant patternsgenerate-component- Create based on patternsaudit-svelte5-code- Review and optimize
Integration Tips
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
Troubleshooting
Common Issues
"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"
Verify server is built (
npm run build)Check MCP client configuration
Review server logs for startup errors
"Invalid data format"
Validate JSON files
Check for trailing commas or syntax errors
Debugging
# Enable debug logging
DEBUG=* npm startLicense
MIT License - see LICENSE file for details.
Acknowledgments
Built with MCP TypeScript SDK
Search db by better-sqlite3
Validation with Zod
Curated Svelte 5 knowledge from official documentation and community best practices
Latest Blog Posts
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/StudentOfJS/svelte5-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server