dsh-TableRAG

September 2, 2026 · View on GitHub

English | 中文

dsh-TableRAG connects one built TableRAG catalog to a DeepSeek Harness profile. DSH starts the local read-only TableRAG stdio server through its shipped MCP client and exposes the catalog tools as mcp__tablerag__<tool>.

The bundle contains no spreadsheets, project YAML, DuckDB database, credentials, or Python runtime. TableRAG remains the owner of indexing, evidence, and read-only query behavior.

Prerequisites

  1. Install DeepSeek Harness.
  2. Install TableRAG, create a project YAML, and build its index.
  3. Keep the absolute project YAML path and the table-rag executable path available to the PowerShell process that launches DSH.

The TableRAG repository documents project configuration and index construction. A source checkout typically builds with:

uv sync --extra dev --locked
uv run table-rag build --project projects\my-project.local.yaml

Install from GitHub

Set the selected catalog in the same PowerShell process that installs and launches DSH. Set TABLERAG_EXECUTABLE when table-rag is not on PATH:

$env:TABLERAG_PROJECT = 'C:\path\to\TableRAG\projects\my-project.local.yaml'
$env:TABLERAG_EXECUTABLE = 'C:\path\to\TableRAG\.venv\Scripts\table-rag.exe'
dsh plugin --profile web add github:BitDG/dsh-TableRAG
dsh --profile web --dump-config
dsh --profile web

--dump-config must show the mcp-tablerag row. A missing project variable, invalid executable, missing index, or failed MCP discovery aborts plugin activation instead of publishing an empty connection.

Remove the bundle with:

dsh plugin --profile web remove dsh-tablerag

Use another profile name to keep the catalog away from unrelated sessions. Set optional TABLERAG_CWD only when the MCP child process must start outside the project YAML directory.

What the model gets

The DSH MCP client discovers the TableRAG tools and registers stable names such as:

  • mcp__tablerag__get_project
  • mcp__tablerag__find_tables
  • mcp__tablerag__search_knowledge
  • mcp__tablerag__get_record

Calls and bounded results pass through the normal DSH tool pipeline and session log. Verify a deployment by calling mcp__tablerag__get_project and checking the returned project identity and catalog statistics.

How it works

cordis.patch.yml inserts one @deepseek-ai/dsh-mcp-client row:

  • TABLERAG_PROJECT selects the project YAML and catalog.
  • TABLERAG_EXECUTABLE selects the TableRAG console script, defaulting to table-rag on PATH.
  • TABLERAG_CWD optionally overrides the child working directory.
  • serverName: tablerag keeps model-facing tool names and permission rules stable across restarts.
  • failOnStartupError: true prevents silent startup without TableRAG tools.

The selected DSH profile owns connection lifetime and reconnect behavior. TableRAG continues to own spreadsheet discovery, index construction, DuckDB access, evidence, and read-only query semantics.

Limitations

  • One bundle instance connects one project YAML under the fixed tablerag namespace. Add a separately named profile row when one DSH process must expose another catalog.
  • DSH consumes MCP tools only. The optional tablerag://catalog MCP resource is not bridged, but equivalent project and table information is available through tools.
  • Environment variables belong to the launching process. Use a trusted local launcher or an explicit profile-row override when paths must persist across shells. Do not commit machine-specific paths or credentials.
  • This bundle does not install TableRAG, build an index, or modify source spreadsheets.

Development

npm test
npm run pack:check

For a local checkout installation:

dsh plugin --profile web add 'file:C:/path/to/dsh-TableRAG'

Licensed under Apache-2.0.