BUILT FOR THE MCP TOOL-CATALOG SURGE

DeepSeek Harness can load 1,000 MCP tools.
Your model shouldn't read all 1,000.

MCP Lens is a DeepSeek Harness MCP plugin for large MCP tool catalogs. It exposes two stable interfaces, uses deferred loading to reveal exact schemas only when needed, and calls the selected server and tool explicitly.

Local-only calculator · No schema upload · MIT licensed

MODEL-FACING MCP SURFACE

1,000 → 2

tools to stable interfaces

FIXED COMPONENT FIXTURE

647,962 B → 1,114 B

tool-schema JSON, not tokens

LIVE THREE-TASK PILOT

3 / 3 ↔ 3 / 3

completion tied; Lens added search

WHY NOW / PUBLIC SIGNALS

The tool-catalog tax is showing up before the first useful call.

These fresh user reports describe the same failure shape from different stacks: standing schemas, prompt-cache churn, and tools leaking across workspace boundaries. Each card keeps the source's evidence boundary visible.

HOW IT WORKS

One stable gateway instead of a changing wall of schemas.

The model sees the same two MCP interfaces as your catalog grows. Exact schemas enter context only for a small ranked result set.

  1. 01

    KEEP THE SURFACE FIXED

    Register mcp_search and mcp_call.

    Remote tool definitions stay behind the gateway instead of becoming standing model-facing tools.

  2. 02

    DEFERRED LOADING

    Search, rank, then reveal exact schemas.

    The model asks in natural language. MCP Lens returns a bounded candidate set with exact server, tool, and input schema.

  3. 03

    EXPLICIT EXECUTION

    Call one exact capability through the policy gate.

    The final server/tool identity is checked again before MCP Lens opens the lazy connection and invokes it.

IS THIS FOR YOU?

Use MCP Lens when catalog growth becomes a model problem.

GOOD FIT

Your agents have dozens, hundreds, or 1,000 MCP tools.

  • Multiple MCP servers share overlapping tool names.
  • You care about a stable prompt cache and smaller standing tool surface.
  • You need explicit allow/deny rules at the final server/tool identity.
  • You want a reproducible path before changing production configuration.

SKIP IT FOR NOW

Your catalog is small, fixed, and already easy for the model.

  • You expose only a handful of stable tools.
  • Your provider already performs equivalent deferred tool loading.
  • You cannot explicitly enumerate trusted MCP capabilities.
  • You need an OS sandbox rather than a capability gateway.

REPRODUCIBLE EVIDENCE

Read the metric before you read the headline.

MCP Lens separates component measurements, retrieval checks, and live model observations so a schema-byte result never becomes a universal token, cost, latency, or quality claim.

A / COMPONENT

Frozen 12 / 100 / 1,000-tool fixture

Compares serialized registered MCP tool-schema JSON using the same local fixture and the official direct client baseline.

Open benchmark method ↗

B / RETRIEVAL

12 fixed queries, fully keyless

The checked-in retrieval fixture measured Recall@1, Recall@5, and MRR at 1.0. It is a small frozen set, not a general retrieval claim.

Inspect the fixture ↗

C / LIVE PILOT

Three tasks, same Harness and server

Both arms completed 3/3 tasks. The Lens arm added search. This validates those cases only—not general quality or latency.

Read the pilot boundary ↗
npm ci && npm run verify && npm run bench -- --output benchmark.jsonClone and reproduce ↗

TRUST BOUNDARIES

Fail closed first. Open only what the agent needs.

Default deny

allowTools: [] exposes no remote capability. You opt in exact trusted patterns.

Deny wins

denyTools overrides allow rules in both search results and calls.

Call-time gate

The exact server/tool identity is checked again immediately before execution.

Lazy and bounded

No MCP endpoint is contacted at activation; connections open on demand and idle ones close.

Security boundary: MCP Lens narrows model-facing capability exposure and applies plugin policy. It does not sandbox a remote MCP server, its process, or its credentials.

COPY-PASTE QUICKSTART

Install, allow two read-only tools, and ask your first question.

For an existing DeepSeek Harness web profile, follow this current path. Every block is ready to copy. MCP Lens still starts from default deny; this example opts in only two query tools from the public official MCP docs server.

  1. 01

    INSTALL FROM NPM

    Install the current preview into the web profile.

    dsh plugin --profile web add dsh-mcp-lens@next

    Reproducible pin: dsh-mcp-lens@0.1.0-rc.9.

  2. 02

    OPEN THE PROFILE PATCH

    Edit the web profile's user layer.

    ~/.dsh/profiles/web/cordis.patch.yml

    This is the default path when DSH_HOME is unset. If the file contains only [], replace it; otherwise append a new top-level item.

  3. 03

    ALLOW TWO READ-ONLY TOOLS

    Connect the public official MCP documentation server.

    - id: mcp-lens
      config:
        servers:
          - name: mcp-docs
            transport: streamable-http
            url: https://modelcontextprotocol.io/mcp
    
        cachePath: !!js dshHomePath('mcp-lens/catalog.json')
        allowTools:
          - mcp-docs/search_model_context_protocol
          - mcp-docs/query_docs_filesystem_model_context_protocol
        denyTools: ['mcp-docs/submit_feedback']

    The two explicit allowTools entries are the only remote capabilities exposed by this example. The feedback tool remains denied; deny rules win. Remote server contracts can change, so the final test prompt remains part of setup validation.

  4. 04

    VALIDATE, THEN START

    Inspect the composed config before booting.

    dsh --profile web --dump-config
    dsh --profile web

    Stop and fix the profile if the dump reports an error.

  5. 05

    TRY IT

    Ask normally—no router tool names required.

    Use the official MCP documentation server to explain when an MCP client should use Streamable HTTP.

    MCP Lens handles mcp_search and mcp_call internally.

FAQ / DEEPSEEK HARNESS MCP

Nine straight answers for agents with large tool catalogs.

01What problem does the DeepSeek Harness MCP plugin solve?

MCP Lens targets large MCP tool catalogs. It keeps remote schemas out of the standing model-facing surface, then lets the model search for and call the specific capability it needs through two stable interfaces.

02How does MCP Lens keep a large MCP tool catalog out of each request?

DeepSeek Harness registers mcp_search and mcp_call instead of every remote capability. Search returns a small ranked set with exact input schemas; call invokes one explicit server and tool.

03Does MCP Lens guarantee lower token cost?

No universal token or cost claim is made. The reproducible fixture measures serialized tool-schema JSON bytes, not provider tokens. Your total depends on model, provider accounting, prompt history, tool results, and cache behavior.

04What did the benchmark actually measure?

The frozen component fixture compares registered MCP schema JSON at 12, 100, and 1,000 tools and tests retrieval on 12 fixed queries. A separate three-task DeepSeek Harness pilot tied 3/3 completion in both arms; it is not a general quality or latency benchmark.

05How is this different from an MCP manager or dynamic tool injection?

Managers primarily configure or toggle servers. MCP Lens is the runtime gateway: its model-facing contract stays at two interfaces, while deferred loading reveals exact schemas only after search and preserves an explicit server/tool identity for the call.

06How do allowTools and denyTools work?

The default allowTools list is empty, so no remote capability is exposed until you opt in. Patterns match the final server/tool identity, and denyTools wins in both search and call paths.

07Is policy checked again when a tool is called?

Yes. MCP Lens applies the same policy to the exact server/tool at search and call time, with an additional pre-execution guard. It narrows capability exposure, but it is not an operating-system sandbox.

08How do I install MCP Lens?

Run dsh plugin --profile web add dsh-mcp-lens@next, edit ~/.dsh/profiles/web/cordis.patch.yml, and add the official MCP docs server with only mcp-docs/search_model_context_protocol and mcp-docs/query_docs_filesystem_model_context_protocol in allowTools. Validate with dsh --profile web --dump-config, start with dsh --profile web, then ask: “Use the official MCP documentation server to explain when an MCP client should use Streamable HTTP.” Pin dsh-mcp-lens@0.1.0-rc.9 for a reproducible install.

09Is MCP Lens an official DeepSeek product?

No. MCP Lens is an independent, MIT-licensed open-source community plugin maintained by labmimors. It is not affiliated with or endorsed by DeepSeek AI.

THE CATALOG CAN GROW. THE INTERFACE CAN STAY SMALL.

Put 1,000 MCP tools behind two stable interfaces.