local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Exposes Pi-hole functionality through tools for listing local DNS settings and retrieving recent DNS query history from a Pi-hole instance.
pihole-mcp-服务器
Pi-hole 的模型上下文协议 (MCP) 服务器。该服务器将 Pi-hole 的功能公开为可供 AI 助手使用的工具。
特征
- ListLocalDNS :从 Pi-hole 返回所有本地 DNS 设置
- ListQueries :返回 Pi-hole 最近的 DNS 查询历史记录
- 多 Pi-hole 支持:从单个 MCP 服务器管理最多 4 个 Pi-hole
- ...更多内容即将推出...
依赖项
Docker
uv
(可选,用于开发)
如果要在本地运行应用程序,请使用uv
。使用您选择的包管理器进行安装。
环境
使用您的 Pi-hole 凭据在项目根目录中创建一个.env
文件:
Docker 部署
在 Docker 中运行 Pi-hole MCP 服务器。
使用 Docker Compose
- 拉取并启动容器:Copy
- 该服务器将通过
http://localhost:8383
访问
手动 Docker 构建
或者,您可以手动构建并运行 Docker 容器:
本地运行
Docker 部署使用 SSE 模式在主机和容器之间进行双向通信。理论上,你可以将 STDIO 模式与 Docker exec 结合使用。但如果要在本地运行,只需使用uv
即可。这对于使用内置mcp
dev 实用程序快速检查工具和资源特别有用。例如:
然后在您的网络浏览器中导航至http://localhost:6274
。
API
该 MCP 服务器公开以下资源和工具:
资源
piholes://
:返回有关所有已配置的 Pi-holes 的信息
工具
list_local_dns
:列出 Pi-hole 的所有本地 DNS 设置list_queries
:从 Pi-hole 获取最近的 DNS 查询历史记录
每个工具调用都会以字典列表的形式返回具有以下结构的搜索结果:
goose
测试
Goose 是一款 CLI LLM 客户端,适用于测试和开发。请按照此处的安装说明进行操作。
下面假设您已经使用goose configure
完成了初始设置。
配置扩展
- 输入
goose configure
打开配置菜单。 - 选择**“添加扩展”**
- 选择远程分机
- 它会要求输入一个名称。随便你叫什么。我把它命名为
pihole-mcp
。 - 当它询问*“SSE 端点 URI 是什么?”*时,输入
http://localhost:8383/sse
。 - 输入超时。
- 如果您愿意,可以添加描述。
- 当询问环境变量时,选择**“否”** 。
开始会话
服务器安装完成后,开始聊天会话。
尝试询问它: “我的本地 DNS 记录是什么?”
...或者告诉它: “显示我最近的 DNS 查询。”
克劳德桌面
Claude 的桌面客户端目前仅支持 STDIO 协议,但是您可以使用代理与 SSE 端点通信。
将以下内容添加到您的claude_desktop_config.json
文件中。
如果您要连接到本地网络上的其他主机并使用不安全的连接,则需要使用--allow-http
参数明确允许该连接。例如:
之后,完全重新启动应用程序并尝试一下。
执照
This server cannot be installed
将 Pi-hole 功能公开为 AI 助手工具的服务器,允许他们通过自然语言检索本地 DNS 设置和查询历史记录。