Homelab Asset DB MCP Server

Homelab Asset DB MCP Server

Enables LLMs to query a Markdown-based homelab asset database for device information, including searching by name, VLAN, or category.

Category
访问服务器

README

homelab-asset-db-mcp

Query a Markdown-based homelab asset database via Model Context Protocol.

A tiny FastMCP stdio server that turns a plain-Markdown inventory of your homelab (servers, LXC containers, Raspberry Pis, smart-home gadgets, …) into structured MCP tools. An LLM connected via MCP can then answer "where does pve01 run", "which IP has the printer" or "what's on the smart-home VLAN" directly — no reading and grepping the Markdown file on every query.

Read-only, no hosting, no auth, no API credits. The data lives in a file you own; this repo only carries the parser + a fictional sample.

Why

Most homelab inventories live as a Markdown table in someone's notes. That's great for humans and terrible for an agent, which has to fetch the whole file and pattern-match every time. This server parses the tables once per call and exposes four precise lookups instead.

Sibling to iobroker-mcp, paperless-bulk-mcp and nanobanana-render-mcp — same FastMCP scaffolding, different domain.

Tools

Tool Argument Purpose
find_device(query) free-text string full-text search across all fields
get_device(name_or_hostname) exact name/hostname a single device
list_devices_by_vlan(vlan) VLAN name (substring) all devices on a VLAN
list_devices_by_category(cat) Server/LXC/RasPi/Office/SmartHome/Entertainment/Network/Unknown all devices in a section

All tools return JSON. Fields with no value are omitted from the response.

Setup

git clone https://github.com/McCavity/homelab-asset-db-mcp.git
cd homelab-asset-db-mcp
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Out of the box the server reads the bundled asset-db.sample.md (fictional data), so it runs immediately.

Configuration

Point the server at your own database with the ASSET_DB_PATH environment variable. Your real file stays outside this repo (it's gitignored):

export ASSET_DB_PATH=~/notes/homelab/asset-db.md

~ is expanded. If ASSET_DB_PATH is unset, the bundled sample is used. A .env file next to server.py is also read (see .env.example); values already in the environment win, so an MCP host's env config takes precedence.

Register with Claude Code

claude mcp add --transport stdio --scope user homelab-asset-db \
  --env ASSET_DB_PATH=/absolute/path/to/your/asset-db.md \
  -- /absolute/path/to/homelab-asset-db-mcp/venv/bin/python \
     /absolute/path/to/homelab-asset-db-mcp/server.py

Then /mcp lists the server and the four tools become callable in any session.

Data format

The database is Markdown. Each ## heading starts a section; the first table row after it is the header, the rest are devices. Section headings are mapped to categories in CATEGORY_MAP in server.py — headings not listed there (e.g. a "Naming Scheme" table) are treated as documentation and skipped. Columns may differ per section; each device keeps whatever columns its table defines. Both English and German section headings are recognised. See asset-db.sample.md for the full shape.

The file is re-parsed on every tool call — no caching, no restart when it changes.

Testing

python -m unittest discover -s tests -v

Covers the bundled English sample and a German fixture (so a change that breaks real-world German-headed databases fails the suite).

Known limits

  • No resources (@mcp.resource) — devices without a hostname would have no stable URI. Could be added later with a slug generator.
  • No caching — the file is re-parsed per call. Fine for a few hundred rows; cache + mtime-invalidate for larger inventories.
  • Read-only by design — no write tools.

License

MIT © 2026 Henning Halfpap

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选