@ carrierllc/ mcp
你的MVNO/eSIM车队的自然语言控制. 43个OCS工具+9个智能复合器+5个快取. 直接stdio模式——不需要OAuth.
长期库存发放
assign_package 与 account_for_subs (或无ICCID)称为经认证的载体API /v1/subscribers/issue-from-inventory 路线。 供应一个稳定 request_key: 1–200个字符,第一个字符字母数,剩余字符字母数, _, (中文(简体) ), ., (中文(简体) ), :,或 -。没有生成密钥。 可选 business_reference 识别现有的存储前端命令; API必须授权, 这不是所有权的证据 .
设定 CARRIER_API_TOKEN 给自己的承运人证书。 主办MCP和 carrier packages assign --account-id … --template-id … --request-key … --commit 转发当前认证的会话证书。 明确的ICCID转让仍然是范围化的OCS用户路径,与存货/业务参考相互排斥.
未知的反应/运输结果 request_key 永远不要触发第二次自动调度 使用同一种密钥进行调和; 不要薄荷替换 。 干跑验证不分配或解决证书.
快开始
交互式CLI(非发展中国家)
npx -y -p @carrierllc/mcp carrier-mcp
# opens the Carrier TUI: status, sign-up/sign-in, install MCP, fleet NL examples
carrier status # plugin + MCP + next steps
carrier plugin install # zero-cred MCP URL; OAuth on first use in Claude
carrier open signup # create account
carrier examples # paste-ready “talk to fleet” prompts
carrier login # browser once; native OAuth refreshes silently
carrier ask "fleet health" # uses CLI OAuth / compatible Claude Code OAuth / explicit key
carrier exec -- bash # real child terminal with CARRIER_API_KEY in its environment
条目A: 注册 https://mcp.carrier.llc/mcp 没有标志。 第一个工具
调用 Claude/Cursor 打开 Clerk OAuth (Google / GitHub / 电子邮件) .
自然语言答案
carrier ask "how many subscribers are there?" 和互动之家
问舰队 动作将已执行的工具结果作为可读的答案.
已知的 OCS 列表摘要使用服务器的权威 summary.total,而不是一个
重新计数显示的行 。 该数字描述了结果/页,而不是
必然是整个舰队;呼号、缺失行和缩短显示
明确报告。 用户身份和SIM库存状况保持不变
分开。 无法读取嵌入状态的服务器面不是声称
用户状态缺失 .
这是决定性的介绍,而不是另一个AI/模具呼叫。 原画 问题将计数与所要求的清单/状况/细节区分开来。 不支持 预测和判断受到明确的限制,而不是无关 记录。 当前用户状态使用共享的 OCS 开放周期正常化器, (c) SIM库存仍然分开.
默认 JSON 演示文稿使用打入的 scalar 允许列表和清晰浅析 账户/结果包装。 未知的字段、嵌入形状和错误的字段类型 以安全限制方式省略; 绝不会递归地倾倒。 保险 一般的平面事实仍然可以读取。 空或不支持的摘要面 省略。 普通文本工具的答案通过, 仅缩短到整个 句/行边界; 这不是任意性的一般编辑保证 作是语已. 超大小的不可分割行被完全用原始输出提示省去.
carrier ask "how many subscribers are there?" --json
--json 是明确的原始访问: 完整的 JSON stdout, 没有横幅/ spinner; plain
文本被编码为 JSON 字符串。 原始输出可能包含敏感数据. 失败
保持为非零, Stderr 有错误。 MCP机器合同和域名
命令不变。 模糊意图和确认要求的变异
仍然没有执行已解决的工具.
OAuth 和终端交接
载体指令,状态和询问舰队共享证书解析. 明确
CARRIER_API_KEY 编号 : CARRIER_ORG_API_KEY 总是赢。 土著 carrier login 存储
一个私有的可刷新会话,有一个跨进程所有者锁定和原子写出.
登录、 刷新和登录序列化; 完成的登录无法被复活
早点刷新 一个坠毁的CLI车主留下了一个故障关闭 credentials.lock
目录 : 在手动删除前确认没有 CLI 登录/ 更新运行
那个目录 更改回调端口触发新客户端注册.
原生登录并刷新请求精确生产MCP资源. 礼物
在证书存储前拒绝错误/ 成形的令牌响应资源 ;
遗留的缺失是不同的,刷新保留了先前已知的约束力.
现有bash/zsh终端(明确设置)
source "$(carrier shell-path bash)" # use zsh instead of bash in zsh
carrier_auth_export
# CARRIER_API_KEY is now exported in THIS shell and its subsequent children.
# Before an arbitrary headless job, refresh this snapshot again:
carrier_auth_export && your-headless-job
carrier logout
carrier_auth_clear # erase this shell's snapshot too
仅发送到的静态文件来源 。 没有秘密被打印出来 被评价为代码, 设置命令参数/历史,或写入启动文件。 职能 通过继承的描述器读取匿名的私人管子。 它拒绝贝壳 陷阱并关闭 xtrace/ 动词 不恢复它们,因为下一个 调用命令可以扩展新导出的环境 。 巴什选择加载 允许错误跟踪, 因此调用器 ERR 陷阱可见以拒绝 。 信任的命令, 同UID进程环境读取器和相撞垃圾场仍能暴露一名携带者; 这不是对受损壳/操作器的保护。 不要重现可追踪 在证书周围.
壳接受要求 和zsh两句数字 : pnpm test:oauth-shell。 。 。 .
CARRIER_TEST_ZSH 可能指向一个孤立的zsh 二进制和
CARRIER_TEST_ZSH_MODULE_PATH 输入其匹配模块。 一般的修理套间
将缺少的zsh翻译作为明确的 SKIP 报告,从未通过zsh
当两个解释器都不可用时, 接受命令失败 .
OAuth 出口携带 CARRIER_OAUTH_ORIGIN, (中文(简体) ), CARRIER_OAUTH_EXPIRES_AT (划时代)
(单位:千美元) CARRIER_OAUTH_HANDOFF 指纹外加非机密 CARRIER_OAUTH_BINDING。 。 。 .
载体引用只重读所选所有者,源目录/文件,服务器,
登记和不透明主体/赠款。 允许同所有者代号旋转;
过期, 登录, 拥有者/ 配置/ 账户/ org 更改失败, 永不切换到
另一个有效的客户端会话。 必须再次出口没有约束力的老出口品.
这些元数据平等检查不是密码账户/org证明.
任意程序保留到到期:重新运行 carrier_auth_export 在此之前
消费。 替换 CARRIER_API_KEY 故意超过指纹
并保持权威. carrier_auth_clear 删除此 shell 导出
键和元数据,而不是另一个客户端的登录.
carrier exec -- <command> [args...] 仅供受信任儿童使用;
不需要设置, 也不需要父壳突变, 并且保留了孩子退出/ 符号 .
欧撒是一个短命的仆人, 没有 a 一个 ak_ 键.
支持只读 MCP 拥有者
没有本地会话,可重新使用当前兼容的MCP访问符;
运输商不会复制、旋转或撰写更新赠款。 如果车主过期,
在客户端中刷新或使用本地 carrier login。没有所有者重新认证命令
被援引。 需要多个当前所有者 CARRIER_MCP_OAUTH_OWNER=hermes 或者说
claude; CLI 从未猜测要使用哪个账户 .
- 克洛德代码2.1.277和2.1.296: 准确检查的配置和存储适配器.
车主的
.claude.json生活状况CLAUDE_CONFIG_DIR || ~; 一个已存在的 遗产.config.json以优先为准。 对于消费CLI的cwd,当地projects[real git root || real cwd].mcpServers胜过认可的祖先.mcp.json工程配置, 它胜过用户配置 。 其他项目不是 候选人。 项目导入支持明确信任的用户设置批准 只有;待决/拒绝或模棱两可的政策/设定未能结束. 真实地说{type,url,headers:headers||{}}原插入顺序: HTTP, SSE 和缺席type保持区别。 没有硬码的空头胡同. 管理中的选择仍然不支持且未关闭;没有推断 插件/ 代理/ CLI 覆盖分辨率 。 授权/API钥匙/饼干头和 未解决的环境替代不作为 OAuth 导入 .CLAUDE_SECURESTORAGE_CONFIG_DIR以出席资格为准 存储; 当前空取~/.claude,同时非空和CLAUDE_CONFIG_DIR保留精确的 NFC 字符串( 在 Keychain 散列前没有剪切或解析) .USER || os.userInfo().username选择精确的账户,并使用克劳德的 无效账户倒置。 仅选择已核准的自定义 OAuth 环境 它本身的后缀; 不相关的后缀/账户从未列出. Linux 读取隐私.credentials.json。 。 。 .CARRIER_MCP_OAUTH_FILE明确 选择任一平台上的文件后端,而不咨询密钥链. 骆驼Case的过期为epoch毫秒. - 赫尔墨斯: 选中
HERMES_HOME(默认)~/.hermes),精确配置mcp_servers.carrier.url,带有私人mcp-tokens/carrier.json, (中文(简体) ),.client.json财务报告和审定财务报表.meta.json真正的蛇 case 访问-token 球场,hermes_issuer, 熊鼠类型和绝对值expires_at以秒计. 发行商/发现端点、客户注册和资源配置 检查。 仅限相对过期的遗产被拒绝. 配置 JSON 和简单的平面 块 YAML 支持; 嵌入/别名/流量构造失败关闭.
CARRIER_MCP_OAUTH_SERVER 选择其它的显性名称。 私有模式
和当前用户的文件所有权,准确的发行人/资源, read 范围和限度
今后必须期满. CARRIER_OAUTH_ACCOUNT 可选择选择
载体不透明符号的用户前缀; 是 没有 密码账户/org
证明。 只有服务器验证实际的象征性受众、组织和赠款
权限。 无效的本土状态从不会落入另一个所有者手中 .
在macOS上,包装 native/claude-keychain.js 使用内置 JXA
目标-C桥和苹果安全框架:一个通用密码查询,
准确的服务和帐号, kSecMatchLimitOne, (中文(简体) ), kSecReturnData, (中文(简体) ),
kSecUseAuthenticationUIFail,加上进程 - 本地遗产 UI 抑制.
没有编译器/下行负荷/安装日志依赖,没有 security -w, (中文(简体) ),
没有大垃圾场,也没有所有者锁/新鲜/登录。 只有非机密选择者到达
斯丁语. 只有选定的访问数据字段才能收到继承下来的私人FD;
stdout/stder被丢弃. 所有者刷新赠款、客户秘密和无关
证书从不离开帮助者。 苹果公司可能报告ACL 快速要求
或同样锁定的存储( e)errSecInteractionNotAllowed: locked 表示为
而不是对物理键链状态的诊断.
errSecAuthFailed/用户取消是 denied,分析错误为 malformed,以及
其他失败是: unavailable。没有回到简写或Hermes.
仅 errSecItemNotFound 克劳德的私人文件
文件倒计时。 没有精确的 MCP 条目的现有项目不会退后 .
需要重新使用键链 claude --version 2.1.277或2.1.296;
其他版本已关闭。 兼容性是一份明确的被检查的许可名单,
不是版本范围。 源合同在 Linux 上测试; 一个真正的达尔文
缺项探测器也会执行包中的帮助字节换字节
出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出入出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出 成功访问和安装端到端的 Mac
OAuth仍未证实。 检查的Mac 2.1296 返回了查询 denied
(OS status - 25293),不缺;这个适配器从不拓宽键链访问或
拒绝后就退后.
Claude Desktop, Cursor, Windsurf 和 mcp-remote 仍然是不支持的拥有者.
无发行商的条目被故意拒绝. carrier logout 禁用 MCP 程序
在本地登录成功之前再使用, 并且绝不编辑所有者的商店或
另一种外壳的显密键.
本地 API 引用 : 苹果证券项目匹配, (中文(简体) ), Apple Sec 项目.h, (中文(简体) ), Apple JXA 发布注释, (中文(简体) ), 克劳德认证存储。 。 。 .
域命令
在环境中有一个无头键, 每个能力都有自己的指挥,
按控制台使用的相同域分组: subscribers, (中文(简体) ), packages, (中文(简体) ),
templates, (中文(简体) ), zones, (中文(简体) ), steering, (中文(简体) ), intelligence。 。 。 .
carrier subscribers list --account-id 1170
carrier subscribers usage --iccid 8944… --json # last 7 days by default
carrier packages list --iccid 8944…
carrier intelligence fleet-health
carrier steering assign --iccid 8944… --list-id 12 --commit
carrier <domain> --help 列出动词, carrier <domain> <verb> --help 页:1
旗帜。 到处适用两项规则:
--json在 stdout 上打印原始工具的响应, 而不是其它的, 因此它会管道 输入jq。 。 。 .- 更改预览为干运行的指令 。 添加
--commit申请.
Stdio 服务器 (token env)
CARRIER_OCS_API_TOKEN=your_key npx -y -p @carrierllc/mcp carrier-mcp
找到钥匙 mcp.carrier.llc (英语) 或控制台上的 Org API 键.
在 Claude 桌面中安装
添加为 ~/Library/Application Support/Claude/claude_desktop_config.json (马克:
{
"mcpServers": {
"carrier": {
"command": "npx",
"args": ["-y", "-p", "@carrierllc/mcp", "carrier-mcp"],
"env": {
"CARRIER_OCS_API_TOKEN": "YOUR_KEY"
}
}
}
}
在光标中安装
添加为 ~/.cursor/mcp.json数字 :
{
"mcpServers": {
"carrier": {
"command": "npx",
"args": ["-y", "-p", "@carrierllc/mcp", "carrier-mcp"],
"env": {
"CARRIER_OCS_API_TOKEN": "YOUR_KEY"
}
}
}
}
在 Windsurf 安装
添加为 ~/.codeium/windsurf/mcp_config.json数字 :
{
"mcpServers": {
"carrier": {
"command": "npx",
"args": ["-y", "-p", "@carrierllc/mcp", "carrier-mcp"],
"env": {
"CARRIER_OCS_API_TOKEN": "YOUR_KEY"
}
}
}
}
远程 HTTP (OAuth 2.1)
对于使用 OAuth 2.1 + PKCE 的多用户部署,使用远程端点:
{
"mcpServers": {
"carrier": {
"type": "http",
"url": "https://mcp.carrier.llc/mcp"
}
}
}
环境变量
| 变量 | 需求 | 默认 | 说明 |
|---|---|---|---|
CARRIER_API_TOKEN | 库存发放 | —— 说 | 你自己的认证载体API证书。 耐用所需 assign_package 库存; 永远不要回到OCS 符号. |
CARRIER_API_BASE_URL | 没有 | https://api.carrier.llc | 耐用存货的载体REST API来源。 不使用 OCS 提供者 URL . |
CARRIER_OCS_API_TOKEN | 明确的OCS工具 | —— 说 | 您的 OCS API 令牌; 不是 carrier API 证书 。 旧版本使用了不同的可变名称;仍然读取 |
CARRIER_OCS_BASE_URL | 没有 | https://ocs.esimvault.cloud | OCS 基础 URL( 无后端斜线) |
BROWSER_USE_API_KEY | 没有 | —— 说 | 浏览器使用 Cloud 键 。 启用浏览代理( N)ui_agent_ask) (中文(简体) ). 运行按键计费 每个0.20-1.00美元 |
CARRIER_BROWSER_USE_MAX_RUNS | 没有 | 10 | 每个 CLI 进程允许浏览器代理运行 . 0 禁用代理服务器。 见下文说明 |
CARRIER_ALLOW_PORTAL_PASSWORD | 没有 | 未设定 | 设定为 1 ,允许十个 OCS-dashboard 工具使用此机的门户登录。 见下文 |
CARRIER_OCS_PORTAL_USERNAME | 没有 | —— 说 | OCS门户网站用户名. 只在设置上方旗帜时使用 |
CARRIER_OCS_PORTAL_PASSWORD | 没有 | —— 说 | OCS出入口密码. 只在设置上方旗帜时使用 |
CARRIER_OCS_DASHBOARD_URL | 没有 | https://ocs.esimvault.cloud | 窗口代理登录到 |
GREENZONE_PORTAL_URL | 没有 | —— 说 | 用于 greenzone_whitelist_* 工具。 胜过下面两个 |
CARRIER_OCS_PORTAL_URL | 没有 | —— 说 | Reseller门户网站主机. 绿地使用时 GREENZONE_PORTAL_URL 未设置 |
OCS_DASHBOARD_URL | 没有 | https://portal-esimvault.cloud | 门户主机"绿地"回归. CARRIER_OCS_BASE_URL 从未用于传送门 |
浏览器代理要花钱
ui_agent_ask 和 OCS-dashboard 工具发送主机浏览器代理.
每一次运行成本大致 0.20-1.00 (中文(简体) ),记在自己的帐上 BROWSER_USE_API_KEY。 。 。 .
CARRIER_BROWSER_USE_MAX_RUNS 上限运行一个 CLI 进程可启动多少 .
阅读它不做的:
- 它会盖住 运行,不是美元销售商在完成后要付价.
- 没错 无法从重启中幸存。每个新的CLI进程开始一个新的计数, 因此,一个在运行之间重现CLI的呼叫者不受其约束.
唯一的硬财务上限是您浏览器中设定的支出限额 账户。 设一.
选择进入 OCS 门户密码
十个 ui_* 工具——指导清单、子账户创建、目标清单、,
软件包-模板删除,位置-区编辑——没有OCS REST等同.
他们通过驾驶OCS网络仪表板来工作,这意味着登入. 以
默认 CLI 没有门户登录, 这些工具拒绝 .
你可以提供一个。 了解你首先提供的东西:
- 这是门户密码,不是范围化的API令牌. 它会给予全额
仪表板进入持有它的人.
CARRIER_OCS_API_TOKEN是一个 不同类型的秘密 也不是这个先例. - 环境变量对一个人来说是一个贫穷的地方. 可以从外壳读取
历史,从
ps由机器上的任何进程输出,并从 CI 日志输出. - 已发送给浏览器 使用 Cloud,哪个键入 OCS 登录表.
载体从不登录,从不返回工具输出,也从不写给 - 但上面的暴露是你的接受.
有两件独立的事情必须都是真实的,而且两者都不单独做任何事情:
export CARRIER_ALLOW_PORTAL_PASSWORD=1
export CARRIER_OCS_PORTAL_USERNAME='...'
export CARRIER_OCS_PORTAL_PASSWORD='...'
随着国旗的设定,CLI在启动时会打印出警告给stderr. 没有两者 一半,十个工具返回同样的" 要求远程工人"拒绝他们 在此选项存在之前返回.
每十个都接受 dry_run: true,返回代理提示
证书被修改了,没有发送。 先用为相.
ui_request_reseller_relay_change 并非十人之一,而永无障碍
起草文本,不接触门户.
工具(共计52个)
莱克勒(6)
| 工具 | 范围 | 说明 |
|---|---|---|
list_reseller_accounts | 读取 | 列出所有转售商的所有账户 |
get_reseller_info | 读取 | 获取再销售详情 |
esim_status_per_account | 读取 | 按账户分列的eSIM状况 |
list_sponsors | 读取 | 列出所有赞助者网络 |
list_steering_lists | 读取 | 列出所有网络引导列表 |
modify_account_balance | 写入 | 调整或设置再销售账户余额 |
订户(13个)
| 工具 | 范围 | 说明 |
|---|---|---|
get_subscriber | 读取 | 通过 ICCID 或 MSISDN 获取全部订阅者细节 |
list_subscribers | 读取 | 列出带有可选过滤器的订阅者 |
get_sim_provider_status | 读取 | 检查 SIM 提供者级别状态 |
get_subscriber_location | 读取 | 获取最后已知的订阅者位置 |
hlr_get_bitrate | 读取 | 为订阅者获取 HLR 比特率 |
modify_subscriber_balance | 写入 | 调整或设定用户余额 |
modify_subscriber_status | 写入 | 更改订阅者 OCS 状态 |
change_sim_status | 写入 | 在提供者一级改变 SIM 状态 |
modify_subscriber_contact_info | 写入 | 更新订阅者联系人信息 |
set_subscriber_traffic_restrictions | 写入 | 配置交通限制 |
modify_subscriber_steering_list | 写入 | 更改订阅者的网络引导列表 |
hlr_set_bitrate | 写入 | 设置用户的 HLR 比特率 |
move_subscriber_range_to_account | 写入 | 将订阅者范围移动到另一个账户 |
包件(9)
| 工具 | 范围 | 说明 |
|---|---|---|
list_subscriber_packages | 读取 | 列出订阅者的所有预付软件包 |
list_package_templates | 读取 | 列出所有预付包模板 |
assign_package | 写入 | 向订阅者指定软件包模板 |
assign_recurring_package | 写入 | 向订阅者指派经常性软件包 |
modify_package_limits | 写入 | 更改活动软件包的数据/语音/短信限制 |
modify_package_expiry | 写入 | 更改活动软件包的过期日期 |
modify_package_status | 写入 | 激活或关闭用户包 |
stop_resume_recurring_package | 写入 | 停止或恢复经常性软件包自动续用 |
delete_subscriber_package | 写入 | 从订阅者中删除软件包 |
模板和区(7)
| 工具 | 范围 | 说明 |
|---|---|---|
clean_all_packages | 写入 | 从订阅者中删除所有软件包 |
create_package_template | 写入 | 创建新的预付软件包模板 |
modify_template_core | 写入 | 修改软件包模板的核心设置 |
modify_template_recurring | 写入 | 修改套件模板的经常性设置 |
modify_template_throttling | 写入 | 修改软件包模板的节奏设置 |
list_location_zones | 读取 | 位置区的国家/网络列表 |
list_detailed_location_zones | 读取 | 获取详细位置区定义 |
统计和杂项(8)
| 工具 | 范围 | 说明 |
|---|---|---|
subscriber_usage | 读取 | 用户每日使用(最多7天) |
subscriber_network_events | 读取 | 为用户获取网络事件( 最多7天) |
subscriber_active_period | 读取 | 获取订阅者活动周期 |
get_tariff | 读取 | 收回客户关税/定价表 |
list_destination_prefixes | 读取 | 目标列表中的电话号码前缀 |
list_network_profiles | 读取 | 列出所有可用的网络配置 |
create_location_zone | 写入 | 创建新位置区 |
send_sms | 写入 | 向用户发送 MT 短消息 |
情报(9)
连锁多个OCS要求产生结构化见解的AI复合材料:
| 工具 | 说明 |
|---|---|
diagnose_subscriber | 链条5+OCS呼叫诊断连接问题 |
fleet_health | 单调机队概况:账户,eSIM计数,低余额警报 |
detect_usage_anomalies | 检测异常使用模式和燃烧率风险 |
optimize_package | 将用户使用量匹配到最佳可用软件包 |
churn_risk | 记分风险(0-100)并有保留建议 |
audit_network_coverage | 审计网络的覆盖范围和指导效力 |
marketing_intelligence | 市场分割和上市机会 |
high_cost_subscribers | 确定费用最高的用户,以优化差值 |
detect_country_entry | 从最后一个管理协委会中解决当前国家的问题,并将其与预期国家进行比较 |
提示(5)
| 提示 | 参数 | 说明 |
|---|---|---|
fleet_health_report | —— 说 | 车队全面健康概览 |
subscriber_deep_dive | iccid | 单一用户的深度诊断 |
revenue_optimization | —— 说 | 收入分析和上市机会 |
coverage_analysis | —— 说 | 网络覆盖面审计和指导建议 |
bulk_operations_planner | operation | 计划并干燥地开展散装船队行动 |
破坏性工具和干线运行
所有写/admin工具都接受可选 dry_run: true 参数。 设定时,该工具返回将要提出的请求而不呼叫OCS——用于预览操作的安全性.
"Suspend ICCID 8988... but check what it would do first (dry_run)"
链接
- 产品页面 : mcp.carrier.llc (英语)
- 软件包 : npmjs.com/package/@carrierllc/mcp (英语)
- OCS文件: docs.esimvault.cloud/ocs-api (英语)
MIT许可证。 版权2025生命周期创新有限责任公司.