mcp-obsidian-cli: Skill for Claude Code

.claude/skills/desktop-sniff-test/SKILL.md

desktop-sniff-test is a skill for Claude Code from stonematt/mcp-obsidian-cli. It costs 85 tokens per session (840 once invoked), scanned A, original, MIT.

A guided end-to-end test for an MCP server in Claude Desktop, where MCP lets the app call external tools. It temporarily points Claude Desktop at the local server, provides a test prompt, and restores the previous configuration.

In plain words
What is it for?
It helps verify that the mcp-obsidian-cli server works in Claude Desktop by running its sniff-test prompts and checking the returned results.
Why use it?
It removes the repeated setup and cleanup involved in manually testing a local server in Claude Desktop. The actual copy-and-paste interaction remains manual because Claude Desktop cannot be automated.

Skill for Claude Code

Written for Claude Code: installed under .claude/.

This is stonematt/mcp-obsidian-cli's own configuration. It tells Claude Code how to work on mcp-obsidian-cli itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything mcp-obsidian-cli configures →

Reuse

Borrowing it

Nothing to install: this file belongs to stonematt/mcp-obsidian-cli. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/stonematt/mcp-obsidian-cli/master/.claude/skills/desktop-sniff-test/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/stonematt/mcp-obsidian-cli

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for desktop-sniff-test

README.md
[![agentmods](https://agentmods.dev/badge/skills/stonematt/mcp-obsidian-cli/desktop-sniff-test/github.svg)](https://agentmods.dev/skills/stonematt/mcp-obsidian-cli/desktop-sniff-test)
Your own site
<a href="https://agentmods.dev/skills/stonematt/mcp-obsidian-cli/desktop-sniff-test"><img src="https://agentmods.dev/badge/skills/stonematt/mcp-obsidian-cli/desktop-sniff-test/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for desktop-sniff-test

Your own site · 80×15
<a href="https://agentmods.dev/skills/stonematt/mcp-obsidian-cli/desktop-sniff-test"><img src="https://agentmods.dev/badge/skills/stonematt/mcp-obsidian-cli/desktop-sniff-test.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 85 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 840 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00085 $0.00840
Opus 5 $0.00043 $0.00420
Sonnet 5 $0.00017 $0.00168
Haiku 4.5 $0.00009 $0.00084

Measured 10d ago against content hash bac4baf5bdcc, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade A, and why

desktop-sniff-test scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/desktop-sniff-test/SKILL.md · 123 lines

How it starts

The opening of the file, as written. The whole thing — 123 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Desktop Sniff Test

End-to-end smoke test of the MCP server in Claude Desktop. Claude Desktop can't be automated — it requires manual copy-paste — so this skill orchestrates the config swaps and result evaluation around that manual step.

Prerequisites

  • Obsidian must be running
  • Claude Desktop must be installed
  • The project must be the mcp-obsidian-cli repo

Workflow

Step 1: Swap config to local server

Read the Claude Desktop config file:

~/Library/Application Support/Claude/claude_desktop_config.json

Save the current mcpServers.obsidian block so it can be restored later. Then replace it with the local dev server:

"obsidian": {
  "command": "node",
  "args": ["<project-root>/server.js"],
  "env": {
    "OBSIDIAN_VAULT": "<keep existing vault value>"
  }
}

Preserve the existing OBSIDIAN_VAULT value — don't hardcode it.

Tell the user:

Config updated to local server. Restart Claude Desktop to pick up the change.

Step 2: Give the test prompt

Tell the user to paste this into Claude Desktop:

Read the file <project-root>/test/sniff-test-prompt.md and run every test in it.

Use the actual absolute path to the project root, not a placeholder.

Then say:

Paste that into Claude Desktop and come back with the results when it finishes.

Wait for the user to return with results. Do not proceed until they paste results back.

Step 3: Evaluate results

When the user pastes the results, use a Sonnet agent to evaluate them. This saves Opus tokens since evaluation is mechanical pattern-matching work.

Launch the agent with:

  • The full pasted results
  • The contents of test/sniff-test-prompt.md (so it knows the pass criteria)
  • Instructions to evaluate as described below

The agent should:

  1. Parse the summary table — extract test name, result, criteria counts
  2. Count passes and failures — report X/N (N = total tests in sniff-test-prompt.md)
  3. For any failures, check:
    • Was the tool call correct?
    • Did the pass criteria match what the test expects?
    • Is it a real bug or a test issue?
  4. Check content samples — verify the quoted output looks correct (right headings, expected syntax patterns, reasonable data)
  5. Flag anything suspicious even in passing tests (e.g., truncated output, unexpected content, wrong sort order)

Read the full file on GitHub · 123 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 10d ago First seen · 123 lines · 85 tokens per session scan A bac4baf5bdcc

Subscribe to this mod's changes

desktop-sniff-test is a skill published in the GitHub repository stonematt/mcp-obsidian-cli (2 stars, last pushed yesterday), licensed MIT. It adds 85 tokens to every session and 840 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

blazemeter-private-locations

Comprehensive guide for BlazeMeter Private Locations, including Radar Agent, installation (Docker, Kubernetes, Helm), configuration, management, and troubleshooting. Use when working with Private Locations for (1) Installing agents (Docker, Kubernetes, Helm Chart), (2) Configuring Radar Agent for API Monitoring, (3)…

Blazemeter/bzm-mcp · 103 tokens

blazemeter-functional-testing

Comprehensive guide for BlazeMeter Functional Testing, including GUI Functional Tests, API Tests (deprecated), Action Library, and debugging. Use when working with Functional Testing for (1) Creating GUI Functional Tests (YAML, Java IDE, Python IDE), (2) Managing Functional Tests (duplicate, delete, move, rename), (3)…

Blazemeter/bzm-mcp · 124 tokens

blazemeter-recorders

Comprehensive guide for BlazeMeter Recorders, including Chrome Extension and Proxy Recorder. Use when working with recorders for (1) Recording tests with Chrome Extension, (2) Creating and using Proxy Recorder, (3) Configuring browsers and devices for proxy recording, (4) Setting port ranges for proxy recorder, or any…

Blazemeter/bzm-mcp · 76 tokens

lastest

Lastest is a visual regression testing platform. It records browser tests, runs them via Playwright, diffs screenshots, and uses AI to classify changes. Available as an MCP server for AI agent integration.

las-team/lastest · 0 tokens

resolume-mcp-tester

Test and operate the Resolume MCP server (resolume-mcp-server) end-to-end against a live Resolume Arena. Use when verifying tool behavior, running smoke tests, doing safe live VJ demos, or validating new tools added to the project. Includes white-out prevention rules, state restoration patterns, and agent invocation…

mackatwentytsuru/resolume-mcp-server · 75 tokens

field-test

Exercise tools, resources, and prompts against a live HTTP server via MCP JSON-RPC over curl. Starts the server, surfaces the catalog, runs real and adversarial inputs, measures every call (bytes, token estimate, wall-clock) and weighs the catalog, and produces a tight report with concrete findings and numbered…

cyanheads/mcp-ts-core · 93 tokens