Sakura-MCP-Server
Sakura-MCP-Server
Sakura-MCP-Server es una pasarela MCP remota segura para Life Dashboard, Home Assistant y DSH. El servicio se basa en el SDK oficial de MCP TypeScript v2 y ofrece un endpoint Streamable HTTP: https://tu-dominio/mcp.
Capacidades actuales
Doble autenticación: Bearer API Key y Authentik JWT (OIDC); ambos comparten el modelo de permisos por scope.
Metadatos de recurso protegido RFC 9728:
/.well-known/oauth-protected-resource/mcp.Transporte MCP sin estado por petición: la autenticación y los permisos de las herramientas nunca se reutilizan entre sesiones de cliente.
Las herramientas de negocio solo se registran si el Adapter correspondiente está configurado:
Home Assistant: consultar estado de entidades, controlar entidades en lista blanca, activar escenas en lista blanca;
API interna de Life Dashboard: leer resumen general de vida, resumen del espacio de trabajo DSH, enviar follow-up de DSH;
Registro de auditoría en JSON Lines.
Docker, Nginx, GitHub CI y creación automática de GitHub Release con tags
v*.
No se exponen al Agent el Token de Home Assistant, el Token de Authentik, la clave de emparejamiento de DSH ni el Shell del servidor.
Related MCP server: Home Assistant MCP Server
Inicio local
Requiere Node.js 22+. Si Windows PowerShell bloquea npm.ps1, usa npm.cmd.
cd D:\Sakura-MCP-Server
Copy-Item .env.example .env
# 编辑 .env:至少替换 PUBLIC_BASE_URL 和 MCP_API_KEYS 中的示例 secret
npm.cmd install
npm.cmd run check
npm.cmd run build
npm.cmd startVerifica el health check:
Invoke-RestMethod http://127.0.0.1:3000/healthFormato de API Key y Scope
MCP_API_KEYS es una lista de entradas separadas por comas, con el formato:
MCP_API_KEYS=cline-prod:一个至少32字节的随机密钥:life:read|home:read|dsh:summary,automation:另一个随机密钥:home:controlGenera una clave:
node -e "console.log(require('node:crypto').randomBytes(32).toString('base64url'))"Scopes disponibles: life:read, home:read, home:control, todo:read, todo:write, dsh:summary, dsh:details, dsh:followup.
El cliente debe rellenar en la configuración del servicio remoto MCP:
URL: https://mcp.example.com/mcp
Authorization: Bearer <分配给该 Agent 的密钥>Los campos de configuración de la UI varían según el Agent; siempre que admita Streamable HTTP MCP con cabecera de petición Authorization, puede usar la URL anterior. Crea una API Key distinta para cada Agent y concédele únicamente el scope necesario.
Authentik OIDC / OAuth
Con AUTHENTIK_ISSUER, AUTHENTIK_AUDIENCE y AUTHENTIK_JWKS_URI completamente configurados, el servicio verifica el emisor, la audiencia, la expiración y la firma del JWT; el claim estándar scope (o el claim especificado por AUTHENTIK_SCOPE_CLAIM) se mapea a los scopes MCP.
La implementación actual es un Resource Server MCP que acepta Bearer JWT emitidos por Authentik cuya audiencia está dedicada exclusivamente al servicio MCP. El cliente OAuth remoto también necesita crear un Provider OAuth 2.1 en Authentik, habilitando Authorization Code + PKCE, redirect URI exacta, mapeo de scopes y audiencia. No reenvíes el JWT de usuario MCP recibido a Home Assistant ni a Life Dashboard; los Adapters deben usar sus propias credenciales de servicio.
Configuración de los Adapters de negocio
Home Assistant
Configura HOME_ASSISTANT_URL y un Token dedicado con permisos mínimos. Las operaciones de escritura solo se registran/ejecutan si el recurso correspondiente está listado explícitamente en las variables de lista blanca:
HOME_ASSISTANT_CONTROLLABLE_ENTITIES=light.living_room,switch.coffee_machine
HOME_ASSISTANT_ALLOWED_SCENES=scene.good_nightLife Dashboard / DSH
El config.php actual es una pasarela OIDC para navegador; el MCP Server no puede hacerse pasar por el navegador para invocarla. Añade posteriormente en Life Dashboard una API de servicio interna dedicada, con un service token independiente y campos de retorno mínimos. Este proyecto reserva:
GET /internal/mcp/overview
GET /internal/mcp/dsh/workspaces
POST /internal/mcp/dsh/followupsLas herramientas correspondientes solo se registran tras configurar LIFE_DASHBOARD_INTERNAL_URL y LIFE_DASHBOARD_INTERNAL_TOKEN. DSH debe seguir manteniendo el emparejamiento único existente, HMAC, protección contra replay, autorización explícita de detalles, y los límites de 8.000 caracteres y cola de comandos de 120 segundos.
Despliegue con Docker y Nginx
En el servidor:
cp .env.example .env
# 填写真实配置,并 chmod 600 .env
mkdir -p data
docker compose up -d --buildEl contenedor por defecto solo se vincula a 127.0.0.1:3000 del propio servidor. Usa nginx-mcp.conf.example para configurar el proxy inverso HTTPS; es obligatorio conservar la cabecera de petición Authorization. En producción solo abre el puerto 443; no expongas el 3000 directamente.
Publicación
Al hacer push a main se ejecutan la comprobación de tipos, las pruebas unitarias y la construcción de Docker. Al crear y subir un tag semántico se ejecutan automáticamente las pruebas, npm pack y la creación de GitHub Release:
git tag v0.1.0
git push origin v0.1.0Limitaciones actuales y siguientes pasos
La primera versión ya completa el protocolo MCP, la autenticación, los permisos, el adaptador de HA y el esqueleto de despliegue. Cuando me proporciones el dominio del servidor, la información del Provider de Authentik y la API interna de Life Dashboard, los siguientes pasos serán completar las pruebas de interoperabilidad de autorización OAuth real en navegador, la API interna PHP de Life Dashboard, las herramientas de To Do/calendario y la validación del despliegue en producción.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables control and monitoring of Home Assistant smart home devices through MCP protocol. Automatically manages authentication tokens and provides simplified tools for device discovery, switch control, and light brightness adjustment.MIT
- FlicenseBqualityNot gradedmaintenanceEnables control and monitoring of Home Assistant smart home devices through MCP, allowing users to list entities, check device states, and call services to control lights, switches, sensors, and other connected devices.4
- AlicenseAqualityCmaintenanceMCP server for full Home Assistant control, enabling AI agents to manage dashboards, automations, files, apps, entities, and more via REST API, WebSocket, and SSH.66116MIT
- AlicenseNot gradedqualityAmaintenanceEnables secure, auditable access to Home Assistant through MCP, with a read-only observer profile and an operator profile for controlled mutations.MIT
Related MCP Connectors
An authenticated remote MCP server for user-owned devices and one-shot capability invocation.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Access Kernel's cloud-based browsers and app actions via MCP (remote HTTP + OAuth).
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Guyao146/Sakura-MCP-Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server