diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json
new file mode 100644
index 0000000..9ed99ed
--- /dev/null
+++ b/.claude-plugin/marketplace.json
@@ -0,0 +1,13 @@
+{
+ "name": "svelte",
+ "owner": {
+ "name": "Svelte"
+ },
+ "plugins": [
+ {
+ "name": "svelte",
+ "source": "./plugins/svelte",
+ "description": "A plugin for all things svelte development, MCP, skills, and more."
+ }
+ ]
+}
diff --git a/documentation/docs/20-setup/30-remote-setup.md b/documentation/docs/20-setup/30-remote-setup.md
index 108c2bf..8f4d3ad 100644
--- a/documentation/docs/20-setup/30-remote-setup.md
+++ b/documentation/docs/20-setup/30-remote-setup.md
@@ -16,6 +16,8 @@ claude mcp add -t http -s [scope] svelte https://mcp.svelte.dev/mcp
You can choose your preferred `scope` (it must be `user`, `project` or `local`) and `name`.
+If you prefer you can also install the `svelte` plugin in [the svelte claude code marketplace](plugin) that will give you both the remote server and a useful [skill](https://docs.claude.com/en/docs/agents-and-tools/agent-skills/overview).
+
## Claude Desktop
- Open Settings > Connectors
diff --git a/documentation/docs/40-claude-plugin/index.md b/documentation/docs/40-claude-plugin/index.md
new file mode 100644
index 0000000..43c987a
--- /dev/null
+++ b/documentation/docs/40-claude-plugin/index.md
@@ -0,0 +1,3 @@
+---
+title: Claude Plugin
+---
diff --git a/documentation/docs/40-claude-plugin/plugin.md b/documentation/docs/40-claude-plugin/plugin.md
new file mode 100644
index 0000000..e6d24b1
--- /dev/null
+++ b/documentation/docs/40-claude-plugin/plugin.md
@@ -0,0 +1,21 @@
+---
+title: Overview
+---
+
+The open source [repository](https://github.com/sveltejs/mcp) containing the code for the MCP server is also a claude code marketplace.
+
+The marketplace allow you to install the `svelte` plugin which will give you both the remote MCP server and a [skill](https://docs.claude.com/en/docs/agents-and-tools/agent-skills/overview) to instruct the LLM on how to properly write svelte 5 code.
+
+## Installation
+
+To add the repository as a marketplace launch claude code and type
+
+```bash
+/plugin marketplace add sveltejs/mcp
+```
+
+once you do that you can install the svelte skill doing
+
+```bash
+/plugin install svelte
+```
diff --git a/documentation/docs/40-claude-plugin/skill.md b/documentation/docs/40-claude-plugin/skill.md
new file mode 100644
index 0000000..1f2dc79
--- /dev/null
+++ b/documentation/docs/40-claude-plugin/skill.md
@@ -0,0 +1,11 @@
+---
+title: Skill
+---
+
+Claude Skills are a set of MD files that live in your `.claude` folder (or that you can upload in your claude web/desktop). They are automatically loaded by Claude when it thinks they are appropriate for the current task.
+
+With those markdown files you can steer the agent behaviours and, in our case, we teach him how to properly write Svelte 5 code. The advantage over the MCP server is that the relevant tokens are only loaded when they are needed (so if you ask the LLM to write a Typescript utility in a Svelte project it will not load the skill in the context).
+
+You can find the skill inside the [`sveltejs/mcp`](https://github.com/sveltejs/mcp/plugins/svelte/skills) repo (it's in the `/plugins/svelte/skills` folder) and you can download it as a zip file to load it in your Claude web/desktop or to extract it inside your `.claude` folder.
+
+If you are using claude code you can also install it through the [svelte marketplace](plugin).
diff --git a/plugins/svelte/.claude-plugin/plugin.json b/plugins/svelte/.claude-plugin/plugin.json
new file mode 100644
index 0000000..5bdb514
--- /dev/null
+++ b/plugins/svelte/.claude-plugin/plugin.json
@@ -0,0 +1,8 @@
+{
+ "name": "svelte",
+ "description": "A plugin for all things svelte development, MCP, skills, and more.",
+ "version": "1.0.0",
+ "author": {
+ "name": "Svelte"
+ }
+}
diff --git a/plugins/svelte/.mcp.json b/plugins/svelte/.mcp.json
new file mode 100644
index 0000000..0b7b5c6
--- /dev/null
+++ b/plugins/svelte/.mcp.json
@@ -0,0 +1,8 @@
+{
+ "mcpServers": {
+ "svelte": {
+ "type": "http",
+ "url": "https://mcp.svelte.dev/mcp"
+ }
+ }
+}
diff --git a/plugins/svelte/skills/svelte-code-writer/SKILL.md b/plugins/svelte/skills/svelte-code-writer/SKILL.md
new file mode 100644
index 0000000..ee98a3a
--- /dev/null
+++ b/plugins/svelte/skills/svelte-code-writer/SKILL.md
@@ -0,0 +1,198 @@
+---
+name: svelte-code-writer
+description: Expert guidance for writing proper Svelte 5 code with runes-based reactivity. Use when writing Svelte 5 components, migrating from Svelte 4, or troubleshooting Svelte 5 syntax. Covers $state, $derived, $effect, $props, $bindable, event handling, snippets, TypeScript integration, and common pitfalls.
+---
+
+# Svelte 5 Code Writer
+
+## Quick Reference
+
+Svelte 5 uses **runes** (functions starting with `$`) for explicit reactivity:
+
+```svelte
+
+
+
+```
+
+## Core Workflow
+
+1. **Choose the right rune:**
+ - Computing from state? → Use `$derived`
+ - Managing reactive values? → Use `$state`
+ - Side effects (DOM, network, etc.)? → Use `$effect`
+ - Component props? → Use `$props`
+
+2. **Apply the pattern** (see references below for details)
+
+3. **Add TypeScript types** for props and state
+
+## Key Patterns
+
+### State: $state
+
+```svelte
+
+```
+
+### Computed Values: $derived
+
+**Use `$derived` for values computed from other state** (90% of cases):
+
+```svelte
+
+```
+
+### Side Effects: $effect
+
+**Use `$effect` only for side effects, not derivations, try to avoid reassign state in it:**
+
+```svelte
+
+```
+
+### Props: $props
+
+```svelte
+
+```
+
+### Two-Way Binding: $bindable
+
+```svelte
+
+
+
+```
+
+## Event Handling
+
+**Events are properties** (not directives):
+
+```svelte
+
+
+
+
+ console.log(data)} />
+```
+
+## Snippets (Replacing Slots)
+
+```svelte
+
+
+
+
+
+ {#snippet header()}
+