Skip to main content
Glama
DeepSeek Capability Hub

DeepSeek Capability Hub

by NeoXider

Capability Hubは、DeepSeek Harnessとその他のMCPクライアント向けの、遅延(lazy)なMCPスキルブローカーです。ホストは、設定済み接続先サーバーすべてのツールスキーマのコンテキストコストを支払う代わりに、capability_hub という1つのコンパクトなツールを見るだけで済みます。

エージェントは軽量なカタログを検索し、権限を検査し、信頼できるサーバーを1つ起動し、ハブを通じて呼び出して、再び停止できます。スキル本文は、選択された後でのみ読み込まれます。

なぜ存在するのか

大規模な静的MCP構成はコンテキストを消耗させ、ツール選択のノイズを増やします。Capability Hubは、モデルから見える公開面を安定に保ちます。

search → inspect → enable → tools → call → disable
  • 固定された1つのスキーマだけがプロンプトに残ります。

  • 子ツールのスキーマは、要求されるまでモデルコンテキストの外に保持されます。

  • tools はデフォルトで名前と説明を返します。完全なスキーマはオプトインです。

  • MCPプロセスは遅延起動され、ハブプロセスの生存期間にだけ存在します。

  • スキルはメタデータによって発見され、一度に1つずつ読み込まれます。

  • 第三者の追加物は人間の承認キューに入ります。モデル自身が実行可能コード自己承認することはありません。

Related MCP server: capability-router

クイックスタート

要件:Node.js 22.19+ と pnpm

git clone https://github.com/NeoXider/deepseek-capability-hub.git
cd deepseek-capability-hub
pnpm install --frozen-lockfile
pnpm test
pnpm client -- --json '{"action":"search","query":"demo"}'

デフォルトのカタログには、同梱の echo MCPサーバーとサンプルスキルのみが含まれています。テスト実行時にサードパーティーパッケージをダウンロードしたり実行したりすることはありません。

DeepSeek Harness セットアップ

ハブをビルドし、examples/dsh/cordis.patch.yml をアクティブなHarnessプロファイルにマージして、リポジトリの絶対パスを調整してください。その後、Harnessを再起動します。

pnpm build

Harnessはモデル向けの単一ツール1つを公開します:

mcp__capability_hub__capability_hub

まずは次のように開始します:

{"action":"search","query":"web research"}

モデル向け契約

公開スキーマは意図的にフラットで、LM Studioのような制約付きデコードエンジンでも確実にコンパイルできるようになっています。任意の子引数はJSON文字列として渡されます。

ツールを発見して呼び出します:

{"action":"tools","name":"web-search-neo"}
{
  "action": "call",
  "name": "web-search-neo",
  "tool": "web_info",
  "argumentsJson": "{\"topic\":\"search_status\"}"
}

利用可能なアクション:

アクション

目的

search

コンパクトな機能メタデータを検索する

inspect

1つの機能(権限・設定・環境状況)を確認する

configure

configJson を通じて許可済みの非シークレット値を設定する

enable / disable

信頼できるMCPを1つ起動・停止する

tools

子ツールを一覧表示(スキーマ省略可能)

call

子ツール呼び出しを argumentsJson 経由でプロキシする

skill.load

承認済みローカルスキル本文を1つ読み込む

propose

信頼されない提案を entryJson から保存する

proposals

保留中の提案を一覧表示する

catalog.reload

承認済みカタログ状態を再読み込みする

実際の統合例

レビュー用の提案を以下に含めています。

  • Web Search Neo — 動的なウェブ調査とブラウザツール・ツールセット。

  • Unity CLI MCP — 公式のUnity CLI・トランスポート。そのツールリストは、Unity Editorが接続されている間だけ生成されます。

これらは例題であり、暗黙に信頼される既定値ではありません。承認前に、パス、バージョン、権限を確認してください。

人が承認するインストール(Human-gated installation)

モデルが作成した提案は data/state/pending に保存され、実行されません。別途人が操作するコマンドで承認してください。

node dist/src/admin.js approve <proposal-id> --state .\data\state --yes

その後、catalog.reload と enable を呼びます。パッケージはバージョン固定(ピン留め)か不変なGitリビジョンを推奨します。承認済みエントリでは、未検証の latest インストールに依存しないでください。

カタログ、シークレット、スキル

  • MCPトランスポート: stdio と streamable-http

  • テンプレート: ${catalogDir}、${packageDir}、許可リストに明示追加された ${config:key} 値のみ

  • シークレット: 環境変数の参照のみ。シークレットに似た設定キーは拒否されます。

  • スキル: 承認済みのローカル Markdown ファイルを、要求時たびに読み込む。上限 256 KiB。

  • 状態: 実行時設定と提案値はGitで無視される。

詳しい信用境界は SECURITY.md を参照してください。

現在の対応範囲

  • ツール呼び出しはプロキシされますが、子MCPのリソースとプロンプ (プロンプト)はまだブリッジされていません。

  • 再接続は明示的です:disable → enable。

  • リモートスキルのダウンロード、署名検証、サンドボックス化されたインストーラーは、今後のタスクです。

  • ホストシェルに無制限アクセスできるモデルは、プラグインローカルポリシーを迂回できます。外側の境界線としてHarnessの権限を利用してください。

関連プロジェクト

エージェント、コンテキスト、モデル、推論、チャットをアニメーション付きコンパクトデスクトップ表示したい場合は、 DeepSeek Harness Widget をご覧ください。

コントリビューション

Issue と、大きさを絞ったプルリクエストを歓迎します。新しい統合では、固定サンプル、最小限の権限説明、エンドツーエンドのテストを含めてください。

MIT © NeoXider

Available Tools

1 tool
capability_hubLazy MCP and skill capability hubA

Search and inspect a compact catalog, enable a trusted MCP only when needed, list its tools, proxy a tool call, or load one skill body. Shortest path: action "call" with name, tool and arguments starts the server by itself; use action "tools" (optionally with a query) first only when you do not know the tool name, and "enable" only to start one deliberately. Long results arrive in pages: continue with action "page" and the cursor printed on the last line. Avoid includeSchema unless you need the argument shape. Third-party proposals require human approval outside this MCP. Available capabilities — demo-echo (mcp): Bundled local MCP used to verify dynamic discovery, enable, tool listing, calls, and disable. | ml-experiment-review (skill): Review an ML experiment as a falsifiable, reproducible evidence package.

NameRequiredDescriptionDefault
kindNoOptional capability type filter.
nameNoExact capability name.
toolNoRaw child MCP tool name for call.
queryNoSearch text. With action search it filters the catalog; with action tools it filters that server's tool names and descriptions.
actionYesOperation to perform.
cursorNoFor action page: the cursor from a paged result's last line.
argumentsNoCall arguments as an object (e.g. {"url":"https://example.com"}). Prefer this over payloadJson for action call; the two must not be combined.
payloadJsonNoJSON object for the action: arguments for call (e.g. {"url":"https://example.com"}), non-secret whitelisted configuration for configure and enable, or a capability proposal for propose.
includeSchemaNoInclude full child tool schemas. Leave false unless arguments cannot be inferred.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare openWorldHint/readOnlyHint/destructiveHint, and the description adds real context beyond them: calls self-start the backing server (a side effect), results are paginated with a cursor printed on the last line, and third-party proposals need human approval outside this MCP. It does not say what enable/disable do to persistent state or how failures surface.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The shortest-path instruction is front-loaded and each sentence carries distinct operational information (routing, pagination, schema flag, approval gate). The trailing capability listing is useful for discovery but is volatile content embedded in a definition, adding length that will date quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-action dispatcher with no output schema, the description covers the critical call/tools/enable/page flows plus the approval constraint well enough to act on. Completeness falls short on the secondary actions (status, configure, disable, propose, proposals, catalog.reload), which an agent must infer from enum names alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds action-to-parameter coupling the schema does not express: name+tool+arguments for "call", query as an optional filter for "tools", cursor from the last line for "page". It does not clarify when payloadJson is required over arguments beyond the schema's own note.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names specific verbs and resources — search/inspect a catalog, enable an MCP, list its tools, proxy a call, load a skill body — so the hub's role is unmistakable. It omits any explanation of several enum actions (status, configure, disable, propose, proposals, catalog.reload), leaving those to the bare enum labels.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit shortest path (action "call" with name/tool/arguments auto-starts the server), states when to use "tools" instead (only when the tool name is unknown), and when to use "enable" (only to start deliberately), plus "avoid includeSchema unless...". Guidance is absent for the remaining actions, including the easily confused propose vs. proposals and configure vs. enable pairs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.10.3
    • Changedcapability_hub8 fields changed
      • changedInput schema / properties / arguments / additionalProperties
        Previous value: -{}New value: +true
      • addedInput schema / properties / arguments / properties
        Added value: +{}
      • removedInput schema / properties / arguments / propertyNames
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / cursor / maxLength
        Removed value: -80
      • removedInput schema / properties / name / maxLength
        Removed value: -80
      • removedInput schema / properties / payloadJson / maxLength
        Removed value: -200000
      • removedInput schema / properties / query / maxLength
        Removed value: -500
      • removedInput schema / properties / tool / maxLength
        Removed value: -500
  2. 1 tool updatev0.10.1
    • Changedcapability_hub2 fields changed
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "search",
        -  "inspect",
        -  "status",
        -  "configure",
        -  "enable",
        -  "disable",
        -  "tools",
        -  "call",
        -  "skill.load",
        -  "propose",
        -  "proposals",
        -  "catalog.reload"
        -]New value: +[
        +  "search",
        +  "inspect",
        +  "status",
        +  "configure",
        +  "enable",
        +  "disable",
        +  "tools",
        +  "call",
        +  "skill.load",
        +  "propose",
        +  "proposals",
        +  "catalog.reload",
        +  "page"
        +]
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "For action page: the cursor from a paged result's last line.",
        +  "maxLength": 80,
        +  "type": "string"
        +}
  3. 1 tool updatev0.8.0
    • Changedcapability_hub1 field changed
      • addedInput schema / properties / arguments
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Call arguments as an object (e.g. {\"url\":\"https://example.com\"}). Prefer this over payloadJson for action call; the two must not be combined.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
  4. 1 tool updatev0.3.1
    • Changedcapability_hub5 fields changed
      • removedInput schema / properties / argumentsJson
        Removed value: -{
        -  "description": "JSON object forwarded to the selected child MCP tool, for example {\"query\":\"MCP\"}.",
        -  "maxLength": 100000,
        -  "type": "string"
        -}
      • removedInput schema / properties / configJson
        Removed value: -{
        -  "description": "JSON object with non-secret configuration. Only catalog-whitelisted keys are accepted.",
        -  "maxLength": 100000,
        -  "type": "string"
        -}
      • removedInput schema / properties / entryJson
        Removed value: -{
        -  "description": "JSON capability proposal. It remains untrusted until a human approves it outside this MCP.",
        -  "maxLength": 200000,
        -  "type": "string"
        -}
      • addedInput schema / properties / payloadJson
        Added value: +{
        +  "description": "JSON object for the action: arguments for call (e.g. {\"url\":\"https://example.com\"}), non-secret whitelisted configuration for configure and enable, or a capability proposal for propose.",
        +  "maxLength": 200000,
        +  "type": "string"
        +}
      • changedInput schema / properties / query / description
        Previous value: -"Search text for names, descriptions, and tags."New value: +"Search text. With action search it filters the catalog; with action tools it filters that server's tool names and descriptions."
  5. 1 tool updatev0.1.0
    • First observedcapability_hub

TDQS

A3.9/5.0

Scored across 1 tool

Disambiguation3/5

There is only one tool, so there is no cross-tool misselection risk. However, capability_hub multiplexes many behaviors behind an action parameter, so the agent must distinguish search, enable, tools, call, page, and skill-loading modes internally.

Naming Consistency5/5

There is a single tool named capability_hub, using consistent snake_case, and its action values appear to follow a simple lowercase convention. With only one exposed tool, naming consistency is inherently strong.

Tool Count3/5

A one-tool gateway can be intentional for a capability hub that dynamically discovers and proxies other MCPs. Still, exposing all discovery, enablement, listing, invocation, paging, and skill loading through one polymorphic tool feels thin and pushes complexity into parameters.

Completeness4/5

The tool covers discovery, inspection, deliberate enablement, tool listing, proxied calls, pagination, and skill loading, which is broad lifecycle coverage for a hub. Minor gaps remain, such as no explicit disable action despite the demo-echo capability mentioning disable verification.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables agents to securely discover and invoke a centrally governed catalog of tools from distributed internal and external providers, with policy enforcement, quotas, inspection, and audit controls.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables agents to search a local catalog, load skills, inspect MCP tool schemas, and invoke selected tools through a single unified MCP tool, reducing per-request overhead.
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Gives AI agents a single MCP interface to discover, inspect, scope, and execute external capabilities—downstream MCP servers, HTTP APIs, and local tools—resolved on demand from a local index instead of preloaded catalogs. Enforces agent scopes, allow/ask/deny policies, health gates, and schema snapshots at execution time, with local execution traces.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables host agents to resolve tasks against a local library of reviewed Skills and Experts, then retrieve selected capabilities on demand through MCP tools without loading the full catalog into context.
    1
    MIT