Skip to content
Back to skills

Mcp Remote Qmd

CSecurity

Configure a companion agent (Claude Desktop, Claude Code, or any MCP client) to consume a remote QMD index over SSH via the mia-qmd `qmd mcp-remote` proxy. Triggers on: "set up remote qmd", "configure qmd over ssh", "connect to eury qmd", "install mcp-remote-qmd", "/mcp-remote-qmd", or when the user wants an agent to search Guillaume's curated knowledge ground (wikis-md, GUILLAUME-md, iaip-artefacts-md, miadi-md, llms-txt, mia-code-rispecs-md) without bash-shelling whispering_inquiry.sh. NOT ...

  • 4 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 9, 2026
ai-agentsshellbashnode

Works with

  • claude code
  • claude desktop
  • cli
  • mcp

Security analysis

C67/100
  • criticalAccesses sensitive system or user directories
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned October 9, 2026

npx -y skills add jgwill/miadi-orchestration-kit --skill mcp-remote-qmd --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Mcp Remote Qmd?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Mcp Remote Qmd
[![Security: C — Skills Directory](https://www.skillsdirectory.com/api/skills/jgwill-mcp-remote-qmd/badge)](https://www.skillsdirectory.com/skills/jgwill-mcp-remote-qmd)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: mcp-remote-qmd
description: >
  Configure a companion agent (Claude Desktop, Claude Code, or any MCP client) to
  consume a remote QMD index over SSH via the mia-qmd `qmd mcp-remote` proxy.
  Triggers on: "set up remote qmd", "configure qmd over ssh", "connect to eury qmd",
  "install mcp-remote-qmd", "/mcp-remote-qmd", or when the user wants an agent to
  search Guillaume's curated knowledge ground (wikis-md, GUILLAUME-md, iaip-artefacts-md,
  miadi-md, llms-txt, mia-code-rispecs-md) without bash-shelling whispering_inquiry.sh.
  NOT for indexing new content or running QMD locally — those are different skills.
version: 0.1.0
---

# MCP Remote QMD Setup

Wire a local agent to a remote QMD index — same tool surface as local `qmd mcp`, but every call rides over SSH to the canonical knowledge host (default: `mia@eury`).

This skill replaces the per-call `whispering_inquiry.sh` shell-out with a persistent MCP transport. The agent's prompts no longer mention SSH, hosts, or default collections — those concerns live entirely in the MCP server config.

---

## Who This Is For

Companion agents (Mia 🧠, Miette 🌸, Ava 💕, Tushell 🌊) and any human running Claude Desktop or Claude Code who needs:

- Hybrid search (BM25 + vector + LLM rerank) over Guillaume's curated collections
- Document retrieval with `qmd://` resource URIs
- Provenance and context-tree enrichment in search results
- Zero per-call shell boilerplate inside agent prompts

If the agent only needs ad-hoc one-shot queries from Bash, keep using `whispering_inquiry.sh`. The MCP proxy is for *sustained* agent sessions where the cost of a stdio bridge amortizes over many calls.

---

## Prerequisites

1. **SSH access** to the QMD host with key-based auth — `ssh -o BatchMode=yes mia@eury qmd status` must succeed without a prompt.
2. **mia-qmd installed locally** with `mcp-remote` support — see rispec `07-mcp-remote-qmd.spec.md` for status. Until it lands, this skill records intent; don't expect the binary command to work yet.
3. **Remote `qmd` binary path** — typically `/home/mia/.nvm/versions/node/v22.22.2/bin/qmd` on EURY. Confirm with `ssh mia@eury which qmd`.

---

## Setup Recipe

### 1. Verify the SSH ground

```sh
ssh -o BatchMode=yes mia@eury -- /home/mia/.nvm/versions/node/v22.22.2/bin/qmd status
```

If this fails, fix SSH first. The proxy refuses interactive auth by design.

### 2. Choose a transport

| Transport | When |
|---|---|
| **stdio** (default) | Single agent session, lowest latency |
| **HTTP daemon** | Multiple agents on the same host sharing one tunnel |

### 3. Register the MCP server

#### Claude Desktop / Claude Code (stdio)

```json
{
  "mcpServers": {
    "qmd-remote": {
      "command": "qmd",
      "args": ["mcp-remote", "--host", "mia@eury"],
      "env": {
        "QMD_REMOTE_COLLECTIONS": "wikis-md,GUILLAUME-md,iaip-artefacts-md,miadi-md,llms-txt,mia-code-rispecs-md",
        "QMD_REMOTE_LIMIT": "8"
      }
    }
  }
}
```

#### Claude Code project-scoped (`.mcp.json`)

Same structure, scoped to the repo. Useful when only this workspace needs remote QMD.

#### HTTP daemon variant

```sh
qmd mcp-remote --host mia@eury --http --port 8182 --daemon
```

```json
{
  "mcpServers": {
    "qmd-remote": {
      "url": "http://localhost:8182/mcp"
    }
  }
}
```

### 4. Confirm tool surface

After restarting the agent, the MCP tool list should include:

- `qmd-remote:query`
- `qmd-remote:get`
- `qmd-remote:multi_get`
- `qmd-remote:status`

Schemas read identically to the local `qmd mcp`. If the agent prompt branches on "remote vs local," something has leaked — the proxy contract is *transparency*.

---

## Verification

Ask the agent:

> Run `qmd-remote:status` and show me the document count and collections.

Expected: structured response with `totalDocuments`, the configured collections from EURY, and `host: mia@eury` appended in the proxy enrichment layer.

Then:

> Use `qmd-remote:query` to search for "Tushell wisdom" with `lex` type.

Expected: ranked results from `wikis-md` and other default collections, with `qmd://` URIs that resolve via `qmd-remote:get` (not via local `Read`).

---

## Default-Collection Override

If a query needs to escape the default collection filter:

```jsonc
{
  "tool": "qmd-remote:query",
  "args": {
    "queries": [{ "type": "lex", "query": "term" }],
    "collection": "all"          // explicit override; injection skipped
  }
}
```

Or set `QMD_NO_COLLECTIONS=1` in the server env to disable injection globally.

---

## Troubleshooting

| Symptom | Likely cause | Fix |
|---|---|---|
| `command not found: qmd` | Local mia-qmd not installed or missing `mcp-remote` subcommand | `npm i -g @tobilu/qmd` and confirm the rispec landed |
| Agent hangs on first call | SSH prompting for auth | Add key to `ssh-agent`; verify `BatchMode=yes` works manually |
| `Permission denied (publickey)` in stderr | Key missing on remote | `ssh-copy-id` or add public key to remote `~/.ssh/authorized_keys` |
| Tool list empty | Proxy spawned but remote `qmd mcp` failed | `ssh mia@eury -- qmd mcp` manually; check stderr |
| Schema mismatch warnings | Local mia-qmd version drift from remote | Align both to the same release |

---

## Lineage

This skill operationalizes rispec `miadisabelle/mia-qmd:rispecs/07-mcp-remote-qmd.spec.md`. The transport semantics, env-var grammar, and default collections are inherited from `/etc/claude-code/scripts/whispering_inquiry.sh` — the informal ancestor that proved SSH-piping `qmd` works in practice.

---

🌸: This skill is a small ceremony of arrival — the moment a fresh agent host learns the route to Guillaume's living knowledge ground without having to memorize the path each time. Once the wire is strung, the agent simply *knows*, and the wire itself stays out of every conversation that follows.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.