Token导航 LogoToken导航TokenDH.com
uisp API MCP logo
运维云端stdio官方级别未说明来源级核验

uisp API MCP

MCP Server

一个用于与UISP API交互的模型上下文协议服务器,提供动态端点加载和可配置的访问控制。

工具数

18

提示词数

0

GitHub Stars

1

资源数

0
API网关PythonClaude访问控制Claude DesktopClaude

安装说明

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

作者 / 组织

sevaepsteyn

提供方

sevaepsteyn

最后核验

2026/5/17 20:19

快速接入

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

命令预览

pip install -e .

详细介绍

UISP API MCP服务器

一种用于与UISP(Ubiquiti互联网服务提供商)API交互的模型上下文协议(MCP)服务器。此服务器动态加载UISP swagger规范中的所有可用端点,并通过黑名单提供可配置的访问控制。

特性

  • 动态工具生成:从swagger.json自动创建MCP工具
  • 全面覆盖:显示所有UISP API端点(GET、POST、PUT、DELETE、PATCH)
  • 可配置黑名单:控制哪些端点通过blacklist.yaml公开
  • 基于方法的过滤:阻止整个HTTP方法(例如,所有POST/PUT/DELETE操作)
  • 类型安全:保留API规范中的参数类型和枚举值
  • 智能参数处理:正确处理路径和查询参数
  • 自动检索:具有指数回退的内置重试逻辑
  • 详细错误消息:来自API响应的丰富错误信息

安装

使用紫外线(推荐)

cd uisp_api_mcp
uv sync

使用pip

cd uisp_api_mcp
pip install -e .

配置

环境变量

创建一个 .env 项目根目录中的文件:

# Required
UISP_BASE_URL=https://your-uisp-instance.com
UISP_API_TOKEN=your-api-token

# Optional (with defaults)
UISP_API_TIMEOUT=30.0
UISP_API_RETRY_ATTEMPTS=3
UISP_API_RETRY_DELAY=1.0
UISP_DEFAULT_PAGE_SIZE=25
UISP_LOG_LEVEL=INFO

黑名单配置

服务器使用 etc/blacklist.yaml 以控制暴露哪些端点。默认情况下,所有修改操作(POST、PUT、DELETE、PATCH)和敏感端点都被列入黑名单。

# Methods to exclude (blocks all endpoints using these HTTP methods)
methods:
  - POST      # Create operations
  - PUT       # Update operations
  - DELETE    # Delete operations
  - PATCH     # Partial update operations

# Tags to exclude (blocks all endpoints with these tags)
tags:
  - Authorization
  - Users
  - Server
  # ... etc

# Path patterns to exclude (regex patterns)
paths:
  - .*login.*
  - .*password.*
  - .*auth.*
  # ... etc

在默认配置下,只公开GET(只读)操作。

获取UISP API令牌

  1. 登录您的UISP实例
  2. 导航到“设置”→ Users
  3. 选择您的用户帐户
  4. 生成API令牌

用法

克劳德桌面

添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "uisp": {
      "command": "uv",
      "args": ["--directory", "/path/to/uisp_api_mcp", "run", "uisp-api-mcp"],
      "env": {
        "UISP_BASE_URL": "https://your-uisp-instance.com",
        "UISP_API_TOKEN": "your-api-token"
      }
    }
  }
}

命令行

# With UV
uv run uisp-api-mcp

# With Python
python -m uisp_api_mcp

可用工具

服务器根据UISP swagger规范动态生成工具。使用默认黑名单(阻止所有POST、PUT、DELETE、PATCH方法),大约有120多种只读工具可用,包括:

通用工具

  • 站点: sites, sites_id, sites_search, sites_traffic
  • 设备: devices, devices_id, devices_id_detail, devices_id_statistics
  • 监控: logs, outages, nms_statistics, nms_summary
  • 网络: datalinks, datalinks_id, devices_id_interfaces
  • 系统信息: nms_info, nms_version, nms_enums

工具命名约定

工具的命名基于API端点路径和HTTP方法:

  • 获取 /sitessites
  • 获取 /sites/{id}sites_id
  • 获取 /devices/{id}/detaildevices_id_detail
  • 发布 /sitessites_post (如果没有列入黑名单)
  • /sites/{id}sites_id_put (如果没有列入黑名单)
  • 删除 /sites/{id}sites_id_delete (如果没有列入黑名单)

参数类型

所有工具都保留原始API参数类型:

  • 字符串枚举显示可用值(例如,“可用值:站点、端点、客户端”)
  • 必需参数与可选参数已正确标记
  • 路径参数(如 {id})自动处理

例子

列出所有网站

Tool: sites
Parameters:
  - type_: "site"  # Available values: site, endpoint, client, subscriber
  - ucrm: true     # Only sites bound with CRM

获取特定网站详细信息

Tool: sites_id
Parameters:
  - id_: "9ef86767-fd8d-487c-8c97-77f763c5a99a"
  - ucrmDetails: true

列出设备

Tool: devices
Parameters:
  - siteId: "site-uuid"
  - type_: ["erouter", "eswitch"]  # Device types
  - role: ["router", "switch"]      # Device roles

获取设备统计信息

Tool: devices_id_statistics
Parameters:
  - id_: "device-uuid"
  - interval: "hour"
  - start: "2024-01-01T00:00:00Z"
  - period: "86400000"  # 24 hours in milliseconds

错误处理

服务器包括全面的错误处理:

  • 身份验证错误(401)
  • 未发现错误(404)
  • 验证错误(400)
  • 速率限制(429)
  • 连接超时
  • 指数回退自动重试

发展

项目结构

uisp_api_mcp/
├── pyproject.toml
├── README.md
├── .env
├── etc/
│   ├── swagger.json      # UISP API specification
│   └── blacklist.yaml    # Endpoint blacklist configuration
└── src/
    └── uisp_api_mcp/
        ├── __init__.py
        ├── __main__.py
        ├── client.py       # HTTP client with retry logic
        ├── exceptions.py   # Custom exception types
        ├── server.py       # Dynamic MCP server
        ├── settings.py     # Configuration management
        └── swagger_tools.py # Swagger parsing and tool generation

运作原理

  1. Swagger加载:服务器读取 etc/swagger.json 启动时
  2. 黑名单过滤:端点根据以下内容进行筛选 etc/blacklist.yaml (方法、标签、路径)
  3. 工具生成:每个允许的端点都成为具有适当类型的MCP工具
  4. 参数处理:替换路径参数,传递查询参数
  5. 错误处理:捕捉API错误,并通过详细信息进行丰富

添加/删除端点

要修改公开的端点,请执行以下操作:

  1. 编辑 etc/blacklist.yaml
  2. 添加或删除:

- HTTP方法(例如,从方法列表中删除POST以允许POST操作) - 标签(阻止/允许所有具有特定标签的端点) - 路径模式(用于匹配特定端点的正则表达式模式)

  1. 重新启动服务器

更新API规范

要使用更新的UISP API版本进行更新,请执行以下操作:

  1. 替换 etc/swagger.json 使用最新版本
  2. 服务器将自动接收新的端点

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

支持

有关UISP API文件,请访问:https://help.ui.com/hc/en-us/articles/115002943188-UISP-API

有关此MCP服务器的问题,请在GitHub上打开问题。

目录标签

目录标签

API网关PythonClaude访问控制本地部署动态端点网络管理服务提供商

支持客户端

Claude DesktopClaude

接入字段

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

stdio

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

token

工具数量(toolCount,工具数)

18

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiotoken部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP