Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": true
}
resources
{
  "subscribe": false,
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
loginA

[交互式] 发起 OAuth 2.0 + PKCE 登录。

返回授权 URL。用户需在浏览器打开该 URL,登录 fnOS 并确认授权, 然后把页面显示的一次性 code 用 submit_auth_code 工具提交。 不要向用户索取 NAS 账号密码。

submit_auth_codeA

提交 OAuth 一次性授权码,完成 token 交换与 session 保存。

注意:该工具通过带 pty 的后台进程完成交互(CLI 要求 TTY 等待输入), 仅在 code 有效(5 分钟内、未使用)时成功。

logoutA

退出登录并清理当前 profile 的 session 与 OAuth pending 文件。

whoamiA

查询当前登录用户信息(验证 session 有效性)。

status_overviewC

聚合只读状态:系统信息 + CPU/内存监控(对应 trim-cli +status)。

system_infoC

获取系统信息:主机名、trim 版本、内核版本、uptime 等。

system_hardwareC

获取硬件信息。

system_volumesC

列出所有卷(含配置卷)。

system_power_planB

获取定时开关机计划与状态。

system_detailsB

聚合查询系统只读信息(trim 版本、内核、主机名、uptime、风扇模式、 通电自启、下次定时关机、Docker 概要等 18 项;单条失败不影响其余)。

system_timezone_listB

列出系统支持的时区。

file_listB

列出目录内容(单页)。

file_list_allA

列出目录全部内容(自动汇总所有分页为 JSON 数组)。

file_searchC

全盘或指定目录搜索文件。

file_propertyC

获取文件/目录属性。

file_sizeC

计算文件/目录大小。

file_download_urlB

获取文件下载 URL(通常需浏览器已登录 cookie)。

file_usageA

查看卷空间使用分类汇总。

trim-cli 的 位置参数只接受整数(1 表示 /vol1),传 vol1 会报 "invalid digit found in string",所以这里先把数字部分抽出来再传。

file_recentC

列出最近访问的文件。

file_trash_listA

列出回收站内容。

⚠️ 实测在 fnOS 1.2.0800 上,file rm 是硬删除,回收站接口只回 {"result":"succ","uver":...} 而不含任何条目,带不带 path 都一样。 不要把本工具的输出当作"删除是否可恢复"的依据。

file_calcA

计算目录统计信息(递归统计,与 file_size 的单条目大小不同)。

file_accessB

查询当前用户对文件/目录的访问权限。

file_is_mount_pointC

判断路径是否为挂载点。

file_search_othersB

搜索其他用户共享的文件。

file_task_cancelB

取消文件后台任务(搜索/压缩等长任务,写操作)。

file_search_cancelC

取消全盘搜索任务(写操作)。

file_app_dir_listC

列出应用专属目录(appdirs)。

file_sys_part_infoC

查看系统分区信息。

file_team_listC

列出团队空间。

file_team_trash_listC

列出指定团队空间的回收站。

file_team_trash_binA

列出团队空间垃圾桶(trashbin,与分空间回收站不同)。

file_team_trash_restoreB

从团队空间回收站恢复文件(写操作)。

file_team_trash_clearB

清空团队空间回收站(危险写操作,不可恢复)。

file_fav_listC

列出收藏的文件。

file_fav_addC

收藏文件/目录(写操作)。

file_fav_delC

取消收藏(写操作)。

file_share_infoC

查询文件/目录的共享信息。

file_share_listC

列出指定用户的文件共享。

file_share_list_othersC

列出其他用户的共享。

file_share_admin_listC

管理员视角列出文件共享。

file_share_admin_list_othersC

管理员视角列出其他用户的共享。

file_share_addC

创建文件共享(写操作)。

file_share_delC

删除文件共享(写操作)。

file_acl_getC

查询文件 ACL 权限。

file_acl_setB

设置文件 ACL 权限(写操作,可能批量影响子项)。

file_trimacl_reportB

导出卷 ACL 迁移报告(写操作,生成 CSV 报告文件)。

file_mkdirC

创建目录(写操作)。

file_renameC

重命名文件/目录(写操作)。

file_copyC

复制文件到目标目录(写操作)。

file_moveC

移动文件到目标目录(写操作)。

file_deleteA

删除文件/目录(写操作,⚠️ 永久删除)。

实测:trim-cli 的 file rm 是硬删除,文件不会出现在 /vol1//.@#local/trash 里,file_trash_list 也查不到, file_trash_restore 更是无效。调用前请自行确认。

file_trash_restoreA

从回收站恢复文件(写操作)。

⚠️ 实测不可靠:即使返回 "Restored ",文件也常常没有回到原位 (因为 file rm 走的是硬删除,回收站里本来就没有该条目)。恢复后请 用 file_property 确认。

file_trash_clearB

清空回收站(危险写操作,不可恢复)。

file_check_uploadA

预检上传目标(探测远端占用与配额)。

overwrite 默认 skip,这是非破坏性的:目标已存在时返回 {"result":"succ","skip":1} 表示会跳过,原文件不动。

警告(真机实测):

  • overwrite=replace 时上游 check-upload 会立刻把同名目标文件截断成 0 字节,内容丢失且回收站里也没有。别用它"试探会不会冲突",要覆盖 直接调 file_upload。

  • 目标不存在时上游会留下 0 字节的 <名字>.#0 占位文件。不要用 file_delete 删它:fnOS 的 rm 把 X.#0 当作 X 的别名,会连同名目标 文件一起删掉。占位文件会被后续 file_upload 覆盖,留着无害。

file_uploadA

上传本地文件到 NAS 目录(写操作)。

overwrite 决定远端同名文件冲突策略:skip 跳过、replace 覆盖、 rename 保留旧文件并给新文件改名。上传前可先用 file_check_upload 预检目标状态。

file_write_textA

把文本内容直接写入 NAS 文件(写操作;组合 upload 实现)。

等价于在服务器临时文件上执行 file upload:远端父目录不存在时会 先用 file_mkdir 逐级创建。overwrite=skip 时远端同名文件已存在则 跳过不写。适合写配置、脚本、compose 文件等小文本。

file_compressB

压缩文件/目录为压缩包(写操作)。

file_extractC

解压压缩包到指定目录(写操作)。

file_chownB

修改文件/目录属主(写操作;sub=True 递归应用到子项)。

photos_foldersC

列出相册文件夹。

photos_searchB

搜索相册照片(支持 AI 语义搜图;total 才是匹配总数)。

photos_detailC

获取照片详情。

photos_preview_urlA

获取照片预览 URL(通常需浏览器已登录 cookie)。

photos_raw_requestA

调用 Photos 原生 HTTP API(高级用法;POST/PUT/PATCH/DELETE 需确认)。

app_listA

列出已安装的应用。

返回的每个应用同时有 appName(API 标识,如 fn-codeserver)和 name(显示名,如 code-server)。后续所有 app_* 工具要传的是 appName,传 name 会报 "installed app not found"。

app_statusC

查询单个应用状态。

app_store_searchC

在应用商店搜索应用。

app_store_detailC

查看应用商店中的应用详情。

app_check_updateC

检查已安装应用的更新。

app_installB

安装应用(写操作)。dry_run=True 时仅预演不执行。

app_uninstallC

卸载应用(写操作)。

app_startC

启动应用(写操作)。

app_stopC

停止应用(写操作)。

app_restartC

重启应用(写操作)。

app_updateA

升级应用到指定版本(写操作)。dry_run=True 仅预演。

app_task_statusC

查询应用任务进度(安装/更新/卸载等)。

app_task_cancelC

取消应用任务(写操作)。

app_install_cancelB

取消应用安装任务(写操作)。

app_update_cancelC

取消应用更新任务(写操作)。

app_download_cancelC

取消应用商店下载任务(写操作)。

app_install_fpkB

从 fpk 离线安装包安装应用(写操作;remote_path 或 local_file 二选一)。

app_task_actionB

按类型取消应用任务(写操作,聚合入口)。

action 对应 CLI 子命令:task-cancel / install-cancel / update-cancel / app download cancel。

app_config_listC

列出所有应用的配置项。

app_config_detailC

查看指定应用的配置项详情。

app_config_sysC

查看应用中心系统配置。

app_config_auth_pathsC

查看应用的鉴权路径配置。

app_config_wizardC

获取应用配置向导数据(安装向导表单定义)。

app_config_setC

修改应用配置项(写操作)。fields 为 JSON object 透传。

app_config_set_sysB

修改应用中心系统配置(写操作,影响全局应用行为)。

app_config_auto_updateC

开启/关闭应用自动更新(写操作)。

app_config_proxy_accessC

允许/禁止应用的外网代理访问(写操作)。

app_openapi_app_detailC

查询应用 OpenAPI 详情。

app_openapi_allow_auth_pathsC

查询应用 OpenAPI 允许的鉴权路径。

app_openapi_add_auth_pathC

为应用添加 OpenAPI 鉴权路径(写操作)。

app_openapi_add_auth_inherit_fileC

为应用添加 OpenAPI 鉴权继承文件(写操作)。

app_store_listC

列出应用商店全部应用。

app_store_latest_releaseC

获取应用商店最新上架应用。

app_guide_check_installedB

批量检查应用是否已安装(装机引导)。

app_guide_batch_installC

批量安装商店应用(写操作,装机引导流程)。

app_base_dataD

获取应用中心基础数据。

app_sac_store_listC

获取 SAC 应用商店列表(应用推荐数据源)。

app_service_listC

列出应用提供的服务。

app_entry_listC

列出应用入口;only_hidden=True 仅列出隐藏入口。

app_desktop_listC

列出桌面应用图标。

app_operation_settingsC

查看应用运营设置。

app_common_volumeA

查询/设置应用公共卷(set_volume 非空时为写操作)。

docker_containersC

列出 Docker 容器。

docker_container_actionB

对容器执行操作(写操作):start / stop / restart / kill。

docker_container_rmA

删除容器(危险写操作;force=True 强制删除运行中的容器)。

docker_imagesC

列出 Docker 镜像。

docker_image_pullC

拉取 Docker 镜像(写操作)。

docker_image_rmB

删除 Docker 镜像(危险写操作)。

docker_statsC

查看 Docker 资源占用统计。

docker_compose_lsB

列出 Docker Compose 项目。

docker_requestA

调用任意 appcgi.dockermgr.* 端点(写操作,兜底入口)。

固定命令未覆盖的 Docker 端点走这里:networkList、composeContainers、 composeStart/Stop 等。endpoint 只需端点名(CLI 自动加前缀校验), body 为 JSON object 且不能包含 req/reqid(CLI 自动生成)。 Compose/网络/系统类写操作前先做只读探测(如 composeList)。

docker_compose_createA

登记 Docker Compose 项目(写操作;composeCreate 端点)。

请求体真实结构(源自 fnOS 前端逆向):{"auto_build": false, "file": "docker-compose.yaml", "folder": "/vol1/1000/xxx", "project_name": "xxx"}。compose 内容不在请求里——必须先用 file_write_text/file_upload 把 yaml 文件写入 folder,再调本工具。

典型流程:1) file_write_text 写 compose 文件;2) 本工具登记项目; 3) docker_compose_build(project_name) 真正拉起容器(compose up -d); 4) docker_compose_containers(project_name) 验证。auto_build=true 可合并第 2/3 步。

注意:folder 的父目录若自身已带 compose 文件(如 /vol1/1000/docker 自带 docker-compose.yml),fnOS 会判定其为 compose 项目,嵌套创建 返回 errno 0x03200107(父级目录已存在项目),应换干净父目录; 0x03200102 表示 folder 下找不到 compose 文件。

docker_compose_buildA

拉起 Compose 项目容器(写操作;composeBuild,等价 compose up -d)。

新登记的项目必须先 build 才有容器;composeStart 只对已 build 过的 项目生效(它仅执行 docker compose start,不创建容器)。

docker_compose_startA

启动已 build 的 Compose 项目(写操作;composeStart)。

仅执行 docker compose start,项目必须先 composeBuild 过; 未 build 的项目请用 docker_compose_build。

docker_compose_stopB

停止 Compose 项目(写操作;composeStop,容器转 Exited)。

docker_compose_deleteB

删除 Compose 项目登记(写操作;composeDelete,项目列表清零)。

docker_compose_containersC

列出 Compose 项目下的容器(composeContainers)。

docker_container_createA

创建 Docker 容器(写操作)。

支持端口/挂载映射、环境变量、内存/CPU 限制与启动策略。 创建后可用 docker_containers(--all) 与 docker_container_action 管理。

⚠️ cmd 的限制:trim-cli 的 --cmd 会按空格重新切分,所以 cmd=["sh","-c","sleep 300"] 实际落成 ["sh","-c","sleep","300"], ["sh","-c","while true; do ...; done"] 这类命令会直接跑挂。需要带空格 的参数时改用 docker_request(endpoint="containerCreate", body={...}) 传原始 Cmd 数组。

docker_container_inspectC

查看容器详细配置(inspect)。

docker_container_topC

查看容器内进程列表(top)。

docker_container_statsA

查看单个容器的资源占用统计(cpuUsage / usedMem / networkRx / networkTx)。

注意:必须传 64 位容器 ID。传容器名时上游只返回 {"result":"succ"} 空壳,不报错,容易误判成"没有数据"。

docker_container_updateC

更新容器配置(写操作):重启策略 / 内存 / CPU 限制。

docker_image_inspectC

查看镜像详细信息(inspect)。

download_listC

列出下载任务。

download_infoC

查看下载任务详情。

download_filesC

查看下载任务的文件列表。

download_add_uriC

新建下载任务(写操作)。

download_actionB

批量操作下载任务(写操作):pause / resume / retry / rm。

download_statsC

查看下载中心全局统计。

download_add_pathB

从 NAS 本地路径新建下载任务(写操作,如 .torrent 文件)。

download_requestB

调用下载中心原始 API(兜底;写方法自动带 --yes)。

logger_listC

分页查询系统日志。

logger_modulesC

列出日志模块。

logger_exportC

导出日志(写操作)。

logger_clearB

清除指定级别/模块的日志(危险写操作,不可恢复)。

logger_archive_queryC

查询日志归档配置。

logger_archive_setB

设置日志归档配置(写操作;switch/file_path 必填,其余可选)。

logger_debuglogB

开始复制调试日志到本地目录(写操作,生成诊断数据)。

monitor_cpuC

查看 CPU 使用率。

monitor_memoryC

查看内存使用率。

monitor_networkC

查看网络流量。

monitor_diskC

查看磁盘 IO 统计。

monitor_gpuC

查看 GPU 使用率。

monitor_processesC

列出系统进程。

monitor_warningsC

查看系统告警。

monitor_npuC

查看 NPU 使用率。

monitor_batteryB

查看电池状态(笔记本/UPS 场景)。

monitor_fanC

查看系统风扇转速。

monitor_proc_infoC

查询指定进程的详细监控信息。

monitor_proc_servicesC

查询系统服务进程监控。

monitor_beep_supportedC

查询是否支持蜂鸣器。

monitor_beep_eventsC

查询蜂鸣器事件记录。

monitor_beep_reasonsC

查询蜂鸣器鸣叫原因。

monitor_mute_beeperC

静音蜂鸣器(写操作)。

monitor_metricsA

按指标名批量查询监控数据(gen 通用入口)。

可选指标:storeSpeed(存储吞吐)、netSpeed(网速)、 cpuBusy(CPU 忙碌)、memPercent(内存占用)。

network_ssh_statusA

查询 SSH 服务状态(开关、端口、sftp)。

trim-cli 没有 status 子命令(network ssh switch 必须带 --enable 或 --disable,直接调用会报错),所以这里走原始端点 appcgi.network.ssh.status。

network_ssh_switchB

启用或禁用 SSH 服务(写操作)。

power_rebootB

重启 NAS(危险写操作)。

power_poweroffC

关闭 NAS(危险写操作)。

storage_overviewD

存储总览。

storage_poolsB

列出存储池。

storage_disksC

列出硬盘。

storage_disk_healthC

查看硬盘健康状态。

storage_disk_smartC

查看硬盘 SMART 信息。

storage_spaceC

查看存储空间容量。

storage_free_disksC

列出未加入存储池的空闲硬盘。

storage_removableC

列出可移动设备(U 盘/移动硬盘)。

storage_disk_infoC

查看硬盘详细信息。

storage_mountC

挂载存储空间(写操作)。

storage_umountB

卸载存储空间(写操作;部分场景需管理员密码)。

storage_disk_mountC

挂载独立硬盘(写操作)。

storage_disk_umountC

卸载独立硬盘(写操作)。

user_listC

列出 NAS 用户。

user_infoD

查询用户信息。

user_groupsC

列出用户组。

user_group_infoC

查询用户组详情。

user_frozen_listC

列出被冻结的账号。

user_list_ugB

列出用户与用户组(可带版本号做增量查询)。

user_group_usersB

查询用户组成员关系(按版本增量)。

user_login_devicesC

列出当前用户的登录设备。

user_group_addC

创建用户组(写操作)。

user_group_modC

修改用户组(写操作)。

user_group_delC

删除用户组(危险写操作)。

user_group_set_usersA

整组设置用户组成员(写操作,覆盖原有成员)。

user_group_add_usersC

向用户组添加成员(写操作)。

user_group_del_usersC

从用户组移除成员(写操作)。

user_addC

创建 NAS 用户(写操作)。

user_modC

修改 NAS 用户信息(写操作)。

user_delB

删除 NAS 用户(危险写操作)。

user_set_adminC

授予/撤销用户管理员权限(写操作)。

user_unfreezeC

解冻被冻结的账号(写操作)。

baidu_statusC

查看百度网盘应用状态(是否已绑定)。

baidu_quotaC

查看百度网盘容量配额。

baidu_listC

列出百度网盘目录内容。

baidu_searchC

搜索百度网盘文件。

baidu_mkdirC

在百度网盘创建目录(写操作)。

baidu_infoB

查询网盘文件详细信息(可含下载直链 dlink)。

baidu_deleteB

删除网盘文件(写操作,进入网盘回收站)。

baidu_renameC

重命名网盘文件(写操作)。

baidu_moveC

移动网盘文件(写操作;src_paths 最后一项为目标目录)。

baidu_copyA

复制网盘文件(写操作;src_paths 最后一项为目标目录)。

baidu_uploadC

上传本地文件到网盘(写操作)。

baidu_downloadC

从网盘下载文件到 NAS(写操作)。

baidu_share_saveC

转存分享链接内容到网盘(写操作)。

baidu_task_listC

列出网盘上传/下载传输任务。

baidu_task_infoC

查询网盘传输任务详情。

baidu_task_actionB

批量操作网盘传输任务(写操作):pause / resume / cancel。

baidu_task_clearC

清空网盘传输任务记录(写操作)。

baidu_sync_listC

列出网盘同步任务。

baidu_sync_createC

创建网盘同步任务(写操作)。direction=download 网盘→NAS, upload NAS→网盘。

baidu_sync_updateB

修改网盘同步任务配置(写操作;status/interval/conflict 必填)。

baidu_sync_actionC

启停/删除网盘同步任务(写操作)。

diagnostic_exportB

导出 NAS 诊断日志到本地目录(写操作,生成诊断包)。

diagnostic_stopC

停止诊断日志导出任务(写操作)。

raw_requestA

调用系统业务原始 API(兜底,特权入口)。

trim-cli 的命令格式是 raw <REQ> [--json <body>] [--yes]——没有 method 位置参数,GET/POST 由端点自身决定。非审计白名单里的端点 必须带 --yes,这里统一加,所以调用前请自己确认端点安全性。

例:raw_request("appcgi.network.ssh.status") 返回 SSH 开关状态。

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.7/5.0

Scored across 219 tools

Disambiguation3/5

Many tools map to distinct resources, but overlap is frequent: app_task_cancel vs app_install_cancel/app_update_cancel/app_download_cancel/app_task_action, docker_request vs specific Docker tools, raw_request vs everything, and multiple file_share_* variants. Descriptions are detailed, but an agent still faces unclear boundaries on when to use generic fallbacks versus specific tools.

Naming Consistency4/5

Nearly all tools use a consistent domain_action snake_case convention (file_list, docker_container_action, user_group_add), making names predictable. Minor deviations exist (login, logout, whoami, status_overview, raw_request) but do not seriously hinder readability.

Tool Count1/5

219 tools is extreme for any server, far beyond the 50+ threshold for a severe mismatch; even a broad NAS OS surface does not justify this many, especially with numerous cancel/action variants and catch-all request tools. This volume will overwhelm an agent's selection process.

Completeness4/5

Coverage spans file operations, users/groups, apps, Docker, storage, network, monitoring, downloads, Baidu Netdisk, logs, and diagnostics, with a raw_request fallback for uncovered endpoints. Gaps remain around pool/volume creation, RAID/backup/snapshot, and network configuration, but core NAS lifecycle operations are broadly represented.

Maintenance

ActivityNo data
ResponsivenessSyncing