DeepSeek Harness plugin

dsh-netcafe

DeepSeek Harness bundle for AI NetCafé's hosted tools. One install for the full catalogue, or pick one of four focused packs (tables, dev kit, doc flow, China facts) so you only pay the context cost

Jump to install

Source facts

Repository
mario03690/dsh-netcafe
Latest update
Aug 22, 2026
Category
Development & Runtime
GitHub stars
0
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/mario03690/dsh-netcafe
Plugin: dsh-netcafe
Author: mario03690

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

dsh-netcafe

![China: reachable](https://ainetcafe.com/watch-cn?s=badge-own)

A DeepSeek Harness bundle that adds AI NetCafé's hosted outcome tools to your dsh profile in one install.

It is a thin configuration layer — it ships no tool code of its own. All it does is insert one pre-configured @deepseek-ai/dsh-mcp-client row pointing at a remote MCP server, so you don't have to hand-write the YAML. If you'd rather write those six lines yourself, the config is documented here and you don't need this package.

What you get

Tools register as mcp__netcafe__<name>. Start with what_can_you_do — describe your task in any language and it returns exactly which tools here do it, with ready-to-run calls (deterministic, free, never rate-limited). The main endpoint exposes the curated core set; a few worth naming:

ToolWhat it does
extract_invoicesA batch of up to 20 invoices → one ledger-ready table. Every row is checked in code — net + tax must equal gross — and the batch total is re-added independently, so a row the model misread is flagged with the exact difference instead of quietly landing in your books. Mixed currencies get no batch total on purpose: adding them would be an accounting error.
extract_statementBank/credit statement PDF → structured transactions, with an arithmetic reconciliation check (opening + credits − debits = closing). If it doesn't balance, it says so and points at the row where the running total first breaks, instead of handing you clean-looking wrong data.
extract_tablesTables out of PDFs, with schema alignment — give it a target column set and heterogeneous documents come back on the same columns. Rows it isn't sure about are flagged, not guessed.
transpile_sqlSQL between dialects (mysql, postgres, bigquery, snowflake, clickhouse, doris, starrocks, …). Deterministic — a real parser, not a model — so the same input always gives the same output, and syntax errors come back with line and column.
create_task (watch_reachability)Subscribe a URL to daily China-reachability checks for 30 days — notified only on state change. Pair it with the live README badge: !China, refreshed daily. Weekly public report: <https://ainetcafe.com/lab/china-weekly>
china_reachabilityWhether a URL is reachable from a real mainland-China network vantage point, with latency, HTTP status and the IP that China's DNS resolves to. The server genuinely sits on a China Mobile backbone; this is not a guess from an overseas VPS.
check_resumeWhether an ATS can actually parse a résumé (text extractable, contacts findable, multi-column layouts, tables). Rule-based and reproducible — same file, same score tomorrow.
remember / recallCross-session memory. Keyed to your AllRouter key or an anonymous workspace token, so a later session — or a different machine — picks up where you left off.
create_taskHand a recurring job to a hosted runner (watch a page, re-run a question on a schedule). It runs on our servers and notifies you only when the result actually changes, so nothing has to stay open on your side.

Full list: <https://ainetcafe.com/tools>

Or install just one pack

Each pack is also a standalone repo — install exactly one capability set, pay the context cost of nothing else: dsh-china-facts · dsh-watch · dsh-memory · dsh-docflow · dsh-tables · dsh-imagegen (image gen, free trial) · dsh-adversarial-review · dsh-product-planning · dsh-code-review

One dsh profile rarely needs both spreadsheet cleanup and the Chinese lunar calendar, and every tool description costs tokens on every session. So the same tools are also served as four focused endpoints — pick one and you only pay the context cost of what you actually use.

PackEndpointWhat it is
Tables/mcp/tableReconciliation that refuses to guess. Match a bank statement against a ledger with no shared reference — one invoice paid in instalments, one payment covering several invoices. Ambiguous splits are reported, never forced. Reads and writes real .xlsx (dates restored, leading zeros kept). Also: entity dedupe, table diff, messy-CSV cleanup.
Dev kit/mcp/devJSON↔YAML, validate JSON, line diff, regex test, JWT decode, SQL dialect transpile, timezone and unit conversion.
Doc flow/mcp/docsMarkdown → PDF / Word / PowerPoint / EPUB / HTML, and PDFs merged, split, rotated, watermarked.
China facts/mcp/cnMainland reachability from a real China backbone, statutory holidays including make-up workdays, offline ID and mobile-number validation, lunar calendar.

Making a one-off check permanent

Every tool above is a single call and free. What is not free is having something keep running after your session ends — re-checking a page, re-running a reconciliation each month, watching whether an endpoint is still reachable from mainland China — and telling you only when the answer changes.

create_task(kind="reachability", input="https://your-api.com")

That needs a workspace token (?w=ws_... on the MCP URL). The difference is not the capability; it is who keeps it alive between your sessions.

To use one instead of the full catalogue, comment out the mcp-netcafe row in cordis.patch.yml and uncomment the pack you want — the rows are already there.

All four are listed in the official MCP registry as com.ainetcafe/netcafe-tables, -devkit, -docflow and -china.

Nothing in these four packs calls a language model or a third-party API. They compute locally on our own servers, so results are deterministic and repeatable, and they cannot break because someone else changed their API. Anything involving counts or money returns its own arithmetic proof — and says so plainly when the numbers do not reconcile, instead of handing back a table nobody can check.

<!-- TOOLS:BEGIN -->

What's in this pack

34 tools, read from the live endpoint on 2026-08-22 — this table is generated, not hand-written, so it cannot drift away from what tools/list actually returns. The Arguments column is what the tool genuinely reads; it comes from the tool's own declared input schema.

ToolWhat it doesArgumentsPrice / call
what_can_you_doDescribe a task in plain language (any language) and get back exactly which tools on this server do it, with ready-task
list_appsList the open-source AI applications hosted and ready to run at AI NetCafé (ainetcafe.com). Each one normally requicategory
get_appFull details of one hosted application: what it does, how to use it, measured benchmark scores, source repository,slug
ask_modelSend a prompt to one specific large language model and get the answer plus its exact cost in USD. Useful when you wprompt, model, system, max_tokens
compare_modelsRun one prompt across multiple LLMs in parallel and return every answer side by side with its real measured cost anprompt, models, system
list_modelsList every model callable through AI NetCafé with its input/output price per million tokens, so you can pick by costier
rememberPersist a durable memory: an architecture decision, a stable user preference, a verified bug fix, or an important dcontent, kind, project
recallRetrieve previously stored memories, optionally filtered by search query and/or project. Call at the start of workquery, project, limit
web_searchSearch the live web through a self-hosted SearXNG meta-search (aggregates dozens of engines, no tracking). Returnsquery, max_results
fetch_pageFetch any public URL and return LLM-ready clean Markdown (rendered via Crawl4AI, handles JS pages). Use after web_surl
model_costsWhat one call actually costs on each model, measured. Vendors publish per-million-token list prices, but a call's cdays
ai_visibilityAudit a URL for AI visibility: which AI crawlers robots.txt actually allows (parsed per user-agent group, not keywourl$0.003
pdf_to_markdownConvert a PDF (or a scanned page image) into clean Markdown that keeps headings, lists and tables, and puts multi-curl$0.02
extract_tablesExtract tables from a PDF into structured rows (JSON + CSV). Pass fields to force a fixed set of columns — that aliurl, fields$0.02
extract_statementTurn a bank statement or transaction PDF into a clean transaction table (JSON + CSV), then cross-check it: openingurl$0.03
json_yamlConverts JSON to YAML or YAML to JSON. It works out which one you gave it, so you do not have to say. A parse failutext, to$0.001
validate_jsonChecks that text parses as JSON, and optionally that required keys are present with the right top-level types. Retutext, schema$0.001
diff_textReturns which lines were added and which were removed, with line numbers — computed with a longest-common-subsequena, b$0.002
jwt_decodeDecodes the header and payload of a JWT and reports issued-at / expiry as readable timestamps plus seconds remainintoken$0.001
regex_testRuns a regular expression against sample text and returns every match with its position and capture groups (named gpattern, text, flags$0.001
diff_tablesMatches rows across two CSVs on a key column and reports three things: keys only in A, keys only in B, and keys inurl_a, url_b, text_a, text_b, key$0.003
clean_tableTidies a spreadsheet export: removes duplicate rows, trims whitespace (half-width and full-width — Chinese exportsurl, text, ops, keep, split_column, split_by$0.003
merge_tablesCombines up to 20 CSVs into a single table. Headers do not have to match: columns are unioned and a file missing aurls, texts$0.004
reconcile_ledgerReconciles two sets of records — your books against a bank, platform, or supplier statement. Matches rows on a keyurl_a, url_b, text_a, text_b, key, amount$0.006
extract_invoicesGive it up to 20 invoice URLs (PDF or page images) and get back one table ready to post: number, date, seller, buyeurls$0.05
create_taskCreate a task that runs on a schedule in our cloud — you do not keep anything running. It only notifies you when thkind, input, interval_seconds, notify_url
list_tasksShow the scheduled tasks on this workspace, when each runs next, how many times it has run and what it has cost so— (no arguments)
get_task_runsRecent runs of one scheduled task: what it returned, whether the result changed, and what each run cost.task_id, limit
delete_taskStop and remove a scheduled task and its run history.task_id
transpile_sqlConvert a SQL statement from one dialect to another — mysql, postgres, sqlite, tsql, oracle, snowflake, bigquery, rsql, read, write$0.001
china_reachabilityFetch a URL from a real mainland-China network egress and report HTTP status, latency and China DNS resolution. Ansurl$0.003
render_diagramTurn diagram-as-code into an image: Mermaid, PlantUML, Graphviz/DOT, C4, Excalidraw and 20+ more (self-hosted Krokisource, type, format
check_jobGet the status or result of a job started by deep_research, translate_pdf, or make_slides. Poll every 15-30 secondsjob_id
build_appTurn one plain-language description into a LIVE single-page web tool: code is generated, deployed to managed hostindescription, name, visibility, refine

in the price column means the tool is not metered per call (session/trial-gated instead). Failed calls are never charged. Check it yourself:

curl -s -X POST https://ainetcafe.com/mcp -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

<!-- TOOLS:END -->

Install

dsh plugin --profile <your-profile> add dsh-netcafe

@deepseek-ai/dsh-mcp-client is a peer dependency — it ships with dsh, so in a normal install you already have it. If your profile doesn't, add it explicitly:

dsh plugin --profile <your-profile> add @deepseek-ai/dsh-mcp-client

Uninstall

dsh plugin --profile <your-profile> remove dsh-netcafe

That removes the bundle's layer; no state is left behind on your machine. Anything you stored with remember lives on the server against your key — call forget first if you want it gone.

Supported versions

  • Built against @deepseek-ai/dsh-mcp-client@0.0.1-rc.1; **dsh v0.1 developer preview (released

2026-08-13, Cordis v4) uses the same MCP client config shape**, which is the only surface this bundle touches. If a later preview changes it, open an issue — same-day fix.

  • **dsh is in developer preview and its maintainers explicitly warn about compatibility-breaking

changes.** This bundle deliberately depends only on the MCP client's config shape — the narrowest surface available — but if dsh renames or restructures that plugin, this will break until updated. Open an issue and it'll be fixed.

  • The MCP server itself speaks protocol 2025-06-18 over Streamable HTTP and is versioned

independently of dsh.

Cost, quota and privacy

  • Free anonymous quota, no signup. Every response reports the exact USD it cost.
  • When the free quota runs out, the response tells you how to continue — either an

AllRouter key in an Authorization header (billed to you at direct token rates), or a per-call x402 payment. Nothing silently fails.

  • Documents you send are processed in memory and not retained. Memory you store with remember is

kept against your key until you forget it.

  • The URL in the bundled config carries ?s=dsh-plugin. That is a channel tag so we can tell

which distribution path actually gets used — it identifies the path, not you. Drop it by writing your own config row if you'd rather not send it.

Disclosure

Built and maintained by the people who run ainetcafe.com — this is our own service, not a neutral third-party integration. The tools have a free tier and paid usage beyond it.

License

MIT

Compatibility & permissions (at a glance)

SignalThis plugin
Runtimedsh v0.1 developer preview (2026-08-13, Cordis v4). Touches only the MCP client config shape — the narrowest surface available. Verified against a live endpoint on 2026-08-17.
What runs locallyNothing. Ships one cordis.patch.yml row; there is no tool code, no build step and no lifecycle script in this package.
Filesystem accessNone.
Shell / process accessNone.
Network accessOutbound HTTPS to ainetcafe.com only, from the MCP client that dsh already ships.
CredentialsNone required. No signup, no API key for the free tier. An optional AllRouter key, if you supply one, is sent by dsh as a request header and is never stored by us.
Data retentionDocuments and prompts are processed in memory and not retained.
DependenciesOne peer dependency: @deepseek-ai/dsh-mcp-client (ships with dsh).
LicenseMIT (see LICENSE).
PublisherThe team that runs ainetcafe.com — our own hosted service, free tier plus paid usage. Issues get a same-day reply.

> A directory listing is not a security review. Read cordis.patch.yml — it is short enough to read in full in under a minute.