diff --git a/docs/_config.yml b/docs/_config.yml
index d488c9e8..b589e4ed 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -7,10 +7,6 @@ remote_theme: just-the-docs/just-the-docs
include:
- "_*"
-# Header links
-aux_links:
- GitHub: https://github.com/modelcontextprotocol/ruby-sdk
-
# Search
search_enabled: true
diff --git a/docs/_includes/head_custom.html b/docs/_includes/head_custom.html
new file mode 100644
index 00000000..701d0ae6
--- /dev/null
+++ b/docs/_includes/head_custom.html
@@ -0,0 +1,117 @@
+
diff --git a/docs/_includes/header_custom.html b/docs/_includes/header_custom.html
new file mode 100644
index 00000000..8b2c640f
--- /dev/null
+++ b/docs/_includes/header_custom.html
@@ -0,0 +1,8 @@
+
diff --git a/docs/_sass/custom/custom.scss b/docs/_sass/custom/custom.scss
new file mode 100644
index 00000000..5149a2a3
--- /dev/null
+++ b/docs/_sass/custom/custom.scss
@@ -0,0 +1,67 @@
+.docs-header-controls {
+ display: flex;
+ height: 3.75rem;
+ align-items: stretch;
+ justify-content: flex-end;
+ margin-left: auto;
+}
+
+@media (min-width: 50rem) {
+ .docs-header-controls {
+ height: 100%;
+ padding-right: 1rem;
+ }
+}
+
+.docs-icon-button.site-button {
+ width: 3.75rem;
+ justify-content: center;
+ padding: 0;
+ color: inherit;
+ background-color: transparent;
+ border: 0;
+ cursor: pointer;
+ font: inherit;
+ text-decoration: none;
+}
+
+.docs-icon {
+ display: block;
+ width: 1.25rem;
+ height: 1.25rem;
+ background-color: currentColor;
+ -webkit-mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-size: contain;
+ mask-position: center;
+ mask-repeat: no-repeat;
+ mask-size: contain;
+}
+
+.docs-icon--github {
+ -webkit-mask-image: url("/assets/images/icons/github.svg");
+ mask-image: url("/assets/images/icons/github.svg");
+}
+
+.docs-icon--theme {
+ -webkit-mask-image: url("/assets/images/icons/theme-system.svg");
+ mask-image: url("/assets/images/icons/theme-system.svg");
+}
+
+:root[data-theme-preference="light"] .docs-icon--theme {
+ -webkit-mask-image: url("/assets/images/icons/theme-light.svg");
+ mask-image: url("/assets/images/icons/theme-light.svg");
+}
+
+:root[data-theme-preference="dark"] .docs-icon--theme {
+ -webkit-mask-image: url("/assets/images/icons/theme-dark.svg");
+ mask-image: url("/assets/images/icons/theme-dark.svg");
+}
+
+:root[data-theme="dark"] {
+ color-scheme: dark;
+}
+
+:root[data-theme="light"] {
+ color-scheme: light;
+}
diff --git a/docs/assets/css/just-the-docs-dark.scss b/docs/assets/css/just-the-docs-dark.scss
new file mode 100644
index 00000000..ac92fb15
--- /dev/null
+++ b/docs/assets/css/just-the-docs-dark.scss
@@ -0,0 +1,3 @@
+---
+---
+{% include css/just-the-docs.scss.liquid color_scheme="dark" %}
diff --git a/docs/assets/css/just-the-docs-light.scss b/docs/assets/css/just-the-docs-light.scss
new file mode 100644
index 00000000..ac69688d
--- /dev/null
+++ b/docs/assets/css/just-the-docs-light.scss
@@ -0,0 +1,3 @@
+---
+---
+{% include css/just-the-docs.scss.liquid color_scheme="light" %}
diff --git a/docs/assets/images/icons/github.svg b/docs/assets/images/icons/github.svg
new file mode 100644
index 00000000..75db2347
--- /dev/null
+++ b/docs/assets/images/icons/github.svg
@@ -0,0 +1,4 @@
+
diff --git a/docs/assets/images/icons/theme-dark.svg b/docs/assets/images/icons/theme-dark.svg
new file mode 100644
index 00000000..0571e5c1
--- /dev/null
+++ b/docs/assets/images/icons/theme-dark.svg
@@ -0,0 +1,3 @@
+
diff --git a/docs/assets/images/icons/theme-light.svg b/docs/assets/images/icons/theme-light.svg
new file mode 100644
index 00000000..e31928f1
--- /dev/null
+++ b/docs/assets/images/icons/theme-light.svg
@@ -0,0 +1,11 @@
+
diff --git a/docs/assets/images/icons/theme-system.svg b/docs/assets/images/icons/theme-system.svg
new file mode 100644
index 00000000..77dd0d4e
--- /dev/null
+++ b/docs/assets/images/icons/theme-system.svg
@@ -0,0 +1,5 @@
+