Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6fa88be433 | ||
|
|
2892f24030 | ||
|
|
1e3442db14 | ||
|
|
f74154d96f | ||
|
|
36d83e0a0e | ||
|
|
33defac76c | ||
|
|
4306a6866f | ||
|
|
039f6890a7 | ||
|
|
4fff318ea9 | ||
|
|
ea6efd553d | ||
|
|
d45ef5c622 | ||
|
|
9358f83229 | ||
|
|
e49d31d725 | ||
|
|
13a27e1d00 |
70
.github/workflows/deploy-docs.yml
vendored
70
.github/workflows/deploy-docs.yml
vendored
@@ -1,64 +1,34 @@
|
|||||||
name: Deploy Documentation to GitHub Pages
|
name: Deploy Documentation
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
paths:
|
paths:
|
||||||
- 'docs/**'
|
- 'docs/**'
|
||||||
- '.github/workflows/deploy-docs.yml'
|
- 'mkdocs.yml'
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
pages: write
|
|
||||||
id-token: write
|
|
||||||
|
|
||||||
# Allow only one concurrent deployment
|
|
||||||
concurrency:
|
|
||||||
group: "pages"
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
deploy:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- uses: actions/checkout@v4
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Setup Ruby
|
|
||||||
uses: ruby/setup-ruby@v1
|
|
||||||
with:
|
with:
|
||||||
ruby-version: '3.2'
|
fetch-depth: 0
|
||||||
bundler-cache: true
|
- uses: actions/setup-python@v5
|
||||||
cache-version: 0
|
with:
|
||||||
|
python-version: '3.x'
|
||||||
- name: Setup Pages
|
cache: 'pip'
|
||||||
uses: actions/configure-pages@v4
|
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
cd docs
|
python -m pip install --upgrade pip
|
||||||
bundle install
|
pip install -r docs/requirements.txt
|
||||||
|
- name: Configure Git
|
||||||
- name: Build site
|
|
||||||
run: |
|
run: |
|
||||||
cd docs
|
git config --global user.name "github-actions[bot]"
|
||||||
bundle exec jekyll build
|
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||||
env:
|
- name: Build and Deploy
|
||||||
JEKYLL_ENV: production
|
run: |
|
||||||
|
mkdocs build --strict
|
||||||
- name: Upload artifact
|
mkdocs gh-deploy --force --clean
|
||||||
uses: actions/upload-pages-artifact@v3
|
|
||||||
with:
|
|
||||||
path: docs/_site
|
|
||||||
|
|
||||||
deploy:
|
|
||||||
needs: build
|
|
||||||
environment:
|
|
||||||
name: github-pages
|
|
||||||
url: ${{ steps.deployment.outputs.page_url }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Deploy to GitHub Pages
|
|
||||||
id: deployment
|
|
||||||
uses: actions/deploy-pages@v4
|
|
||||||
32
.github/workflows/docs-deploy.yml
vendored
32
.github/workflows/docs-deploy.yml
vendored
@@ -1,32 +0,0 @@
|
|||||||
name: Deploy Documentation
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- 'docs/**'
|
|
||||||
- 'mkdocs.yml'
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
deploy-docs:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Python
|
|
||||||
uses: actions/setup-python@v4
|
|
||||||
with:
|
|
||||||
python-version: 3.x
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
pip install mkdocs-material
|
|
||||||
pip install mkdocs
|
|
||||||
|
|
||||||
- name: Deploy documentation
|
|
||||||
run: mkdocs gh-deploy --force
|
|
||||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -31,7 +31,7 @@ wheels/
|
|||||||
venv/
|
venv/
|
||||||
ENV/
|
ENV/
|
||||||
env/
|
env/
|
||||||
|
.venv/
|
||||||
# Logs
|
# Logs
|
||||||
logs
|
logs
|
||||||
*.log
|
*.log
|
||||||
@@ -90,3 +90,5 @@ __pycache__/
|
|||||||
*$py.class
|
*$py.class
|
||||||
|
|
||||||
models/
|
models/
|
||||||
|
|
||||||
|
*.code-workspace
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
# MCP Server for Home Assistant 🏠🤖
|
# MCP Server for Home Assistant 🏠🤖
|
||||||
|
|
||||||
[](LICENSE)
|
[](LICENSE) [](https://bun.sh) [](https://www.typescriptlang.org) [](https://smithery.ai/server/@jango-blockchained/advanced-homeassistant-mcp)
|
||||||
[](https://bun.sh)
|
|
||||||
[](https://www.typescriptlang.org)
|
|
||||||
|
|
||||||
## Overview 🌐
|
## Overview 🌐
|
||||||
|
|
||||||
|
|||||||
@@ -232,3 +232,11 @@ The current API version is v1. Include the version in the URL:
|
|||||||
- [Core Functions](core.md) - Detailed endpoint documentation
|
- [Core Functions](core.md) - Detailed endpoint documentation
|
||||||
- [Architecture Overview](../architecture.md) - System design details
|
- [Architecture Overview](../architecture.md) - System design details
|
||||||
- [Troubleshooting](../troubleshooting.md) - Common issues and solutions
|
- [Troubleshooting](../troubleshooting.md) - Common issues and solutions
|
||||||
|
|
||||||
|
# API Reference
|
||||||
|
|
||||||
|
The Advanced Home Assistant MCP provides several APIs for integration and automation:
|
||||||
|
|
||||||
|
- [Core API](core.md) - Primary interface for system control
|
||||||
|
- [SSE API](sse.md) - Server-Sent Events for real-time updates
|
||||||
|
- [Core Functions](core.md) - Essential system functions
|
||||||
141
docs/deployment.md
Normal file
141
docs/deployment.md
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
# Deployment Guide
|
||||||
|
|
||||||
|
This documentation is automatically deployed to GitHub Pages using GitHub Actions. Here's how it works and how to manage deployments.
|
||||||
|
|
||||||
|
## Automatic Deployment
|
||||||
|
|
||||||
|
The documentation is automatically deployed when changes are pushed to the `main` or `master` branch. The deployment process:
|
||||||
|
|
||||||
|
1. Triggers on push to main/master
|
||||||
|
2. Sets up Python environment
|
||||||
|
3. Installs required dependencies
|
||||||
|
4. Builds the documentation
|
||||||
|
5. Deploys to the `gh-pages` branch
|
||||||
|
|
||||||
|
### GitHub Actions Workflow
|
||||||
|
|
||||||
|
The deployment is handled by the workflow in `.github/workflows/deploy-docs.yml`. This is the single source of truth for documentation deployment:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
name: Deploy MkDocs
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- master
|
||||||
|
workflow_dispatch: # Allow manual trigger
|
||||||
|
```
|
||||||
|
|
||||||
|
## Manual Deployment
|
||||||
|
|
||||||
|
If needed, you can deploy manually using:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Create a virtual environment
|
||||||
|
python -m venv venv
|
||||||
|
|
||||||
|
# Activate the virtual environment
|
||||||
|
source venv/bin/activate
|
||||||
|
|
||||||
|
# Install dependencies
|
||||||
|
pip install -r docs/requirements.txt
|
||||||
|
|
||||||
|
# Build the documentation
|
||||||
|
mkdocs build
|
||||||
|
|
||||||
|
# Deploy to GitHub Pages
|
||||||
|
mkdocs gh-deploy --force
|
||||||
|
```
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
### 1. Documentation Updates
|
||||||
|
- Test locally before pushing: `mkdocs serve`
|
||||||
|
- Verify all links work
|
||||||
|
- Ensure images are optimized
|
||||||
|
- Check mobile responsiveness
|
||||||
|
|
||||||
|
### 2. Version Control
|
||||||
|
- Keep documentation in sync with code versions
|
||||||
|
- Use meaningful commit messages
|
||||||
|
- Tag important documentation versions
|
||||||
|
|
||||||
|
### 3. Content Guidelines
|
||||||
|
- Use consistent formatting
|
||||||
|
- Keep navigation structure logical
|
||||||
|
- Include examples where appropriate
|
||||||
|
- Maintain up-to-date screenshots
|
||||||
|
|
||||||
|
### 4. Maintenance
|
||||||
|
- Regularly review and update content
|
||||||
|
- Check for broken links
|
||||||
|
- Update dependencies
|
||||||
|
- Monitor GitHub Actions logs
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Common Issues
|
||||||
|
|
||||||
|
1. **Failed Deployments**
|
||||||
|
- Check GitHub Actions logs
|
||||||
|
- Verify dependencies are up to date
|
||||||
|
- Ensure all required files exist
|
||||||
|
|
||||||
|
2. **Broken Links**
|
||||||
|
- Run `mkdocs build --strict`
|
||||||
|
- Use relative paths in markdown
|
||||||
|
- Check case sensitivity
|
||||||
|
|
||||||
|
3. **Style Issues**
|
||||||
|
- Verify theme configuration
|
||||||
|
- Check CSS customizations
|
||||||
|
- Test on multiple browsers
|
||||||
|
|
||||||
|
## Configuration Files
|
||||||
|
|
||||||
|
### requirements.txt
|
||||||
|
|
||||||
|
Create a requirements file for documentation dependencies:
|
||||||
|
|
||||||
|
```txt
|
||||||
|
mkdocs-material
|
||||||
|
mkdocs-minify-plugin
|
||||||
|
mkdocs-git-revision-date-plugin
|
||||||
|
mkdocs-mkdocstrings
|
||||||
|
mkdocs-social-plugin
|
||||||
|
mkdocs-redirects
|
||||||
|
```
|
||||||
|
|
||||||
|
## Monitoring
|
||||||
|
|
||||||
|
- Check [GitHub Pages settings](https://github.com/jango-blockchained/advanced-homeassistant-mcp/settings/pages)
|
||||||
|
- Monitor build status in Actions tab
|
||||||
|
- Verify site accessibility
|
||||||
|
|
||||||
|
## Workflow Features
|
||||||
|
|
||||||
|
### Caching
|
||||||
|
The workflow implements caching for Python dependencies to speed up deployments:
|
||||||
|
- Pip cache for Python packages
|
||||||
|
- MkDocs dependencies cache
|
||||||
|
|
||||||
|
### Deployment Checks
|
||||||
|
Several checks are performed during deployment:
|
||||||
|
1. Link validation with `mkdocs build --strict`
|
||||||
|
2. Build verification
|
||||||
|
3. Post-deployment site accessibility check
|
||||||
|
|
||||||
|
### Manual Triggers
|
||||||
|
You can manually trigger deployments using the "workflow_dispatch" event in GitHub Actions.
|
||||||
|
|
||||||
|
## Cleanup
|
||||||
|
|
||||||
|
To clean up duplicate workflow files, run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Make the script executable
|
||||||
|
chmod +x scripts/cleanup-workflows.sh
|
||||||
|
|
||||||
|
# Run the cleanup script
|
||||||
|
./scripts/cleanup-workflows.sh
|
||||||
|
```
|
||||||
8
docs/getting-started/index.md
Normal file
8
docs/getting-started/index.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# Getting Started
|
||||||
|
|
||||||
|
Welcome to the Advanced Home Assistant MCP getting started guide. Follow these steps to begin:
|
||||||
|
|
||||||
|
1. [Installation](installation.md)
|
||||||
|
2. [Configuration](configuration.md)
|
||||||
|
3. [Docker Setup](docker.md)
|
||||||
|
4. [Quick Start](quickstart.md)
|
||||||
@@ -4,9 +4,18 @@ title: Home
|
|||||||
nav_order: 1
|
nav_order: 1
|
||||||
---
|
---
|
||||||
|
|
||||||
# 🏠 MCP Server for Home Assistant
|
# Advanced Home Assistant MCP
|
||||||
|
|
||||||
Welcome to the Model Context Protocol (MCP) Server documentation! This guide will help you get started with integrating a lightweight automation tool with your Home Assistant setup.
|
Welcome to the Advanced Home Assistant Master Control Program documentation.
|
||||||
|
|
||||||
|
This documentation provides comprehensive information about setting up, configuring, and using the Advanced Home Assistant MCP system.
|
||||||
|
|
||||||
|
## Quick Links
|
||||||
|
|
||||||
|
- [Getting Started](getting-started/index.md)
|
||||||
|
- [API Reference](api/index.md)
|
||||||
|
- [Configuration Guide](getting-started/configuration.md)
|
||||||
|
- [Docker Setup](getting-started/docker.md)
|
||||||
|
|
||||||
## What is MCP Server?
|
## What is MCP Server?
|
||||||
|
|
||||||
|
|||||||
62
docs/javascripts/extra.js
Normal file
62
docs/javascripts/extra.js
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
// Dark mode handling
|
||||||
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
|
// Check for saved dark mode preference
|
||||||
|
const darkMode = localStorage.getItem('darkMode');
|
||||||
|
if (darkMode === 'true') {
|
||||||
|
document.body.classList.add('dark-mode');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Smooth scrolling for anchor links
|
||||||
|
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||||
|
anchor.addEventListener('click', function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
document.querySelector(this.getAttribute('href')).scrollIntoView({
|
||||||
|
behavior: 'smooth'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Add copy button to code blocks
|
||||||
|
document.querySelectorAll('pre code').forEach((block) => {
|
||||||
|
const button = document.createElement('button');
|
||||||
|
button.className = 'copy-button';
|
||||||
|
button.textContent = 'Copy';
|
||||||
|
|
||||||
|
button.addEventListener('click', async () => {
|
||||||
|
await navigator.clipboard.writeText(block.textContent);
|
||||||
|
button.textContent = 'Copied!';
|
||||||
|
setTimeout(() => {
|
||||||
|
button.textContent = 'Copy';
|
||||||
|
}, 2000);
|
||||||
|
});
|
||||||
|
|
||||||
|
const pre = block.parentNode;
|
||||||
|
pre.insertBefore(button, block);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Add version selector handling
|
||||||
|
const versionSelector = document.querySelector('.version-selector');
|
||||||
|
if (versionSelector) {
|
||||||
|
versionSelector.addEventListener('change', (e) => {
|
||||||
|
const version = e.target.value;
|
||||||
|
window.location.href = `/${version}/`;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add feedback handling
|
||||||
|
document.querySelectorAll('.feedback-button').forEach(button => {
|
||||||
|
button.addEventListener('click', function () {
|
||||||
|
const feedback = this.getAttribute('data-feedback');
|
||||||
|
// Send feedback to analytics
|
||||||
|
if (typeof gtag !== 'undefined') {
|
||||||
|
gtag('event', 'feedback', {
|
||||||
|
'event_category': 'Documentation',
|
||||||
|
'event_label': feedback
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// Show thank you message
|
||||||
|
this.textContent = 'Thank you!';
|
||||||
|
this.disabled = true;
|
||||||
|
});
|
||||||
|
});
|
||||||
12
docs/javascripts/mathjax.js
Normal file
12
docs/javascripts/mathjax.js
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
window.MathJax = {
|
||||||
|
tex: {
|
||||||
|
inlineMath: [["\\(", "\\)"]],
|
||||||
|
displayMath: [["\\[", "\\]"]],
|
||||||
|
processEscapes: true,
|
||||||
|
processEnvironments: true
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
ignoreHtmlClass: ".*|",
|
||||||
|
processHtmlClass: "arithmatex"
|
||||||
|
}
|
||||||
|
};
|
||||||
45
docs/requirements.txt
Normal file
45
docs/requirements.txt
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
# Core
|
||||||
|
mkdocs>=1.5.3
|
||||||
|
mkdocs-material>=9.5.3
|
||||||
|
|
||||||
|
# Enhanced Functionality
|
||||||
|
mkdocs-minify-plugin>=0.7.1
|
||||||
|
mkdocs-git-revision-date-localized-plugin>=1.2.1
|
||||||
|
mkdocs-glightbox>=0.3.4
|
||||||
|
mkdocs-optimize>=0.1.1
|
||||||
|
mkdocs-git-authors-plugin>=0.7.2
|
||||||
|
mkdocs-git-committers-plugin>=0.2.3
|
||||||
|
mkdocs-static-i18n>=1.2.0
|
||||||
|
mkdocs-awesome-pages-plugin>=2.9.2
|
||||||
|
mkdocs-redirects>=1.2.1
|
||||||
|
mkdocs-include-markdown-plugin>=6.0.4
|
||||||
|
mkdocs-macros-plugin>=1.0.4
|
||||||
|
mkdocs-meta-descriptions-plugin>=3.0.0
|
||||||
|
mkdocs-print-site-plugin>=2.3.6
|
||||||
|
mkdocs-pdf-export-plugin>=0.5.10
|
||||||
|
mkdocs-with-pdf>=0.9.3
|
||||||
|
|
||||||
|
# Code Documentation
|
||||||
|
mkdocstrings>=0.24.0
|
||||||
|
mkdocstrings-python>=1.7.5
|
||||||
|
|
||||||
|
# Markdown Extensions
|
||||||
|
pymdown-extensions>=10.5
|
||||||
|
markdown>=3.5.1
|
||||||
|
mdx_truly_sane_lists>=1.3
|
||||||
|
pygments>=2.17.2
|
||||||
|
|
||||||
|
# Math Support
|
||||||
|
python-markdown-math>=0.8
|
||||||
|
|
||||||
|
# Diagrams
|
||||||
|
plantuml-markdown>=3.9.2
|
||||||
|
mkdocs-mermaid2-plugin>=1.1.1
|
||||||
|
|
||||||
|
# Search Enhancements
|
||||||
|
mkdocs-material[imaging]>=9.5.3
|
||||||
|
pillow>=10.2.0
|
||||||
|
cairosvg>=2.7.1
|
||||||
|
|
||||||
|
# Development Tools
|
||||||
|
mike>=2.0.0 # For version management
|
||||||
164
docs/stylesheets/extra.css
Normal file
164
docs/stylesheets/extra.css
Normal file
@@ -0,0 +1,164 @@
|
|||||||
|
/* Modern Dark Theme Enhancements */
|
||||||
|
[data-md-color-scheme="slate"] {
|
||||||
|
--md-default-bg-color: #1a1b26;
|
||||||
|
--md-default-fg-color: #a9b1d6;
|
||||||
|
--md-default-fg-color--light: #a9b1d6;
|
||||||
|
--md-default-fg-color--lighter: #787c99;
|
||||||
|
--md-default-fg-color--lightest: #4e5173;
|
||||||
|
--md-primary-fg-color: #7aa2f7;
|
||||||
|
--md-primary-fg-color--light: #7dcfff;
|
||||||
|
--md-primary-fg-color--dark: #2ac3de;
|
||||||
|
--md-accent-fg-color: #bb9af7;
|
||||||
|
--md-accent-fg-color--transparent: #bb9af722;
|
||||||
|
--md-accent-bg-color: #1a1b26;
|
||||||
|
--md-accent-bg-color--light: #24283b;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Code Blocks */
|
||||||
|
.highlight pre {
|
||||||
|
background-color: #24283b !important;
|
||||||
|
border-radius: 6px;
|
||||||
|
padding: 1em;
|
||||||
|
margin: 1em 0;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight code {
|
||||||
|
font-family: 'Roboto Mono', monospace;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Copy Button */
|
||||||
|
.copy-button {
|
||||||
|
position: absolute;
|
||||||
|
right: 0.5em;
|
||||||
|
top: 0.5em;
|
||||||
|
padding: 0.4em 0.8em;
|
||||||
|
background-color: var(--md-accent-bg-color--light);
|
||||||
|
border: 1px solid var(--md-accent-fg-color--transparent);
|
||||||
|
border-radius: 4px;
|
||||||
|
color: var(--md-default-fg-color);
|
||||||
|
font-size: 0.8em;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.2s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.copy-button:hover {
|
||||||
|
background-color: var(--md-accent-fg-color--transparent);
|
||||||
|
border-color: var(--md-accent-fg-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Navigation Enhancements */
|
||||||
|
.md-nav {
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-nav__link {
|
||||||
|
padding: 0.4rem 0;
|
||||||
|
transition: color 0.2s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-nav__link:hover {
|
||||||
|
color: var(--md-primary-fg-color) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tabs */
|
||||||
|
.md-tabs__link {
|
||||||
|
opacity: 0.8;
|
||||||
|
transition: opacity 0.2s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-tabs__link:hover {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-tabs__link--active {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Admonitions */
|
||||||
|
.md-typeset .admonition,
|
||||||
|
.md-typeset details {
|
||||||
|
border-width: 0;
|
||||||
|
border-left-width: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tables */
|
||||||
|
.md-typeset table:not([class]) {
|
||||||
|
border-radius: 4px;
|
||||||
|
box-shadow: 0 2px 4px var(--md-accent-fg-color--transparent);
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-typeset table:not([class]) th {
|
||||||
|
background-color: var(--md-accent-bg-color--light);
|
||||||
|
border-bottom: 2px solid var(--md-accent-fg-color--transparent);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Search */
|
||||||
|
.md-search__form {
|
||||||
|
background-color: var(--md-accent-bg-color--light);
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Feedback Buttons */
|
||||||
|
.feedback-button {
|
||||||
|
padding: 0.5em 1em;
|
||||||
|
margin: 0 0.5em;
|
||||||
|
border-radius: 4px;
|
||||||
|
background-color: var(--md-accent-bg-color--light);
|
||||||
|
border: 1px solid var(--md-accent-fg-color--transparent);
|
||||||
|
color: var(--md-default-fg-color);
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.2s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.feedback-button:hover {
|
||||||
|
background-color: var(--md-accent-fg-color--transparent);
|
||||||
|
border-color: var(--md-accent-fg-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.feedback-button:disabled {
|
||||||
|
opacity: 0.5;
|
||||||
|
cursor: not-allowed;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Version Selector */
|
||||||
|
.version-selector {
|
||||||
|
padding: 0.5em;
|
||||||
|
border-radius: 4px;
|
||||||
|
background-color: var(--md-accent-bg-color--light);
|
||||||
|
border: 1px solid var(--md-accent-fg-color--transparent);
|
||||||
|
color: var(--md-default-fg-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Scrollbar */
|
||||||
|
::-webkit-scrollbar {
|
||||||
|
width: 8px;
|
||||||
|
height: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar-track {
|
||||||
|
background: var(--md-accent-bg-color--light);
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar-thumb {
|
||||||
|
background: var(--md-accent-fg-color--transparent);
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar-thumb:hover {
|
||||||
|
background: var(--md-accent-fg-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Print Styles */
|
||||||
|
@media print {
|
||||||
|
.md-typeset a {
|
||||||
|
color: var(--md-default-fg-color) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content__inner {
|
||||||
|
margin: 0;
|
||||||
|
padding: 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
271
mkdocs.yml
271
mkdocs.yml
@@ -1,98 +1,232 @@
|
|||||||
site_name: Home Assistant MCP
|
site_name: MCP Server for Home Assistant
|
||||||
site_description: A bridge between Home Assistant and Language Learning Models
|
site_url: https://jango-blockchained.github.io/advanced-homeassistant-mcp
|
||||||
site_url: https://jango-blockchained.github.io/advanced-homeassistant-mcp/
|
|
||||||
repo_url: https://github.com/jango-blockchained/advanced-homeassistant-mcp
|
repo_url: https://github.com/jango-blockchained/advanced-homeassistant-mcp
|
||||||
repo_name: jango-blockchained/advanced-homeassistant-mcp
|
site_description: Home Assistant MCP Server Documentation
|
||||||
|
# Add this to handle GitHub Pages serving from a subdirectory
|
||||||
|
site_dir: site/advanced-homeassistant-mcp
|
||||||
|
|
||||||
theme:
|
theme:
|
||||||
name: material
|
name: material
|
||||||
logo: assets/images/logo.png
|
logo: assets/images/logo.png
|
||||||
favicon: assets/images/favicon.ico
|
favicon: assets/images/favicon.ico
|
||||||
palette:
|
|
||||||
- media: "(prefers-color-scheme: light)"
|
# Modern Features
|
||||||
scheme: default
|
|
||||||
primary: indigo
|
|
||||||
accent: indigo
|
|
||||||
toggle:
|
|
||||||
icon: material/brightness-7
|
|
||||||
name: Switch to dark mode
|
|
||||||
- media: "(prefers-color-scheme: dark)"
|
|
||||||
scheme: slate
|
|
||||||
primary: indigo
|
|
||||||
accent: indigo
|
|
||||||
toggle:
|
|
||||||
icon: material/brightness-4
|
|
||||||
name: Switch to light mode
|
|
||||||
features:
|
features:
|
||||||
- navigation.instant
|
# Navigation Enhancements
|
||||||
- navigation.tracking
|
- navigation.tabs
|
||||||
|
- navigation.tabs.sticky
|
||||||
|
- navigation.indexes
|
||||||
- navigation.sections
|
- navigation.sections
|
||||||
- navigation.expand
|
- navigation.expand
|
||||||
- navigation.top
|
- navigation.path
|
||||||
|
- navigation.footer
|
||||||
|
- navigation.prune
|
||||||
|
- navigation.tracking
|
||||||
|
- navigation.instant
|
||||||
|
|
||||||
|
# UI Elements
|
||||||
|
- header.autohide
|
||||||
|
- toc.integrate
|
||||||
|
- toc.follow
|
||||||
|
- announce.dismiss
|
||||||
|
|
||||||
|
# Search Features
|
||||||
- search.suggest
|
- search.suggest
|
||||||
- search.highlight
|
- search.highlight
|
||||||
|
- search.share
|
||||||
|
|
||||||
|
# Code Features
|
||||||
|
- content.code.annotate
|
||||||
- content.code.copy
|
- content.code.copy
|
||||||
|
- content.code.select
|
||||||
|
- content.tabs.link
|
||||||
|
- content.tooltips
|
||||||
|
|
||||||
|
# Theme Configuration
|
||||||
|
palette:
|
||||||
|
# Dark mode as primary
|
||||||
|
- media: "(prefers-color-scheme: dark)"
|
||||||
|
scheme: slate
|
||||||
|
primary: deep-purple
|
||||||
|
accent: purple
|
||||||
|
toggle:
|
||||||
|
icon: material/weather-sunny
|
||||||
|
name: Switch to light mode
|
||||||
|
# Light mode as secondary
|
||||||
|
- media: "(prefers-color-scheme: light)"
|
||||||
|
scheme: default
|
||||||
|
primary: deep-purple
|
||||||
|
accent: purple
|
||||||
|
toggle:
|
||||||
|
icon: material/weather-night
|
||||||
|
name: Switch to dark mode
|
||||||
|
|
||||||
|
font:
|
||||||
|
text: Roboto
|
||||||
|
code: Roboto Mono
|
||||||
|
|
||||||
|
icon:
|
||||||
|
repo: fontawesome/brands/github
|
||||||
|
edit: material/pencil
|
||||||
|
view: material/eye
|
||||||
|
|
||||||
markdown_extensions:
|
markdown_extensions:
|
||||||
- admonition
|
# Modern Code Highlighting
|
||||||
- attr_list
|
|
||||||
- def_list
|
|
||||||
- footnotes
|
|
||||||
- meta
|
|
||||||
- toc:
|
|
||||||
permalink: true
|
|
||||||
- pymdownx.arithmatex:
|
|
||||||
generic: true
|
|
||||||
- pymdownx.betterem:
|
|
||||||
smart_enable: all
|
|
||||||
- pymdownx.caret
|
|
||||||
- pymdownx.details
|
|
||||||
- pymdownx.emoji:
|
|
||||||
emoji_index: !!python/name:material.extensions.emoji.twemoji
|
|
||||||
emoji_generator: !!python/name:material.extensions.emoji.to_svg
|
|
||||||
- pymdownx.highlight:
|
- pymdownx.highlight:
|
||||||
anchor_linenums: true
|
anchor_linenums: true
|
||||||
|
line_spans: __span
|
||||||
|
pygments_lang_class: true
|
||||||
- pymdownx.inlinehilite
|
- pymdownx.inlinehilite
|
||||||
|
- pymdownx.snippets
|
||||||
|
|
||||||
|
# Advanced Formatting
|
||||||
|
- pymdownx.critic
|
||||||
|
- pymdownx.caret
|
||||||
- pymdownx.keys
|
- pymdownx.keys
|
||||||
- pymdownx.magiclink
|
|
||||||
- pymdownx.mark
|
- pymdownx.mark
|
||||||
- pymdownx.smartsymbols
|
- pymdownx.tilde
|
||||||
|
|
||||||
|
# Interactive Elements
|
||||||
|
- pymdownx.details
|
||||||
|
- pymdownx.tabbed:
|
||||||
|
alternate_style: true
|
||||||
|
- pymdownx.tasklist:
|
||||||
|
custom_checkbox: true
|
||||||
|
|
||||||
|
# Diagrams & Formatting
|
||||||
- pymdownx.superfences:
|
- pymdownx.superfences:
|
||||||
custom_fences:
|
custom_fences:
|
||||||
- name: mermaid
|
- name: mermaid
|
||||||
class: mermaid
|
class: mermaid
|
||||||
format: !!python/name:pymdownx.superfences.fence_code_format
|
format: !!python/name:pymdownx.superfences.fence_code_format
|
||||||
- pymdownx.tabbed:
|
- pymdownx.arithmatex:
|
||||||
alternate_style: true
|
generic: true
|
||||||
- pymdownx.tasklist:
|
|
||||||
custom_checkbox: true
|
# Additional Extensions
|
||||||
- pymdownx.tilde
|
- admonition
|
||||||
|
- attr_list
|
||||||
|
- md_in_html
|
||||||
|
- pymdownx.emoji:
|
||||||
|
emoji_index: !!python/name:materialx.emoji.twemoji
|
||||||
|
emoji_generator: !!python/name:materialx.emoji.to_svg
|
||||||
|
- footnotes
|
||||||
|
- tables
|
||||||
|
- def_list
|
||||||
|
- abbr
|
||||||
|
|
||||||
plugins:
|
plugins:
|
||||||
- search
|
# Core Plugins
|
||||||
- git-revision-date-localized:
|
- search:
|
||||||
type: date
|
separator: '[\s\-,:!=\[\]()"/]+|(?!\b)(?=[A-Z][a-z])|\.(?!\d)|&[lg]t;'
|
||||||
- mkdocstrings:
|
- minify:
|
||||||
default_handler: python
|
minify_html: true
|
||||||
handlers:
|
- mkdocstrings
|
||||||
python:
|
|
||||||
options:
|
|
||||||
show_source: true
|
|
||||||
|
|
||||||
|
# Advanced Features
|
||||||
|
- social:
|
||||||
|
cards: true
|
||||||
|
cards_color:
|
||||||
|
fill: "#1e1e2e"
|
||||||
|
text: "#cdd6f4"
|
||||||
|
- tags
|
||||||
|
- offline
|
||||||
|
- optimize
|
||||||
|
|
||||||
|
# Version Management
|
||||||
|
- git-revision-date-localized:
|
||||||
|
enable_creation_date: true
|
||||||
|
type: date
|
||||||
|
|
||||||
|
# Analytics
|
||||||
|
- analytics:
|
||||||
|
provider: google
|
||||||
|
feedback:
|
||||||
|
title: Was this page helpful?
|
||||||
|
ratings:
|
||||||
|
- icon: material/emoticon-happy-outline
|
||||||
|
name: This page was helpful
|
||||||
|
data: 1
|
||||||
|
note: >-
|
||||||
|
Thanks for your feedback!
|
||||||
|
- icon: material/emoticon-sad-outline
|
||||||
|
name: This page could be improved
|
||||||
|
data: 0
|
||||||
|
note: >-
|
||||||
|
Thanks for your feedback!
|
||||||
|
|
||||||
|
extra:
|
||||||
|
# Consent Management
|
||||||
|
consent:
|
||||||
|
title: Cookie consent
|
||||||
|
description: >-
|
||||||
|
We use cookies to recognize your repeated visits and preferences, as well
|
||||||
|
as to measure the effectiveness of our documentation and whether users
|
||||||
|
find what they're searching for. With your consent, you're helping us to
|
||||||
|
make our documentation better.
|
||||||
|
actions:
|
||||||
|
- accept
|
||||||
|
- reject
|
||||||
|
- manage
|
||||||
|
|
||||||
|
# Version Management
|
||||||
|
version:
|
||||||
|
provider: mike
|
||||||
|
default: latest
|
||||||
|
|
||||||
|
# Social Links
|
||||||
|
social:
|
||||||
|
- icon: fontawesome/brands/github
|
||||||
|
link: https://github.com/jango-blockchained/homeassistant-mcp
|
||||||
|
- icon: fontawesome/brands/docker
|
||||||
|
link: https://hub.docker.com/r/jangoblockchained/homeassistant-mcp
|
||||||
|
|
||||||
|
# Status Indicators
|
||||||
|
status:
|
||||||
|
new: Recently added
|
||||||
|
deprecated: Deprecated
|
||||||
|
beta: Beta
|
||||||
|
|
||||||
|
# Analytics
|
||||||
|
analytics:
|
||||||
|
provider: google
|
||||||
|
property: !ENV GOOGLE_ANALYTICS_KEY
|
||||||
|
feedback:
|
||||||
|
title: Was this page helpful?
|
||||||
|
ratings:
|
||||||
|
- icon: material/emoticon-happy-outline
|
||||||
|
name: This page was helpful
|
||||||
|
data: 1
|
||||||
|
- icon: material/emoticon-sad-outline
|
||||||
|
name: This page could be improved
|
||||||
|
data: 0
|
||||||
|
|
||||||
|
extra_css:
|
||||||
|
- stylesheets/extra.css
|
||||||
|
|
||||||
|
extra_javascript:
|
||||||
|
- javascripts/mathjax.js
|
||||||
|
- https://polyfill.io/v3/polyfill.min.js?features=es6
|
||||||
|
- https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js
|
||||||
|
- javascripts/extra.js
|
||||||
|
|
||||||
|
copyright: Copyright © 2025 jango-blockchained
|
||||||
|
|
||||||
|
# Keep existing nav structure
|
||||||
nav:
|
nav:
|
||||||
- Home: index.md
|
- Home: index.md
|
||||||
- Getting Started:
|
- Getting Started:
|
||||||
- Overview: getting-started.md
|
- Overview: getting-started/index.md
|
||||||
- Installation: getting-started/installation.md
|
- Installation: getting-started/installation.md
|
||||||
|
- Quick Start: getting-started/quickstart.md
|
||||||
- Configuration: getting-started/configuration.md
|
- Configuration: getting-started/configuration.md
|
||||||
- Docker Setup: getting-started/docker.md
|
- Docker Setup: getting-started/docker.md
|
||||||
- Quick Start: getting-started/quickstart.md
|
|
||||||
- Usage: usage.md
|
|
||||||
- API Reference:
|
- API Reference:
|
||||||
- Overview: api/index.md
|
- Overview: api/index.md
|
||||||
- Core API: api.md
|
- Core API: api/core.md
|
||||||
- SSE API: api/sse.md
|
- SSE API: api/sse.md
|
||||||
- Core Functions: api/core.md
|
- Usage: usage.md
|
||||||
|
- Configuration:
|
||||||
|
- System Configuration: configuration.md
|
||||||
- Tools:
|
- Tools:
|
||||||
- Overview: tools/tools.md
|
- Overview: tools/tools.md
|
||||||
- Device Management:
|
- Device Management:
|
||||||
@@ -117,25 +251,12 @@ nav:
|
|||||||
- Best Practices: development/best-practices.md
|
- Best Practices: development/best-practices.md
|
||||||
- Interfaces: development/interfaces.md
|
- Interfaces: development/interfaces.md
|
||||||
- Tool Development: development/tools.md
|
- Tool Development: development/tools.md
|
||||||
- Testing Guide: testing.md
|
- Testing Guide: development/test-migration-guide.md
|
||||||
|
- Testing: testing.md
|
||||||
|
- Deployment Guide: deployment.md
|
||||||
- Architecture: architecture.md
|
- Architecture: architecture.md
|
||||||
- Contributing: contributing.md
|
- Contributing: contributing.md
|
||||||
- Troubleshooting: troubleshooting.md
|
- Troubleshooting: troubleshooting.md
|
||||||
- Examples:
|
- Examples:
|
||||||
- Overview: examples/index.md
|
- Overview: examples/index.md
|
||||||
- Roadmap: roadmap.md
|
- Roadmap: roadmap.md
|
||||||
|
|
||||||
extra:
|
|
||||||
social:
|
|
||||||
- icon: fontawesome/brands/github
|
|
||||||
link: https://github.com/jango-blockchained/homeassistant-mcp
|
|
||||||
- icon: fontawesome/brands/docker
|
|
||||||
link: https://hub.docker.com/r/jangoblockchained/homeassistant-mcp
|
|
||||||
analytics:
|
|
||||||
provider: google
|
|
||||||
property: !ENV GOOGLE_ANALYTICS_KEY
|
|
||||||
|
|
||||||
extra_css:
|
|
||||||
- assets/stylesheets/extra.css
|
|
||||||
|
|
||||||
copyright: Copyright © 2024 Jango Blockchained
|
|
||||||
Reference in New Issue
Block a user