Skip to main content
Glama

dsh_send

Send a message to DeepSeek Harness to continue an existing session or start a new one in a workspace, then use the returned run_id to wait for the background reply.

Instructions

Send a message to DeepSeek Harness. With session_id it continues that existing session (same context, no new session); with cwd or workspace_id it starts a new session there (a cwd that is not a workspace yet is registered in the sidebar first). Returns immediately with a run_id; the turn runs in the background. If the session is already working, mode followup (default) queues the message after the current turn and steer adds it to the running turn; each message gets its own run_id. The message is delivered verbatim as a user message, with no prefix or label added: write it in the language the user works in, self-contained (Harness does not see this conversation), and say who is asking only if it matters. Then wait for the reply with dsh_wait (or the wait_command it returns, where offered).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cwdNoWorkspace folder for a new session
modeNofollowup queues after the current turn (default); steer injects into a running turnfollowup
messageYesThe task or reply to send
session_idNoExisting session to continue
workspace_idNoHarness workspace for a new session (from dsh_list_workspaces)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.5.4

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and largely succeeds: it discloses the async return (run_id), that the turn runs in the background, the queue-vs-inject semantics, per-message run_ids, and the side effect that a non-workspace cwd is registered in the sidebar first. It omits error/permission behavior (e.g. invalid session_id) and any auth requirements, which is the only gap.

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?

Purpose and the session-vs-new distinction are front-loaded, then behavior and the next-step handoff. It is dense and somewhat long, but nearly every clause carries actionable information (verbatim delivery, language guidance, run_id-per-message). Minor tightening possible in the message-authoring advice.

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

Completeness5/5

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

For a complex async dispatch tool with no output schema and no annotations, the description covers what an agent needs: what is returned (run_id), that the turn is backgrounded, how to retrieve the reply (dsh_wait or wait_command), mode selection, and the cwd side effect. Nothing essential to calling it correctly is missing.

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 description coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema by explaining the role split between session_id (continue) and cwd/workspace_id (new session), including that cwd auto-registers a workspace. The mode/default semantics are largely duplicated from the schema's own descriptions.

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

Purpose5/5

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

Opens with a specific verb+resource ('Send a message to DeepSeek Harness') and immediately disambiguates the two entry modes: continue an existing session via session_id vs. start a new one via cwd/workspace_id. An agent can distinguish this from siblings like dsh_wait or dsh_list_sessions without opening any schema.

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

Usage Guidelines5/5

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

Explicitly states when to use which parameter (session_id vs cwd/workspace_id), when to use mode followup vs steer based on whether a session is already working, and names the follow-up tool ('wait for the reply with dsh_wait'). Routing to the next step in the workflow is spelled out.

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