Token导航 LogoToken导航TokenDH.com
MCP Unifi Applications logo
文档知识stdio官方级别未说明来源级核验

MCP Unifi Applications

MCP Server

一个MCP服务器,将UniFi应用API文档(网络、保护、站点管理器)转换为可查询的工具,适用于Claude桌面、Claude代码或任何MCP兼容客户端。

工具数

9

提示词数

0

GitHub Stars

20

资源数

0
开发工具PythonClaude文档转换Claude DesktopClaudeVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

KallistoX

提供方

KallistoX

最后核验

2026/5/17 20:21

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run --rm -v $(pwd)/docs:/output unifi-scraper node scrape.mjs

详细介绍

MCP UniFi应用程序

CI

一个MCP服务器,它公开 UniFi应用程序API 文档(网络、保护、站点管理器)作为Claude Desktop、Claude Code(VS Code/JetBrains)或任何兼容MCP的客户端的可查询工具。

包括一个基于Playwright的scraper,它将JS渲染的文档SPA转换为结构化的JSON文件,以及一个为它们提供服务的Python MCP服务器。

示例

*“你能告诉我如何使用UniFi的Go with network API创建网络吗?关于托管IPv4 DHCP网关配置,我有哪些选项?”*

Claude自动查询MCP服务器-搜索端点、获取模式和深入鉴别器变体-然后用完整的API详细信息和一个有效的Go示例进行响应:

快速开始

1.报废单据

scraper在Docker内部运行(需要Playwright/Chromium):

# Build the scraper image
docker build -t unifi-scraper .

# Scrape Network API docs (default, latest version)
docker run --rm -v $(pwd)/docs:/output unifi-scraper node scrape.mjs

# Scrape Protect API docs
docker run --rm -v $(pwd)/docs:/output unifi-scraper node scrape.mjs --app protect

# Scrape Site Manager API docs
docker run --rm -v $(pwd)/docs:/output unifi-scraper node scrape.mjs --app site-manager

# Scrape a specific API version
docker run --rm -v $(pwd)/docs:/output unifi-scraper node scrape.mjs --app network --version v9.5.21

# List available API versions for an app
docker run --rm unifi-scraper node scrape.mjs --app protect --list-versions

# Scrape specific pages only
docker run --rm -v $(pwd)/docs:/output unifi-scraper node scrape.mjs createnetwork filtering

# Force re-scrape (overwrite existing files)
docker run --rm -v $(pwd)/docs:/output unifi-scraper node scrape.mjs --force

Network API v10.1.84的预处理文档包含在 docs/network/.

2.安装MCP服务器

python -m venv .venv
source .venv/bin/activate  # or: source .venv/bin/activate.fish
pip install .

3.向您的客户注册

克劳德代码(VS代码/JetBrains) -添加 .mcp.json 到项目根目录(之后重新加载窗口):

{
  "mcpServers": {
    "unifi-docs": {
      "type": "stdio",
      "command": "/path/to/mcp-unifi-applications/.venv/bin/python",
      "args": ["/path/to/mcp-unifi-applications/mcp_server.py"]
    }
  }
}

克劳德桌面 -添加到 ~/.config/Claude/claude_desktop_config.json (Linux)或 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "unifi-docs": {
      "command": "/path/to/mcp-unifi-applications/.venv/bin/python",
      "args": ["/path/to/mcp-unifi-applications/mcp_server.py"]
    }
  }
}

支持的应用程序

应用程序URL本地/远程注释
网络developer.ui.com/network两者都有默认应用程序
保护developer.ui.com/protect两者
现场经理developer.ui.com/site-manager仅远程无本地/远程开关

这三个应用程序共享相同的文档SPA结构,包括版本下拉菜单、端点页面和指南页面。

可用工具

工具说明
list_endpoints列出所有API端点,可选择通过HTTP方法或应用程序进行筛选
search_endpoints按名称、路径、方法或描述进行模糊搜索(可按应用程序过滤)
get_endpoint端点的完整模式(摘要或原始JSON)
get_endpoint_group资源(例如“网络”)的所有CRUD操作
get_examplecurl、Go、Node.js、Python或Ansible(本地/远程)中的代码示例
get_response_sample端点的JSON响应示例
find_field在所有端点架构中搜索字段名
get_field_schema深入特定字段的子树(例如。 management[GATEWAY].dhcpV4)
get_guideAPI指南页(筛选语法、错误处理、入门)

返回多个结果的工具接受可选 app 参数(network, protect, site-manager)按应用程序过滤。

环境变量

变量默认值描述
DOCS_DIR./docs (相对于 mcp_server.py)包含抓取的JSON文档的目录。需要应用程序子目录(network/, protect/, site-manager/).

刮刀CLI

node scrape.mjs [options] [slug...]

Options:
  --app       Application: network (default), protect, site-manager.
  --version    API version to scrape (e.g. v10.1.84). Default: latest.
  --list-versions   Print available versions and exit.
  --force           Re-scrape even if output file exists.

Arguments:
  [slug...]         Scrape only these pages. Omit to scrape all pages.

slug是文档URL的最后一个路径段: https://developer.ui.com/network/v10.1.84/createnetwork -> createnetwork

输出被写入 // (例如。 docs/network/, docs/protect/).

完整扫描是可恢复的——已经刮擦的页面将被跳过。使用 --force 重新刮。

项目结构

mcp-unifi-applications/
├── scrape.mjs          # Playwright scraper (runs in Docker)
├── mcp_server.py       # MCP server (Python, stdio transport)
├── Dockerfile          # Scraper container image
├── pyproject.toml      # Python project config
├── docs/               # Scraped JSON output
│   ├── network/        # Network API docs
│   ├── protect/        # Protect API docs
│   └── site-manager/   # Site Manager API docs
└── tests/
    └── test_mcp_server.py

输出格式

端点页面

{
  "h1": "Create Network",
  "method": "POST",
  "path": "/v1/sites/{siteId}/networks",
  "description": "Create a new network on a site.",
  "pathParameters": [ "...fields" ],
  "requestBody": [ "...fields" ],
  "responses": [{ "statuses": ["201"], "fields": [ "...fields" ] }],
  "examples": {
    "local": { "curl": "...", "go": "...", "nodejs": "...", "python": "...", "ansible": "..." },
    "remote": { "curl": "...", "go": "...", "nodejs": "...", "python": "...", "ansible": "..." }
  },
  "responseSample": "{ ... }",
  "sourceUrl": "https://developer.ui.com/network/v10.1.84/createnetwork"
}

指南页面

{
  "h1": "Filtering",
  "type": "guide",
  "content": "Markdown content...",
  "sourceUrl": "https://developer.ui.com/network/v10.1.84/filtering"
}

字段对象(递归)

{
  "name": "management",
  "required": true,
  "type": "string",
  "description": null,
  "discriminator": [
    { "value": "UNMANAGED", "selected": true, "schema": [ "...sibling fields" ] },
    { "value": "GATEWAY", "selected": false, "schema": [ "...sibling fields" ] }
  ],
  "children": [ "...child fields for object types" ]
}
  • discriminator.schema 包含该选项处于活动状态时可见的兄弟字段(不是鉴别器字段本身)
  • 嵌套是递归的——变体中的鉴别器被完全扩展
  • children 捕获静态扩展的对象字段

免责声明

本项目不隶属于Ubiquiti股份有限公司、由其背书或赞助。本工具抓取和提供的API文档内容归 Ubiquiti股份有限公司。 并且来源于他们的公众 开发者门户.“UniFi”是Ubiquiti股份有限公司的商标。

许可证

麻省理工学院

目录标签

目录标签

开发工具PythonClaude文档转换API查询本地部署UniFi工具MCP服务器开发辅助

支持客户端

Claude DesktopClaudeVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

9

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP