Skills and MCP
omdsh keeps both capabilities behind DeepSeek Harness interfaces. Skills are discovered by the Harness skill registry and filesystem provider; MCP servers are adapted into one @deepseek-ai/dsh-mcp-client plugin instance per server. The TUI does not implement either protocol.
Skills
Skills are enabled by default. The filesystem provider searches these roots in priority order:
<project>/.dsh/skills<project>/.agents/skills$OMDSH_HOME/skills(or$DSH_HOME/skills, then~/.dsh/skills)~/.agents/skills
A skill may be a directory containing SKILL.md or a flat Markdown file. For example:
.dsh/skills/code-review/SKILL.md---
name: code-review
description: Review a change for correctness and maintainability.
---
Review the current diff, run focused tests, and report findings by severity.Skills share the normal slash-command catalog, following pi/OMP's flat model. Type /skill: to browse and filter them with concise descriptions inline, then press Enter to invoke one. The older /code-review form is still accepted for compatibility but is no longer advertised. The model receives the same catalog through the Harness skill tool and can load a matching skill on demand.
MCP
omdsh reads MCP configuration from:
$OMDSH_HOME/mcp.json,$DSH_HOME/mcp.json, or~/.dsh/mcp.json<project>/.dsh/mcp.json
Project definitions override same-named user definitions. A project MCP file can start local programs, so review it before launching omdsh in an unfamiliar repository.
The document uses the common mcpServers shape. A stdio server:
{
"mcpServers": {
"memory": {
"command": "mcp-server-memory",
"args": [],
"env": {
"MEMORY_FILE_PATH": "/absolute/path/to/memory.jsonl"
}
}
}
}A Streamable HTTP server:
{
"mcpServers": {
"github": {
"url": "https://example.com/mcp",
"headers": {
"Authorization": "Bearer token"
}
}
}
}Supported optional fields are enabled, timeout (or toolCallTimeoutMs), failOnStartupError, and the Harness reconnect object. Stdio entries additionally accept cwd; HTTP entries accept headers. String values support ${NAME} and ${NAME:-default} environment expansion, so credentials do not need to be stored directly in the JSON file. An unresolved placeholder without a default remains literal.
Discovered tools use mcp__<server>__<tool> names and enter the normal Harness tool registry. /mcp groups the connected tools by server; /tools shows them alongside native tools. Tool-list changes after an MCP reconnect update both views automatically. MCP resources and prompts are not bridged because the current Harness MCP client supports tools only.