磁盘板 MCP 服务器和 CLI
模拟背景协议服务器和人类第一CLI 调用远程 Dashboard CRM API. (原始内容存档于2017-09-29). 两个表面都来源于同一个OpenAPI合同,认证流,以及请求运行时间.
特征
- 自动生成的工具 ——来自已验证的仪表板OpenAPI 3.0 spec(精确计数跟随活合同)的MCP工具
- 人类第一个CLI —— 说
dashboard-cli提供可读的客户关系管理命令外加通用操作倒置 - 强打字 —— TypeScript 接口由
openapi-typescript - API 密钥认证 - 范围d
ctk_...无记名密钥( n)DASHBOARD_API_KEY; 无电子邮件/密码字 - 直播光谱刷新 —— 启动时获取最新的 API 光谱, 返回到捆绑
- 默认安全 - 不包括DELETE、电子邮件发送、进口和其他破坏性行动
- 自定义工作流程 ——提交下载预览/申请,注意许可证续签/展期,原子接触调节,授权内部演示发布
安装
全球(所有克洛德码项目)
claude mcp add --scope user --transport stdio dashboard \
--env DASHBOARD_URL=https://dash.calltelemetry.com \
--env DASHBOARD_API_KEY="$DASHBOARD_API_KEY" \
-- npx -y @calltelemetry/dashboard-mcp@latest
项目一级
添加到您的项目 mcp.json数字 :
{
"mcpServers": {
"dashboard": {
"command": "npx",
"args": ["-y", "@calltelemetry/dashboard-mcp@latest"],
"env": {
"DASHBOARD_URL": "https://dash.calltelemetry.com",
"DASHBOARD_API_KEY": "${DASHBOARD_API_KEY}",
"DASHBOARD_ALLOW_DESTRUCTIVE": "false"
}
}
}
}
设置
git clone [email protected]:calltelemetry/dashboard-mcp.git
cd dashboard-mcp
yarn install
yarn build # Fetches spec → generates types → compiles
CLI 使用量
使用 dashboard-cli 当您想要可读终端输出时。 使用 dashboard-mcp 当代理需要 MCP 工具时.
# Default npx bin is the MCP server. Pass `--` to run the CLI.
doppler run --project ai-workspace --config prd -- \
npx -y -p @calltelemetry/dashboard-mcp@latest -- dashboard-cli contacts list
dashboard-cli contacts show 43
dashboard-cli contact-reconcile preview --primary-contact-id 100 --duplicate-contact-id 101
dashboard-cli companies create --json '{"name":"SPIE","domain":"spie.com"}'
dashboard-cli licenses create --json '{"subscription_type":"demo","duration_days":45}'
# Authorized internal organization/contact/demo-license workflow; never sends email
dashboard-cli demo-license issue \
--email [email protected] \
--org-name "Internal testing" \
--days 45 --internal --audit-note "Approved internal test"
# Generic fallback commands
dashboard-cli ops list --search license
dashboard-cli ops schema dash_api_web_crm_license_controller_create
dashboard-cli ops call dash_api_web_crm_contact_controller_index --arg search=sofiane
# Machine-readable output
dashboard-cli contacts list --json
dashboard-cli ops call dash_api_web_crm_contact_controller_index --json-output
默认输出在 TTY 上是相当漂亮的文本 。 过 --json 或者说 --json-output换成JSON.
持有的下载核准书
代理通过已部署的工作流程工具发现三个工作流程工具 ct-mcp 网关 :
dashboard_download_queue, (中文(简体) ), dashboard_download_dossier,以及
dashboard_download_approve队列接受 submission_id准确 email, (中文(简体) ),
cursor,以及 limit (1–100) (中文(简体) ). 剂量 submission_id. 核准
submission_id, (中文(简体) ), reason选项 mode (预览默认),和
confirmation_digest (申请所需).
CLI 调用相同的工作流程, API, auth, 以及编辑边界 :
dashboard-cli downloads list --email [email protected] --limit 20 --json-output
dashboard-cli downloads dossier 23 --json-output
dashboard-cli downloads approve preview 23 --reason "Operator reviewed" --json-output
dashboard-cli downloads approve apply 23 --reason "Operator reviewed" --confirm <preview_digest> --json-output
上面的身份证是 提交编号。旧的数字 downloads approve <run_id>
财务报告和审定财务报表 download_approve 工具保留其运行地址相容行为.
预览宣布正常的链接电子邮件发送并返回摘要, 不包含
改变状态。 下载批准不发放或续签演示许可证.
预示演示-键批准仍为单独的人类CRM动作.
应用返回 status: verified 只有经过独立的档案和准确
过滤队列读取一致 . status: applied_unverified 保留承诺
接收和返回 MCP isError: true 1号出口 仅读回收
档案/排队电话使用收据身份证;不要盲目重新申请。 通知
queued 这并不意味着发送或交付。 重放保留已过期/已撤销的访问 .
如果目前的准入状态、到期期或配额自此已发生变化,则采用原来的
收件和目前的档案材料保留在 verification.access_drift_fields· ;
旧收据无法认证当前访问.
许可证的有效性
customer-renewal 预览包含许可证 validityStartsAt 联合国
确认摘要。 它使用过去相连的合同起始日期;
否则,它使用协调世界时的午夜 1个日历年,比协调世界时的当前日期早,
将跳跃日夹到2月的最后有效日。 应用此发送
starts_at 与请求 expires_at。合同开始日期是
离开完好无损.
license-extend 使用过去在与
或同一日历年的倒计时,因为没有独特的开始。 如果
数据库过期已匹配,但存储的密钥已丢失, 格式错误,
或停滞 nbf / 业务延期索赔, 预览 识别一个有效性键
进行修理并重新签名。 客户通知仍然有效
关闭, 除非明确要求.
内部 demo-license issue 发送时使用相同的后端日期开始
根据要求的期限明确未来业务到期。 重用
正在运行的演示许可证被检查并在当前过期时重新签署
当他们的密钥有效性要求被搁置时.
成功的关键结果包括 UTC 解码 nbf 和商务结束.
他们包括JWT exp 与业务到期时不同.
将退回的关键索赔申请与请求的启动进行核对
过期加独立许可证回读; 它不签名密钥
当地.
HTTP 409/422,运输/领域故障,光谱缺失,操作未知
已输入 MCP 错误。 文本 JSON 和 structuredContent 共享编辑
、签名的 URL、许可证/ API 密钥和电子邮件机构。 新工作流程
在未按规定申报作业身份、作业领域和范围的情况下拒绝合同.
环境变量
| 变量 | 需求 | 说明 |
|---|---|---|
DASHBOARD_URL | 没有 | API 基础 URL( 默认 ): https://dash.calltelemetry.com(中文(简体) ) |
DASHBOARD_API_KEY | 对 | 范围d ctk_... 无记名密钥( Doppler) ai-workspace编号 :prd(中文(简体) ) |
DASHBOARD_ALLOW_DESTRUCTIVE | 没有 | 设定为 true 仅用于显示 DELETE 工具的受控会话; 默认 false |
未设置 DASHBOARD_EMAIL 或者说 DASHBOARD_PASSWORD编目发射器解开它们.
export DASHBOARD_API_KEY="$(doppler secrets get DASHBOARD_API_KEY --project ai-workspace --config prd --plain)"
如何运作
┌──────────────┐ ┌─────────────────┐ ┌──────────────────┐
│ Claude Code │────▶│ dashboard-mcp │────▶│ Dashboard API │
│ (agent) │◀────│ (MCP server) │◀────│ (Phoenix/Pow) │
└──────────────┘ └─────────────────┘ └──────────────────┘
stdio OpenAPI → MCP API key (`ctk_`)
generated tools REST JSON API
- 发送
Authorization: Bearer $DASHBOARD_API_KEYcRM/平台路线 - 从活的 API 装入并验证 OpenAPI 光谱( 返回到已验证的捆绑光谱)
- 将每个允许的 API 操作转换为带有 Zod 输入验证的 MCP 工具
- 代理工具通过 CLI 使用的相同的请求运行时间呼叫仪表盘 API
- API- key 401s 仍为倒闭( 没有密码登录倒闭)
构建命令
| 命令 | 说明 |
|---|---|
yarn build | 全管:取出光谱 清洁 生成类型 编译 |
yarn build:spec | 从生产中获取 + 干净的 OpenAPI 光谱 |
yarn build:types | 从 spec 生成类型脚本 |
yarn build:nospec | 构造时不重复光谱 |
yarn build:identity | 印花包版本和完整的 Git source SHA 用于诊断 |
yarn typecheck | 仅检查类型 |
yarn start | 运行 MCP 服务器 |
yarn start:cli | 运行 CLI |
MCP 工具示例
一旦连接,代理可以调用如下工具:
mcp__dashboard__dash_api_web_crm_contact_controller_index # List contacts
mcp__dashboard__dash_api_web_crm_company_controller_show # Get company by ID
mcp__dashboard__dash_api_web_crm_deal_controller_create # Create a deal
mcp__dashboard__leads_today # Today's new leads
mcp__dashboard__pipeline_summary # Deal pipeline overview
mcp__dashboard__license_overview # All licenses
mcp__dashboard__dash_api_web_crm_license_controller_extend # Extend a CRM license
建筑
建在与 OpenAPI 对 MCP 桥型相同的上 jtapi- mcp (英语)数字 :
- 光谱解析 ——读取 OpenAPI 3.0 路径和计划
- Zod 转换 — 为 MCP 工具输入将 OpenAPI 计划转换为 Zod 验证器
- 工具命名 - 转换
operationId改为蛇行工具名 - 共享请求运行时间 处理路径参数、查询参数、 JSON 机构、 认证、 重新启用 MCP 和 CLI
光谱清理
这个 scripts/clean-spec.mjs 脚本验证每个HTTP操作和操作ID. 错误的条目会使构建失败,而不是被默不作声地剥去,因此缺失的Dashboard控制器声明无法从生成的客户端中消失.
释放流量
一个工作流程, .github/workflows/publish.yml,拥有版本. main 实值
保护它,所以它不会撞伤; package.json 保留占位符和
真实版本存在于 git 标签中.
- 触发器: 推动
main那个 触摸src/, (中文(简体) ),scripts/, (中文(简体) ),package.json, (中文(简体) ),yarn.lock,或tsconfig*.json, (中文(简体) ), 或人工发送. Dashboard调度首先同步并测试CI中的新合同 承诺的光谱推取引发了出版。 失败的获取失败同步 . - 版本: npm 注册版本和最高值之上的下一个补丁
最高额
vX.Y.Zgit标签. yarn build:nospec+ 测试,然后npm publish。 。 。 .- 按下标记
vX.Y.Z已经公布的承诺. - 链条
docker.yml建设和推进ghcr.io/calltelemetry/dashboard-mcp作为vX.Y.Z, (中文(简体) ),latest和短短的莎尔。 Semver的标签从不重放. - Flux Image Automation (ct-information) 跟着新的 semver 标记.
docker.yml 不在平原上构建释放图像 main 推动.
出版物继续连载,而不取消已经在飞行中的释放.
建立印花包/出自身份; connection_status 卫生/工人健康
报告 runtime.package_version, (中文(简体) ), runtime.build_sha,以及 spec.fingerprint。 。 。 .
runtime.package_version_source 实值 release 为已出版的软件包/图像构建
财务报告和审定财务报表 source_manifest 用于发展或主要部门工人建设
显式占位符不是npm放行收据.
打开API spec.version 和 MCP 软件 protocol 说明单独的合同
不代表包释放收据.
许可证
私人——只使用CallTeleomet 内部.
云浮工人(ADR 0781)
src/worker.ts 与无国籍的可流-HTTP MCP(第2026-07-28段)相同的工具
https://mcp.calltelemetry.com/dashboard/mcp。每个请求必须携带有效的 Cloudflare 访问 JWT
(单位:千美元)ACCESS_TEAM_DOMAIN, (中文(简体) ), ACCESS_AUD: 503 直到配置, 401 为缺失或无效的断言.
工具注册与节点入口共享; OpenAPI 光谱在构建时捆绑
(没有活取),破坏行动不管瓦尔斯(src/worker-env.ts) (中文(简体) ).
Wrangler邮票在每个捆绑前建立身份,所以预览上传和
即使安装了跳过脚本后,也会从新的独立取出中部署工作.
DASHBOARD_API_KEY 从多普勒同步 mcp-workers/prd (原始内容存档于2018-03-21). by CI. 集群内SSE服务不变.
生产捆绑 DASHBOARD_SERVICE 改为 dash-edge-router板上卫生和
API 请求使用此绑定, 因为同区工人抓取不能引用
工人路线由丢弃的 DNS 来源支持. 装订的 Dashboard URL 和
API 密钥被限定为当前请求; API- key 验证仍然发生在
盘子 只有配置的 Dashboard 源头使用绑定,并且
对不同来源的认证请求被驳回。 节点客户端和
没有服务约束的开发保留了正常的HTTP运输.