DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

dsh-gemini-tool-schema

Gemini Tool Schema

DeepSeek Harness plugin — normalize tool schemas into the strict OpenAPI 3.0 subset that Gemini function declarations accept (fixes HTTP 400 on MCP and built-in tools).

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add dsh-gemini-tool-schema@0.3.0
READMECompatibilityVersions

Compatibility and provenance

Gemini Tool Schema is published as dsh-gemini-tool-schema and currently resolves to version 0.3.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
any
Release source
npm
Registry updated
11/4/2026

Versions

0.3.0stable
10/16/2026

Related plugins

Loading related plugins…

Latest
0.3.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
81 kB
Files
14
Surface
any
License
MIT
Source
npm
Weekly downloads
515
Security scan
✓ v0.3.0 scan passed
View source ↗Project homepage ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in models-usage.

Experimental Cot Translation Bundle@deepseek-ai/dsh-experimental-cot-translation-bundleExperimental machine translation of expanded reasoningWhale Widgetdsh-whale-widgetDeepSeek balance whale widget in the bottom-right corner of the DSH Web interface: balance/today’s usage/peak-off-peak pricing, customizable bubble click sequence (text/balance/today/peak-off-peak/image/random phrases and parallel weighted selection), per-line styles and fonts, floating quick editinOur Free Model@ebony-vinyl/dsh-our-free-modelOur Free Model — Install this plugin in dsh to use cutting-edge models including DeepSeek V4.1 Flash and Kimi K3, with no login, registration, or API Key required. The desktop version also offers an EAC co-payment channel; starting with 2.0, it supports ten account channels: LobsterAI, Qoder, TRAE, Usage@linxin666/dsh-usageUsage statistics plugin for the dsh web GUI: per-provider balance and coding-plan quota detection plus a live token usage ledger, with a compact price glance card above the sidebar's Settings row

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