{"_id":"@shantur/jarvis-mcp","name":"@shantur/jarvis-mcp","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.1":{"name":"@shantur/jarvis-mcp","version":"1.0.1","description":"Jarvis MCP – Browser-based voice input/output for AI Assistant conversations via MCP (Model Context Protocol)","main":"dist/index.js","type":"module","bin":{"jarvis-mcp":"dist/cli.js"},"scripts":{"build":"npm run build:plugin && npm run build:main && npm run postbuild","build:main":"tsc","build:plugin":"cd opencode-plugin && npm run build && cd .. && node create-bundle.cjs","build:plugin-only":"cd opencode-plugin && npm run build","postbuild":"chmod +x dist/cli.js","dev":"tsc --watch","start":"node dist/cli.js","mcp":"node dist/index.js","clean":"rm -rf dist && rm -rf opencode-plugin/dist","prepublishOnly":"npm run build"},"keywords":["mcp","voice","browser","speech","ai","assistant","tts","stt"],"author":{"name":"Jarvis MCP Team"},"license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","@opencode-ai/plugin":"^0.10.3","@opencode-ai/sdk":"^0.10.3","cors":"^2.8.5","express":"^4.19.0","open":"^10.0.0"},"devDependencies":{"@types/cors":"^2.8.0","@types/express":"^4.17.0","@types/node":"^20.0.0","typescript":"^5.0.0"},"engines":{"node":">=18.0.0"},"repository":{"type":"git","url":"git+https://github.com/shantur/mcp-voice-interface.git"},"bugs":{"url":"https://github.com/shantur/mcp-voice-interface/issues"},"homepage":"https://github.com/shantur/mcp-voice-interface#readme","_id":"@shantur/jarvis-mcp@1.0.1","gitHead":"c28a3c0af60e016e503e59658f0a7005ea273dfb","types":"./dist/index.d.ts","_nodeVersion":"23.7.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-xLBXwSAzA8vzAQhQAczguYL7bi9DB2djbfskDZxzd383NqPkqgbeRDmeBUFL4A3IwRwT+d95FDu+XFhYldsQsQ==","shasum":"1a3d506b9b3beafe429033b564e36cd30354f5be","tarball":"https://registry.npmjs.org/@shantur/jarvis-mcp/-/jarvis-mcp-1.0.1.tgz","fileCount":53,"unpackedSize":368075,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAMZPHlVF1MyrhiD1KnK5GOBC73Lx0H2azurGn9LPQ1xAiEA2MLU5yLhl9Vc8JOsVDgZNZcrwkye0GV5pyI827HkGnw="}]},"_npmUser":{"name":"shantur","email":"npm@shantur.com"},"directories":{},"maintainers":[{"name":"shantur","email":"npm@shantur.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jarvis-mcp_1.0.1_1758701589043_0.07059118775401396"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-24T08:13:08.943Z","1.0.1":"2025-09-24T08:13:09.220Z","modified":"2025-09-24T08:13:09.509Z"},"maintainers":[{"name":"shantur","email":"npm@shantur.com"}],"description":"Jarvis MCP – Browser-based voice input/output for AI Assistant conversations via MCP (Model Context Protocol)","homepage":"https://github.com/shantur/mcp-voice-interface#readme","keywords":["mcp","voice","browser","speech","ai","assistant","tts","stt"],"repository":{"type":"git","url":"git+https://github.com/shantur/mcp-voice-interface.git"},"author":{"name":"Jarvis MCP Team"},"bugs":{"url":"https://github.com/shantur/mcp-voice-interface/issues"},"license":"MIT","readme":"# Jarvis MCP\n\nBring your AI to life—talk to assistants instantly in your browser. Compatible with Claude Desktop, OpenCode, and other MCP-enabled AI tools.\n\n> ✅ No extra software, services, or API keys required—just open the web app in your browser and grant microphone access.\n\n## Features\n\n🎙️ **Voice Conversations** - Speak naturally with AI assistants  \n🌍 **30+ Languages** - Speech recognition in multiple languages  \n📱 **Remote Access** - Use from phone/tablet while AI runs on computer  \n⚙️ **Smart Controls** - Collapsible settings, always-on mode, custom voices  \n⏱️ **Dynamic Timeouts** - Intelligent wait times based on response length  \n🔌 **Optional Whisper Streaming** - Plug into a local Whisper server for low-latency transcripts  \n\n## Easy Installation\n\n### 🚀 One-Command Setup\n\n**Claude Desktop:**\n```bash\nnpx @shantur/jarvis-mcp --install-claude-config\n# Restart Claude Desktop and you're ready!\n```\n\n**OpenCode (in current project):**\n```bash\nnpx @shantur/jarvis-mcp --install-opencode-config --local\nnpx @shantur/jarvis-mcp --install-opencode-plugin --local\n# Start OpenCode and use the converse tool\n```\n\n**Claude Code CLI:**\n```bash\nnpx @shantur/jarvis-mcp --install-claude-code-config --local\n# Start Claude Code CLI and use voice tools\n```\n\n### 🤖 Why Install the OpenCode Plugin?\n\n- Stream voice messages into OpenCode even while tools are running or tasks are in progress.\n- Auto-forward pending Jarvis MCP conversations so you never miss a user request.\n- Works entirely locally—no external services required, just your OpenCode project and browser.\n- Installs with one command and stays in sync with the latest Jarvis MCP features.\n\n### 📦 Manual Installation\n\n**From NPM:**\n```bash\nnpm install -g @shantur/jarvis-mcp\njarvis-mcp\n```\n\n**From Source:**\n```bash\ngit clone <repository-url>\ncd jarvis-mcp\nnpm install && npm run build && npm start\n```\n\n## How to Use\n\n1. **Start the server** - Run `jarvis-mcp`\n2. **Open browser** - Visit `https://localhost:5114` (opens automatically)\n3. **Allow microphone** - Grant permissions when prompted\n4. **Start talking** - Use the `converse` tool in your AI assistant\n\n### Voice Commands in AI Chat\n\n```\nUse the converse tool to start talking:\n- converse(\"Hello! How can I help you today?\", timeout: 35)\n```\n\n## Browser Interface\n\nThe web interface provides:\n\n- **Voice Settings** (click ⚙️ to expand)\n  - Language selection (30+ options)\n  - Voice selection\n  - Speech speed control\n  - Always-on microphone mode\n  - Silence detection sensitivity & timeout (for Whisper streaming)\n- **Smart Controls**\n  - Pause during AI speech (prevents echo)\n  - Stop AI when user speaks (natural conversation)\n- **Mobile Friendly** - Works on phones and tablets\n\n## Remote Access\n\nAccess from any device on your network:\n\n1. Find your computer's IP: `ifconfig | grep inet` (Mac/Linux) or `ipconfig` (Windows)\n2. Visit `https://YOUR_IP:5114` on your phone/browser\n3. Accept the security warning (self-signed certificate)\n4. Grant microphone permissions\n\nPerfect for continuing conversations away from your desk!\n\n## Configuration\n\n### Environment Variables\n\n```bash\nexport MCP_VOICE_AUTO_OPEN=false  # Disable auto-opening browser\nexport MCP_VOICE_HTTPS_PORT=5114  # Change HTTPS port\nexport MCP_VOICE_STT_MODE=whisper  # Switch the web app to Whisper streaming\nexport MCP_VOICE_WHISPER_URL=http://localhost:12017/v1/audio/transcriptions  # Whisper endpoint (full path)\nexport MCP_VOICE_WHISPER_TOKEN=your_token  # Optional Bearer auth for Whisper server\n```\n\n### Whisper Streaming Mode\n\n- Whisper mode records raw PCM in the browser, converts it to 16 kHz mono WAV, and streams it through the built-in HTTPS proxy, so the local `whisper-server` sees OpenAI-compatible requests.\n- By default we proxy to the standard `whisper-server` endpoint at `http://localhost:12017/v1/audio/transcriptions`; point `MCP_VOICE_WHISPER_URL` at your own host/port if you run it elsewhere.\n- The UI keeps recording while transcripts are in flight and ignores Whisper’s non-verbal tags (e.g. `[BLANK_AUDIO]`, `(typing)`), so only real speech is queued.\n- To enable it:\n  1. Run your Whisper server locally (e.g. `whisper-server` from `pfrankov/whisper-server`).\n  2. Set the environment variables above (`MCP_VOICE_STT_MODE=whisper` and the full `MCP_VOICE_WHISPER_URL`).\n  3. Restart `jarvis-mcp` and hard-refresh the browser (empty-cache reload) to load the streaming bundle.\n  4. Voice status (`voice_status()` tool) now reports whether Whisper or browser STT is active.\n\n### Ports\n\n- **HTTPS**: 5114 (required for microphone access)\n- **HTTP**: 5113 (local access only)\n\n## Requirements\n\n- Node.js 18+\n- Google Chrome (only browser tested so far)\n- Microphone access\n- Optional: Local Whisper server (like `pfrankov/whisper-server`) if you want streaming STT via `MCP_VOICE_STT_MODE=whisper`\n\n## Troubleshooting\n\n**Certificate warnings on mobile?**\n- Tap \"Advanced\" → \"Proceed to site\" to accept self-signed certificate\n\n**Microphone not working?**\n- Ensure you're using HTTPS (not HTTP)\n- Check browser permissions\n- Try refreshing the page\n\n**AI not responding to voice?**\n- Make sure the `converse` tool is being used (not just `speak`)\n- Check that timeouts are properly calculated\n\n## Development\n\n```bash\nnpm install\nnpm run build\nnpm run dev     # Watch mode\nnpm run start   # Run server\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-84159e975317bea90de87b14b3847a64"}