DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-gemini-tool-schema

Gemini Tool Schema

DeepSeek Harness 插件 — 将工具架构规范化为 Gemini 函数声明所接受的严格 OpenAPI 3.0 子集(修复 MCP 和内置工具的 HTTP 400 错误)。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-gemini-tool-schema@0.3.0
README兼容性版本

兼容性与来源证明

Gemini Tool Schema 以 dsh-gemini-tool-schema 发布,当前版本为 0.3.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
npm
Registry 更新时间
2026/11/4

版本

0.3.0stable
2026/10/16

相关插件

正在加载相关插件…

最新版
0.3.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
81 kB
文件数
14
Surface
any
许可证
MIT
发布源
npm
周下载
515
安全扫描
✓ v0.3.0 扫描通过
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 models-usage 分类下经过校验的插件。

Experimental Cot Translation Bundle@deepseek-ai/dsh-experimental-cot-translation-bundle扩展推理的实验性机器翻译Whale Widgetdsh-whale-widgetDSH Web 界面右下角的 DeepSeek 余额小鲸鱼挂件:余额/今日已用/峰谷定价、自定义泡泡点击序列(文本/余额/今日/峰谷/图片/随机语句与并列加权选择)、逐行样式与字体、悬浮快捷编辑、音效与每轮消耗、自定义角色/动图/音效、吸附与翻转自定义Our Free Model@ebony-vinyl/dsh-our-free-modelOur Free Model — 在 dsh 里装上这个插件即可,无需登录、注册或填 API Key,就能使用包括 DeepSeek V4.1 Flash、Kimi K3 在内的前沿模型,桌面端另有 EAC 协付渠道;2.0 起接入 LobsterAI、Qoder、TRAE、Cline、Loomy、Raccoon、MiniMax、ZCode、Gemini 十个账号渠道(原有匿名免费通道保留)(登录、账号池、积分领取、本地 OpenAI 网关与局域网转发、数据看板与运行日志),六页毛玻璃界面统一呈现。Usage@linxin666/dsh-usage用于 dsh Web GUI 的使用统计插件:检测各提供商的余额和编程套餐配额,并实时记录令牌使用情况;侧边栏 Settings 行上方显示紧凑的价格概览卡片

README

dsh-gemini-tool-schema

Normalize the tool schemas sent to the model into the strict OpenAPI 3.0 subset that Gemini's function declarations accept. A TypeScript plugin for DeepSeek Harness.

English | 中文

The problem

Strict providers accept only a subset of JSON Schema. Google Gemini's functionDeclarations[].parameters rejects the whole request (HTTP 400) when:

Real errorOffending schemaSource
schema didn't specify the schema type field{ anyOf: [{type:'string',…}, {type:'null'}] } — no typePlaywright MCP browser_emulate_media.colorScheme (z.string().nullable())
properties[v_types].items: missing field{ type: 'array' } — no itemsLingshu MCP lingshu_cg / lingshu_stg (19 params)
properties[permission].enum[3]: cannot be emptyenum: [..., '']DSH built-in task_board_update.permission

All three are legal elsewhere, which is why the failure only shows up on a Gemini-flavoured route.

Why a Harness hook

An MCP proxy only reaches the servers it wraps. Built-in tools and tools registered by other plugins never cross an MCP transport, so normalizing at Harness assembly time is the only fix that covers every tool at once.

Install

git clone https://github.com/ChenXu233/dsh-gemini-tool-schema.git
cd dsh-gemini-tool-schema && npm install && npm run build

Append to <DSH home>/profiles/<profile>/cordis.patch.yml:

- insert:
    - id: gemini-tool-schema
      name: '/absolute/path/to/dsh-gemini-tool-schema/dist/index.js'
      config:
        mode: list
        apis: ['gemini', 'google', 'vertex']

Or npm install dsh-gemini-tool-schema and mount it by package name.

Configuration

FieldDefaultMeaning
modelistall every request · list matching APIs only · off disabled
apis['gemini','google','vertex']API patterns, compiled as regular expressions
unknownApiapplyWhen the route cannot be read: apply or skip
itemsFallback{type:'string'}Element schema for arrays that omit items
nullabletrueEmit nullable: true for null unions
dryRunfalseReport and lint, but send the original schemas
logFile / logLevelnone / infoOne diagnostic line per assembly
dumpDir / dumpSchemasnone / trueDump the model-facing tool set for offline auditing

Patterns match against provider/model (e.g. gemini-lumiya/gemini-4-argon) and accept substring, regex, and /pattern/flags forms; an entry that does not compile degrades to a case-insensitive substring match. '*' matches everything, or set mode: all.

Rules

Every node gets a type; every array gets items; enum entries are never empty (and const cannot reintroduce one); $ref/$defs are inlined cycle-safely; unsupported keywords are stripped and the remaining scalars pass an allow-list; required is narrowed to real properties.

Development

npm test        # Node ≥22.6 runs the TS tests directly — 36 tests
npm run build   # tsc → dist/

License

MIT © 2026 ChenXu233