Feature: homepage MCP

This commit is contained in:
shamoon
2026-06-12 11:17:33 -07:00
parent f670f46526
commit 0da0aaa7d3
6 changed files with 690 additions and 0 deletions
+92
View File
@@ -0,0 +1,92 @@
---
title: Model Context Protocol
---
Homepage includes an optional, lightweight [Model Context Protocol](https://modelcontextprotocol.io/) endpoint that can help AI assistants inspect, validate, and, if you explicitly allow it, update Homepage configuration files.
This endpoint is **disabled by default**. Do not expose it to an untrusted network unless you put Homepage behind authentication, TLS, and a reverse proxy that validates Host headers.
## Enable the MCP endpoint
Set the following environment variable and restart Homepage:
```yaml
HOMEPAGE_MCP_ENABLED: "true"
```
The endpoint is available at:
```txt
http://your-homepage-instance/api/mcp
```
## Authentication
If `HOMEPAGE_MCP_TOKEN` is set, MCP requests must include either of the following headers:
```txt
Authorization: Bearer your-token
```
or:
```txt
X-Homepage-MCP-Token: your-token
```
Example Docker Compose environment block:
```yaml
environment:
HOMEPAGE_MCP_ENABLED: "true"
HOMEPAGE_MCP_TOKEN: "change-me"
```
## Read-only by default
The MCP endpoint exposes tools for reading and validating supported Homepage config files. File writes are disabled unless you opt in with:
```yaml
HOMEPAGE_MCP_ALLOW_WRITE: "true"
```
When writes are enabled, YAML files are parsed before they are saved so a syntactically invalid YAML document is rejected instead of replacing the current file.
## Supported tools
| Tool | Description |
| ---------------------- | ----------------------------------------------------------------------------------------------------- |
| `list_config_files` | Lists supported config files, whether they exist, and links to the related docs. |
| `read_config_file` | Reads one supported config file from `HOMEPAGE_CONFIG_DIR`. |
| `validate_config_file` | Validates YAML from a file or supplied content and returns line and column details for syntax errors. |
| `write_config_file` | Replaces a supported config file when `HOMEPAGE_MCP_ALLOW_WRITE=true`. |
| `homepage_docs` | Returns focused Homepage documentation links for common setup topics. |
## Supported resources
The MCP server also exposes config files as MCP resources using this URI format:
```txt
homepage://config/services.yaml
```
Supported files are:
- `settings.yaml`
- `services.yaml`
- `bookmarks.yaml`
- `widgets.yaml`
- `docker.yaml`
- `kubernetes.yaml`
- `proxmox.yaml`
- `custom.css`
- `custom.js`
## Example request
```bash
curl -s http://localhost:3000/api/mcp \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer your-token' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```