@rvry/mcp 0.9.0 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -0
- package/dist/setup.js +71 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -64,6 +64,21 @@ RVRY supports both **stdio** and **HTTP** transports:
|
|
|
64
64
|
| **`RVRY_challenge`** | Adversarial stress-testing. Finds weaknesses, tests assumptions, and surfaces failure modes in a proposal before you commit. | Pro+ |
|
|
65
65
|
| **`RVRY_meta`** | Sustained metacognitive observation. Examines how your AI is thinking, not just what it's thinking. | Max |
|
|
66
66
|
|
|
67
|
+
## Slash Commands (Claude Code)
|
|
68
|
+
|
|
69
|
+
When you run `npx @rvry/mcp setup` and select Claude Code, the wizard installs 4 slash commands:
|
|
70
|
+
|
|
71
|
+
| Command | Tool | What it does |
|
|
72
|
+
|---------|------|-------------|
|
|
73
|
+
| `/deepthink` | RVRY_deepthink | Deep multi-round analysis |
|
|
74
|
+
| `/problem-solve` | RVRY_problem_solve | Structured decision-making |
|
|
75
|
+
| `/challenge` | RVRY_challenge | Adversarial stress-testing |
|
|
76
|
+
| `/meta` | RVRY_meta | Metacognitive observation |
|
|
77
|
+
|
|
78
|
+
Usage: type `/deepthink [your question]` in Claude Code. Each command routes directly to the corresponding RVRY MCP tool.
|
|
79
|
+
|
|
80
|
+
Commands are installed to `~/.claude/commands/`. Existing files are never overwritten — re-running setup is safe.
|
|
81
|
+
|
|
67
82
|
## How it Works
|
|
68
83
|
|
|
69
84
|
Same model. Same question. Different answer.
|
package/dist/setup.js
CHANGED
|
@@ -707,6 +707,57 @@ function ensureGitignore() {
|
|
|
707
707
|
// Non-fatal -- read-only filesystem, permissions, etc.
|
|
708
708
|
}
|
|
709
709
|
}
|
|
710
|
+
// ── Slash commands for Claude Code ──────────────────────────────────
|
|
711
|
+
const SLASH_COMMANDS = [
|
|
712
|
+
{
|
|
713
|
+
file: "deepthink.md",
|
|
714
|
+
content: "Use the RVRY_deepthink MCP tool to deeply analyze this question: $ARGUMENTS",
|
|
715
|
+
label: "/deepthink — deep analysis",
|
|
716
|
+
},
|
|
717
|
+
{
|
|
718
|
+
file: "problem-solve.md",
|
|
719
|
+
content: "Use the RVRY_problem_solve MCP tool to work through this problem: $ARGUMENTS",
|
|
720
|
+
label: "/problem-solve — structured decision-making",
|
|
721
|
+
},
|
|
722
|
+
{
|
|
723
|
+
file: "challenge.md",
|
|
724
|
+
content: "Use the RVRY_challenge MCP tool to stress-test this proposal: $ARGUMENTS",
|
|
725
|
+
label: "/challenge — adversarial stress-testing",
|
|
726
|
+
},
|
|
727
|
+
{
|
|
728
|
+
file: "meta.md",
|
|
729
|
+
content: "Use the RVRY_meta MCP tool to reflect on: $ARGUMENTS",
|
|
730
|
+
label: "/meta — metacognitive observation (Max tier)",
|
|
731
|
+
},
|
|
732
|
+
];
|
|
733
|
+
/**
|
|
734
|
+
* Install RVRY slash commands to ~/.claude/commands/.
|
|
735
|
+
* Only called when Claude Code is the selected client.
|
|
736
|
+
* Skips files that already exist to avoid overwriting user customizations.
|
|
737
|
+
*/
|
|
738
|
+
function installSlashCommands() {
|
|
739
|
+
const commandsDir = join(homedir(), ".claude", "commands");
|
|
740
|
+
const installed = [];
|
|
741
|
+
try {
|
|
742
|
+
if (!existsSync(commandsDir)) {
|
|
743
|
+
mkdirSync(commandsDir, { recursive: true });
|
|
744
|
+
}
|
|
745
|
+
for (const cmd of SLASH_COMMANDS) {
|
|
746
|
+
const filePath = join(commandsDir, cmd.file);
|
|
747
|
+
if (existsSync(filePath)) {
|
|
748
|
+
console.log(` Skipping ${cmd.file} — command already exists`);
|
|
749
|
+
continue;
|
|
750
|
+
}
|
|
751
|
+
writeFileSync(filePath, cmd.content + "\n", "utf-8");
|
|
752
|
+
installed.push(cmd.label);
|
|
753
|
+
}
|
|
754
|
+
}
|
|
755
|
+
catch (err) {
|
|
756
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
757
|
+
console.log(` Could not install slash commands: ${msg}`);
|
|
758
|
+
}
|
|
759
|
+
return installed;
|
|
760
|
+
}
|
|
710
761
|
// ── Main setup flow ────────────────────────────────────────────────
|
|
711
762
|
const BANNER = `
|
|
712
763
|
8888888b. 888 888 8888888b. Y88b d88P
|
|
@@ -848,6 +899,20 @@ export async function runSetup() {
|
|
|
848
899
|
if (result !== 'error')
|
|
849
900
|
anyConfigured = true;
|
|
850
901
|
}
|
|
902
|
+
// Install slash commands if Claude Code was configured
|
|
903
|
+
const claudeCodeConfigured = selectedIndices.some((idx) => detected[idx].client.id === "code") && configuredClients.some((c) => c.name === "Claude Code" && c.status !== "Failed");
|
|
904
|
+
let installedCommands = [];
|
|
905
|
+
if (claudeCodeConfigured) {
|
|
906
|
+
console.log("");
|
|
907
|
+
console.log(" Installing slash commands...");
|
|
908
|
+
installedCommands = installSlashCommands();
|
|
909
|
+
if (installedCommands.length > 0) {
|
|
910
|
+
console.log(` Installed ${installedCommands.length} command(s):`);
|
|
911
|
+
for (const label of installedCommands) {
|
|
912
|
+
console.log(` ${label}`);
|
|
913
|
+
}
|
|
914
|
+
}
|
|
915
|
+
}
|
|
851
916
|
if (selectedIndices.length === 0) {
|
|
852
917
|
console.log(' No clients selected.');
|
|
853
918
|
}
|
|
@@ -920,7 +985,12 @@ export async function runSetup() {
|
|
|
920
985
|
console.log('');
|
|
921
986
|
step++;
|
|
922
987
|
if (hasCodeStyle || hasDesktopStyle) {
|
|
923
|
-
|
|
988
|
+
if (installedCommands.length > 0) {
|
|
989
|
+
console.log(` ${step}. Try a slash command: /deepthink [your question]`);
|
|
990
|
+
}
|
|
991
|
+
else {
|
|
992
|
+
console.log(` ${step}. Try: "Use RVRY_deepthink to analyze..." or "Use RVRY_problem_solve for..."`);
|
|
993
|
+
}
|
|
924
994
|
step++;
|
|
925
995
|
}
|
|
926
996
|
if (!anyConfigured) {
|