@ extenshi/ mcp
A 类 示范背景协议 带来 Extenshi 扩展目录 - 搜索、安全分析、市场研究 预印扫描——进入你的AI工具(Claude Code, Claude Desktop, Cursor,.).
跑到当地去了 静态,所以没有什么可以容纳。 它重用你现有的
Extenshi API 密钥( 同一个) @extenshi/cli 对公众的演讲
代表您的后端.
获取 API 密钥
对目录和自有项目工具需要一个 API 密钥. 文件、模板和静态
工作流程指南,包括 get_development_guide没有钥匙的工作 后端强制访问
以及经认证的业务项目应享权利.
- 报名到 https://auth.extenshi.io/ signup* (英语)* 联合国
- 创建密钥于 https://dojo.extenshi.io/api-keys* (英语)* 联合国
- 通过
EXTENSHI_API_KEY环境变量(或运行)npx @extenshi/cli@latest login,MCP服务器从中读取~/.extenshi/config.json) (中文(简体) ).
配置您的 MCP 客户端
{
"mcpServers": {
"extenshi": {
"command": "npx",
"args": ["-y", "@extenshi/mcp@latest"],
"env": { "EXTENSHI_API_KEY": "ek_…" }
}
}
}
计划整个生命周期
打电话 get_development_guide 关于此连接的完整工具目录, Extenshi
服务目录、先决条件和文档链接、 GitHub 源/ CI 指南以及命令
通过实施、测试、储存释放和维护进行规划。 盘点来自
已注册的工具。 远程连接器共享此指南并引导本地的文物操作到
斯特迪奥或CLI. 见 发展工作流程。 。 。 .
工具
| 工具 | 它会做什么 | 费用 |
|---|---|---|
search_extensions | 用过滤器(商店、类别、定价、评级、风险、权限)在Chrome/Firefox/Edge进行混合搜索 | 1个改为 |
get_extension | 一个扩展的完整目录细节——通过数字目录ID 或者说 (见下文) | 1个改为 |
get_reviews | Paginated Firefox/Edge用户评审(评分,短节选,日期,语言)+一个存储级汇总(评分,计分,评分链接) — Chrome Web Store评审行被排除在外(汇总为Chrome唯一的公开内容); 评审员身份被省略; 按近期或评分排序 | 1个改为 |
get_security | 风险分数 + 查找数 + 最高分组的发现(读取现有扫描) | 3个读取 |
get_risk_by_store_ids | 安全分数 不超过40人 一个呼叫中的扩展, 通过 store id 来审计一个已安装的扩展列表而不是呼叫 get_security 每个扩展名 | 每通电话1个 |
market_overview | 全目录的市场情报没有参数(总数、储存分拆、分类树和扩展分解——MV2/MV3、敏感许可、风险等级、交易商地位、重新处理、审查);通过a query 搜索的范围; facets 选择组合和 top_n (默认 10) 修剪长列表 | 1个改为 |
get_credit_balance | 每个游泳池(读取/扫描/图标/库存)的剩余信用值,所以一个代理在运行之前可以大小一个批次,而不是打入中标限制 | 免费 |
get_approval | 如果通过主机连接器提出的更改(待决、应用、拒绝、失败、过期);只读,由所有者在道场决定 | 免费; 需要身份 |
get_development_guide | 完整的连接工具目录、服务目录、 GitHub 指南和命令的开发到维护计划; 默认情况下的紧凑概览, 完整部件通过 sections | 免费( 无密钥) |
list_extension_templates | 扩展形状、最小权限和特定浏览器的显示要求 | 免费( 无密钥) |
connection_diagnostics | 认证、范围、后端工作空间合同和能力 | 免费; 需要身份 |
import_manifest | 进口列表 JSON(加上 _locales 消息通过 messagesByLocale)进入道场编辑器,翻译和项目标签;预览更改并应用状态散列. | 需要为 OAuth 编写工程 |
get_project_workspace | 经修订的存储器元数据、来源/构建的运单、范围和发布快照 | 免费; 需要身份 |
diff_project_state | 对照服务器控件基础修订版进行三向元数据预览 | 免费; 项目读取访问 |
apply_project_patch | 应用带有冲突、墓碑和一能的输入元数据补丁 | 需要为 OAuth 编写工程 |
create_ci_ingest_secret | 创建或旋转 CI 证据摄入秘密( 一次显示, 在动作中存储秘密) | 需要为 OAuth 编写工程 |
upsert_hosted_page | 注册项目主页/支持 URL( HTTPS, 可达, 散列) | OAuth 需要 host. write 吗 |
verify_hosted_artifact | 将主机页面与其记录进行比较(核实/更改/无法获取) | OAuth 需要 host. write 吗 |
remove_hosted_page | 忘记已注册的主页/ 支持 URL( 公共页面继续工作) | OAuth 需要 host. write 吗 |
list_hosted_pages | 有核查状态的注册主机页面 | 免费; 需要身份 |
publish_landing_page | 以 page.extenshi.io/{code}(或自定义域名根)的形式从 page 生成器形式, v1 或 schema v2( 已编辑; 默认登记为主页); live.status 表示公共 URL 是否服务) | OAuth 需要 host. write 吗 |
get_landing_page | 主机登陆页码,活版,URL和表格摘要; 3; view: "full" (可选) fields 编号 : locales返回窗体 | 免费; 需要身份 |
unpublish_landing_page | 将主机登陆页面下线( 在下次发布时使用相同的 URL) | OAuth 需要 host. write 吗 |
draft_landing_page | 起草项目状态的 schema-v2 主页( 章节、 主题、 SEO 、 地方), 以及来源和待办事宜 | 免费; 需要身份 |
preview_landing_page | 核实和制作与公布内容完全一样的表格;每个问题都与路径和修复有关 | 免费; 需要身份 |
list_landing_page_versions | 主机登陆页面版本历史 | 免费; 需要身份 |
rollback_landing_page | 将先前的版本恢复为新版本 | OAuth 需要 host. write 吗 |
get_custom_domain | 自定义域状态, 准确的 DNS 记录和下一步 | 免费; 需要身份 |
set_custom_domain | 为主页和主页添加自定义域(CNAME + TXT 记录) | Pro 工程; 主机. write |
verify_custom_domain | 验证所有者和 HTTPS; 在 ACTIVE 上, 主页服务于域根 | Pro 工程; 主机. write |
remove_custom_domain | 停止服务自定义域; cononical and HomePAGE URL 返回到 page.extenshi.io | OAuth 需要 host. write 吗 |
get_install_instructions | 主机安装指令页面( 代码、 URL、 已发布格式) 和已保存的草稿 | 免费; 需要身份 |
publish_install_instructions | Dojo.extenshi.io/教程/{code}的安装指令主机,步骤为11种语言 | OAuth 需要 host. write 吗 |
unpublish_install_instructions | 将主机安装指令下线( 下一次发布时相同的 URL) | OAuth 需要 host. write 吗 |
get_page_translations | 开发者在未安装表格/反馈表格/欢迎页/安装具有每种语言翻译状态的指令上撰写的文本 | 免费; 需要身份 |
set_page_translations | 保存一个未安装表/回馈表/欢迎页/安装指令页的一款语言 | OAuth 需要 host. write 吗 |
get_legal_translations | 已出版的隐私政策或许可条款的翻译副本(英文版装订):每种语言翻译的剩余内容 | 自由; 需要身份( 许可证名词: pay. read) |
get_license_terms_questionnaire | 许可证条款( V) 将问题作为数据退后( 类型、 选择、 限制, 需要时); 没有保存的答案 | 免费; 需要身份( 不付费. read) |
draft_license_terms | 许可使用调用中发送的答覆中的术语文本, 并有阻断出版的漏洞; 无保留 | 免费; 需要身份( 不付费. read) |
get_license_terms | 已保存草稿、已公布的版本和散列、版本、开放和只有所有者的答案 | 需要付费,读取 |
save_license_terms_draft | 将答案保存为草稿; 身份答案保留给主人; dryRun, (中文(简体) ), expectedDraftHash | 需要付费. write |
request_license_terms_publication | 请所有者公布草稿(批准链接);也可以决定销售者。 术语 | 需要付费. write |
publish_license_terms | 直接以密钥发布 pay.legal.publish; 只缩写 | 要求支付. write + 支付. legal.publish |
verify_license_terms_live | 页面、散列、付费墙链接和卖方 | 免费; 需要身份 |
rollback_license_terms | 早期版本作为新版本,通过批准或直接 | 需要付费. write |
list_uninstall_forms | 该项目的未安装调查:URL、启用、初级、响应 | 免费; 需要身份 |
get_uninstall_form | 一项全面调查: updatedAt,标题及其来源,翻译状态 | 免费; 需要身份 |
update_uninstall_form | 部分更新检查如道场编辑器; dryRun 迪夫,你说什么, expectedUpdatedAt, (中文(简体) ), idempotencyKey; URL 和回复保留 | OAuth 需要 host. write 吗 |
get_uninstall_offer | 调查的折扣报价:显示的原因,每个计划一个折扣,修订,什么仍然阻碍它,项目的计划,计数 | 免费; 需要身份 |
update_uninstall_offer | 确定整个报价; dryRun 检查一下; expectedRevision; Pro项目. 在主机的连接器上,这是业主同意的建议 | 要求支付. write for OAuth |
preview_uninstall_form | 调查的文字用一种语言,每个答案后面的屏幕;不算什么 | 免费; 需要身份 |
list_uninstall_responses | 调查的答案, 首先是最新答案, 按版本和日期过滤, 按理由和版本计数; 邮件只针对 API 密钥 | 免费; 需要身份 |
list_feedback_forms | 项目的反馈表(feedback.extenshi.io):URL,启用了,初级,响应 | 免费; 需要身份 |
get_feedback_form | 一份完整的反馈表,即 updatedAt,标题及其来源,翻译状态 | 免费; 需要身份 |
update_feedback_form | 部分更新检查如道场编辑器; dryRun 迪夫,你说什么, expectedUpdatedAt, (中文(简体) ), idempotencyKey; URL 和答案保留 | OAuth 需要 host. write 吗 |
preview_feedback_form | 表格的文字用一种语言, 和每类的感谢屏幕; 没有记录 | 免费; 需要身份 |
list_feedback_responses | 表格的答案, 最新的答案, 按类别、 来源、 版本和日期过滤; 邮件仅针对 API 密钥 | 免费; 需要身份 |
find_brand_mentions | 每个主机字段都有一个名称(例如旧的扩展名),并带有修正它的工具 | 免费; 需要身份 |
set_legal_translations | 保存隐私政策的一种语言或许可术语翻译(编辑章节和自由文本答案). 在主机连接器上,一个翻译是所有者在道场批准的提案;有API密钥,它立即启动 | 需要host.write + Pro( 政策) 或 pay.write( terms) 为 OAuth 撰写 |
upload_project_media | 上传一个 PNG/JPEG/WebP 标志或截图到项目的公共媒体商店并获得一个稳定的 URL publish_landing_page (每个项目的元数据被剥去; filePath 在stdio的工作空间里, dataBase64 到处都是) | OAuth 需要 host. write 吗 |
record_project_evidence | 将元数据存储到精确的文物、输入散列、浏览器和源码修订版 | 需要证据。 write for OAuth |
get_release_readiness | 由浏览器和地块解释当前, Stale和缺失的放行检查. 使用链接的Pay应用程序,付款支票取自Extenshi的付款分类账(来源: platform); 现场模式购买,达到安装通过 | Pro 项目; 项目读取权限 |
list_my_projects | 您的项目、 寄存器绑定和声称的列表 | 免费; 需要身份 |
create_project | 通过 Dojo 向导 服务创建一个工程; 每名密钥的 idepotent; 返回 id, 下一步和打开所有者的决定; 本地服务器添加 buildMap | 需要为 OAuth 编写工程 |
get_decisions | 所有者决定(AMO加码、许可证、卖方身份、定价、指标):状况、建议违约、每个区块是什么 | 免费; 需要身份 |
propose_decision | 提出具有理由的决定价值;所有者在道场决定,决定的密钥被拒绝 | 需要为 OAuth 编写工程 |
get_project_state | 突出摘要(进口或生成、摘要、不同于所导入文件的密钥)、所选类型、保存状态索引、托管的URL和精确的集成文件; manifests: "full" 返回显示对象;本地服务器添加 buildMap (构建图是否开放,地址,作者是否拒绝) | 免费; 需要身份 |
get_project_scaffold | 一个工程和目标浏览器的启动文件 | 免费; 需要身份 |
list_privacy_policy_versions | 主机政策版本历史 | Pro 项目;无读取信用 |
get_privacy_policy_version | 一个托管策略的标记和 HTML | Pro 项目;无读取信用 |
update_privacy_policy_with_ai | 提出政策更新,供作者审查; aiStep 说明AI步骤是否运行,否则提议是合并部分 | Pro 项目; 应用每日更新限制 |
publish_privacy_policy | 在项目主机 URL 上发布策略 。 在主机连接器上,文本作为提案被存储,主人在道场批准(见下文);带有API密钥,它立即启动. 对于一个文件, extenshi privacy publish <file.md> 发送精确的字节并检查存储的内容 | Pro 工程; 更改活页 |
search_docs | 搜索 Extenshi 文档 + @extenshi/cli 引用使助手能够引用精确的命令;返回顶部 limit 段落封顶 max_chars 每个 | 免费( 无密钥) |
localize_workflow | 当地信息翻译合同、CLI验证和人工审查闸门 | 免费( 无密钥) |
generate_icon_workflow | 图标设计要求+本地代理-draws-SVG → npx @extenshi/cli@latest icon preview • 出口工作流程 | 免费( 无密钥) |
generate_welcome_page_workflow | 安装后欢迎页面的设计简报:它必须驱动的动作,它要制作的插图,在哪里放置点击标记,以及返回的块 JSON | 免费( 无密钥) |
generate_pin_guide | 用于Chrome、Edge和Firefox的平到工具栏步骤,作为欢迎页的离线工具包,捆绑在扩展名中:带有图标和标记的 SVG, CSP- safe HTML, 11种语言的字幕作为 chrome.i18n 信件和脚本读取 action.getUserSettings().isOnToolbar默认概览; part 返回时 html 编号 : messages 编号 : script 编号 : css | 免费( 无密钥) |
generate_landing_page | 静态登陆页(主页) HTML 没有 JavaScript — 与柜式生成器相同的生成器; 返回 {html, bytes, warnings, nextSteps}。在 HTTPS 源头上主机并注册 URL upsert_hosted_page (饲料) HOMEPAGE_URL(中文(简体) ) | 免费( 无密钥) |
scan_extension | 对本地文物(.zip/.crx/.xpi)进行预印安全扫描,并有现场进展 | 1个扫描 |
publish_extension | 向Chrome/Firefox/Edge发布,并附上自己的商店证书(完全本地) | 免费 |
get_build_map | 作者的建筑地图 projectDir (单位:千美元)npx @extenshi/cli map:进步,步骤等待作者,步骤现在可以开始,每个步骤当前的任务,以及随作者的回答而提供的变体. 仅本地服务器 | 免费( 无密钥) |
show_build_map | 在一个显示 MCP Apps (Claude) 的客户端中绘制谈话中的构建图,可选择一步打开,作者选择变体,标记自己的任务或跳过一步;其他部分则返回作者地图的链接. 仅本地服务器 | 免费( 无密钥) |
report_build_step | 关于构建地图步骤的报告(启动、进展、用散列文件证明完成、停止),或记录作者在聊天中的答复(choice 编号 : redo) (中文(简体) ). 仅本地服务器 | 免费( 无密钥) |
request_build_review | 向作者提供1–8个变体,从地图上选择(icon概念,截图,列出副本),在工程中每个预览页或图像;返回与步骤的链接. 仅本地服务器 | 免费( 无密钥) |
在客户端显示 MCP 应用程序, (中文(简体) ), show_build_map 在对话中绘制地图( 页面) ui://extenshi/build-map) (中文(简体) ). 该页面称三个只应用工具, build_map_view, (中文(简体) ), build_map_answer 财务报告和审定财务报表 build_map_file; 服务器不让任何客户端发布广告 io.modelcontextprotocol/ui。 。 。 .
以存储 ID 识别扩展名
get_extension, (中文(简体) ), get_reviews, (中文(简体) ), get_security 财务报告和审定财务报表 scan_extension 接受 无论是 数字
目录 extension_id 或者说 扩展名 store_id 直接从商店 URL 的 id
通常是唯一精确的标识符:
{ "store_id": "cjpalhdlnbpafiamejdnhcphjbkeiagm", "store": "CHROME" } // Chrome/Edge: `store` required
{ "store_id": "dark-reader" } // Firefox: unambiguous
store c. 需要Chrome/Edge ID,因为两个仓库都使用相同的32个特性格式;
Firefox ids(slug,GUID,或电子邮件式)路由自动. 解析商店 ID 是免费的——只有
读取如下:.
贷项
每个账户都可获得10个读取和3个扫描(不需要卡片)的一次性免费津贴. 超越
购买从未到期的预付信用包(最多10 000个读取和每包1000个扫描).
打电话 get_credit_balance (免费)在运行大批量前检查所剩的.
管理信用 https://dojo.extenshi.io/biling (英语)。 。 。 .
配置
后端端点被编译入包并始终指向生产——只有API 键从环境读取.
| 新闻 var | 目的 |
|---|---|
EXTENSHI_API_KEY | ek_… 开发者密钥( 需要) |
开发
yarn build # tsc -> dist/
# Inspect locally:
EXTENSHI_API_KEY=ek_… npx @modelcontextprotocol/inspector node dist/index.js
释放由CI在npm上进行,并由拥有2FA的维护者手动批准;
./scripts/publish.sh 是本地中继倒计时(DRY_RUN=1 ./scripts/publish.sh
(以验证)。 断层需要节点22.14和npm11.15.
见 项目同步工作流程 用于CLI命令,修订冲突,证据新鲜和OAuth恢复.
独立支付应用程序
这些工具需要一个有独立薪酬支持的后端。 发展项目是可选的。 明确要求 pay.read 和(或) pay.write OAuth 范围,或给予本地 API 密钥付费权限 API 密钥. 年长的证书没有薪酬。 工具注册不会证明后端推出或SDK npm 发布.
| 工具 | 权限 | 行为 |
|---|---|---|
list_pay_apps | pay.read | 列出您的独立付费申请 。 不需要发展项目。 跟着下一位导师取得更多结果. |
create_pay_app | pay.write | 创建独立的付费应用程序;连接一个开发项目是可选的。 可选 trialDays 进行免费审判。 在每个呼叫中创建新应用程序: 超时后不要盲目重试 . |
get_pay_app | pay.read | 阅读您的薪酬申请、其可选项目链接和免费试用(trialDays) (中文(简体) ). |
get_pay_readiness | pay.read | 检查当前退出并启动先决条件 。 通关验收不能证明现场外部购买或SDK出版物. |
get_pay_payment_evidence | pay.read | 阅读Extenshi的付款分类账所证明的应用程序的付款路径,每个模式:结账,发放许可证,一个安装收到签名的许可证,第二次安装时恢复,退款被撤销. 不透明身份证和时间戳。 只有现场采购满足了释放的付款要求. |
link_pay_app | pay.write | 将您的工资申请与您的开发项目链接。 现有采购仍然附在 " 支付 " 申请之后. |
unlink_pay_app | pay.write | 删除可选的开发项目链接,而不删除付费数据. |
archive_pay_app | pay.write | 归档您的应用程序并停止新的检出 。 保存付款记录和现有应享权利. |
export_pay_data | pay.read | 导出您的应用程序数据一页 。 跟随下一条 Cursor 直至完全导出无效 。 提供行包括 sortOrder提议在付费墙上的位置。 客户/付款数据很敏感:只保存到作者控制的目的地;不粘贴在公共问题上. |
get_pay_seller | pay.read | 阅读销售者连接、公众简介、报价(与 sortOrder)和可公布的SDK密钥. 协议签署和KYC要求作者在浏览器中. |
connect_pay_seller | pay.write | 开始上线并返回浏览器动作 URL 。 提交人必须完成KYC和法律认可;绝不代表他们这样做. |
refresh_pay_seller | pay.write | 刷新当前付款提供者入职状态 。 这不能完成KYC或接受协议. |
set_pay_seller_profile | pay.write | 保存作者确认的公共销售者身份,支持和名词链接. 永远不要发明法律身份或条件. |
upsert_pay_offer | pay.write | 通过稳定的 SKU 创建或更新要约 。 在现有报价中,省略了保留所存储值的字段:只更改标题或描述,发送SKU和新文本,以及价格、特征和付费墙顺序(sortOrder保持原样。 需要一个新的 SKU kind, (中文(简体) ), amountMinor, (中文(简体) ), currency 财务报告和审定财务报表 title价格为小额货币单位。 只使用作者核准的价格,计费间隔和特性. |
archive_pay_offer | pay.write | 停止提供新离职的 SKU; 保存历史购买 . |
get_pay_offer_translations | pay.read | 这些要约的标题、说明和特征按键 <sku>/<field>,每个项目语言都有翻译状态;当项目交付时,付费墙会显示买方浏览器语言的报价. |
set_pay_offer_translations | pay.write | 保留要约译文中的一种语文;但自阅读以来原已更改的语文除外。 用保存的语言翻译和每种语言的状态回答;通过 view: "all_locales" 获取每种语言的翻译。 价格和SKU不变. |
set_pay_enabled | pay.write | 明确允许或禁用新的付款。 赋能是一种实事求是的商业变革:只有在作者授权和检查准备状态后才能这样做。 后端的先决条件仍然得到执行. |
set_pay_trial | pay.write | 设置免费审判 : trialDays (0-365)每次安装,从第一张许可证读取算入服务器; null 关掉 新的长度也使已经进行的审判移动. |
rotate_pay_key | pay.write | 生成一个新的可发布 SDK 密钥 。 先前的密钥仍然为已安装的扩展构建所接受; 这不是秘密撤销 。 永远不要盲目重试. |
主机连接器上的所有人批准
在主机连接器(OAuth sign-in)上,移动资金或向公众发布内容的更改是提议,而不是立即编辑: set_pay_enabled, (中文(简体) ), upsert_pay_offer, (中文(简体) ), archive_pay_offer, (中文(简体) ), archive_pay_app, (中文(简体) ), set_pay_seller_profile, (中文(简体) ), set_pay_trial, (中文(简体) ), update_uninstall_offer, (中文(简体) ), publish_privacy_policy 财务报告和审定财务报表 set_legal_translations (隐私政策和许可证条款)。 每个返回 status: "pending_approval" 带有 approvalId 还有一个 approvalUrl。除非所有者在道场打开链接并批准,否则不会改变; get_approval 报告结果。 一项提案在24小时后失效(政策为72小时),关于同一事项的更新的提案取代了更旧的提案。 对于一项政策或翻译,文本与提案一起被存储,因此所有者完全批准被公布的单词;如果其英文文本在两者之间被更改,翻译也会被拒绝. 提议编辑后,只有一些字段的名字被存储在提议时的其他术语中,包括价格和付费墙订单,因此所有者会批准它会保存的每一个术语.
当地人 ek_ API 密钥从 API 密钥 直接行动,和以前一样:持有它的人是主人自己的工具. 有了钥匙,这些工具立刻改变活状态,不返回 approvalId,而他们在本地软件包上的描述是这么说的。 唯一的例外是 request_license_terms_publication,它询问所有者的任何连接。 没有工具删除工程或扩展名 .
作者在浏览器中完成法律接受和Frade KYC. 读取 get_pay_readiness ; 启用、密钥旋转和提供更改需要明确的作者授权。 导出页载有私人金融数据,必须留在作者控制的目的地. 只有可公布的 SDK 密钥属于扩展名,从不包含开发者 API 密钥或 Frede 密钥.