dhruv-freightops-demo

finance MCP Server

Sample Audio Controlled Agentic Website for Freight Transportation, extendable to any other website type. Solid Replacement for text chat or customer service calls.

Verified
financefinance
1 views1 stars0 forksv0.1.0

Why This Matters

Discovered via github-topic:mcp and last synced 3mo ago.

Verified
Source
github-topic:mcp
Stars
1
Last synced
3mo ago
Install
Check source

Install

Install instructions not detected yet

Check the source repository for the latest setup steps.

View source instructions
9
Tools
0
Resources
0
Prompts
Standard I/O
Transport

Available Tools (9)

Tier

Width

Desktop

> 900 px

Cause

Fix

Setting

Default

Tablet

≤ 900 px

File

Role

Phone

≤ 640 px

Mode

Behavior

ai-engineer

## Customizing - **Model:** set `GEMINI_LIVE_MODEL` in `.env` to override the default `gemini-3.1-flash-live-preview`. - **Personas:** edit `api/personas.js` — the client reads this list via `/api/config` at boot. - **Tools:** edit `api/tools.js` for declarations + `js/tool-registry.js` (generic tools) or the page-specific `js/page-*.js` (domain tools). - **Noise:** procedural Web Audio graphs in `js/audio-pipeline.js`. To use real samples, drop `.wav`/`.mp3` files into `public/sounds/` and adjust the factories. ## Known limitations - Wake word uses the Web Speech API — works in Chrome/Edge, unreliable or absent in Firefox and older Safari. - Ambient noise plays on the **client side only**. Gemini receives clean 16 kHz PCM, so token cost and STT/VAD accuracy are not affected. - The `gemini-3.1-flash-live-preview` alias may not be enabled on every key. The bridge falls back automatically to `gemini-live-2.5-flash-preview`. - Persona and mode switches DO close and reopen the upstream Gemini session (different voice / VAD config). This is the one place a brief `Opening session` transition is visible — it's a deliberate user action, not a navigation. - No persistence — load/carrier state resets on a full reload. - Ephemeral-token direct-to-Gemini mode is not implemented in v1 (server-proxy only). See `specs/oracle-spec.md` for the rationale. ## Troubleshooting ### Turn on DEBUG logging first Whenever the voice flow misbehaves, run the server with `DEBUG=1` and append `?debug=1` to the URL: ```bash DEBUG=1 npm start # browser: # http://localhost:3011/?debug=1 ``` You'll get per-frame logs on both sides. ### What a healthy session looks like Server stdout: ``` [server] GEMINI_API_KEY detected (len=39) Dhruv FreightOps listening on http://localhost:3011 [live <sid>] attach complete — awaiting hello [live <sid>] hello persona=professional page=/ elements=57 [live <sid>] upstream connect requested model=gemini-3.1-flash-live-preview voice=Kore persona=professional [live <sid>] onopen model=gemini-3.1-flash-live-preview [live <sid>] ai.live.connect resolved [live <sid>] first message received — handshake OK [live <sid>] output_transcription delta len=7 finished=false [live <sid>] audio chunk bytes=3840 [live <sid>] audio chunk bytes=3840 [live <sid>] turn_complete ``` Browser DevTools console (with `?debug=1`): ``` [jarvis] ws onopen, sending hello [jarvis] server msg hello_ack [jarvis] server msg state connecting [jarvis] server msg state listening [jarvis] audio frame bytes=3840 samples=1920 ctx=running ``` ### Top failure modes