Back to Spectra

Model Context Protocol · public catalogue

Spectra is invokable from any agent that speaks MCP.

The Spectra MCP server ships 13 live tools and 6 declared-but-not-yet-wired tools. Two of the live tools (submit_portal_action and record_diary_entry) bridge to the Spectra frontend; calling them from a peer agent (Gemini Enterprise, LangChain, an A2A peer) drives the same patient-portal actions the in-browser agent at /demo/patient-portal performs.

Live tools

13 · 6 more declared as v0.2

Patient-portal actions

  • submit_portal_action

    args { action: string, target: string, task: string }

    Submit one patient-portal action (one of select_practitioner, select_slot, fill_phone, submit_booking_form, fill_2fa, verify_2fa, switch_tab, open_lab_panel, read_aloud, select_medication, select_pharmacy, submit_refill, done, error). Returns the booking confirmation envelope. Proxies the Spectra frontend /api/demo/agent-step route.

  • click_elementv0.2

    args { session_id: string, description: string }

    Click a named UI element in an active Spectra session. v0.2: requires the WebSocket-to-MCP bridge currently on the spectra-mcp roadmap.

  • fill_inputv0.2

    args { session_id: string, field_description: string, text: string }

    Type text into a named form field in an active session. v0.2 (requires WebSocket bridge).

  • navigate_tov0.2

    args { session_id: string, url: string }

    Navigate the active session's tab to a URL. v0.2 (requires WebSocket bridge).

  • scroll_tov0.2

    args { session_id: string, direction: "up"|"down"|"top"|"bottom", amount?: number }

    Scroll the active session's viewport. v0.2 (requires WebSocket bridge).

Voice diary (FHIR R4)

  • record_diary_entry

    args { type: "seizure"|"aura"|"recovery"|"medication"|"note", freeform: string, duration_sec?: number, occurred_at?: ISO8601 }

    Record one voice-diary entry. Returns a FHIR R4 Observation suitable for hand-off into a clinical record. Freeform is NFC-normalised server-side.

Page understanding

  • describe_page

    args { url: string }

    Structured description of a public web page: title, headings, interactive elements with CSS selectors and importance tiers. Calls the Spectra overlay endpoint.

  • get_page_headings

    args { url: string }

    All headings on a public page in document order with level and selector. Useful for outline navigation and auditing heading hierarchy.

  • get_form_fields

    args { url: string }

    All interactive inputs on a public page with label, type, selector, and placeholder. Helpful for a peer agent that wants to know what a form expects before submitting it.

Accessibility

  • apply_cognitive_modev0.2

    args { session_id: string, mode: "simplify" | "chunks" | "slow_speech" }

    Switch a session into a reduced-cognitive-load mode (shorter sentences, slower speech, one step at a time). v0.2.

  • audit_accessibilityv0.2

    args { url: string }

    WCAG 2.1 AA check on a public page. Returns issues with criterion references and severity. v0.2: needs a second pass with axe-core or a vision model on a screenshot.

Data lookups

  • lookup_crisis_helpline

    args { region: "uk"|"ie"|"us"|"ca"|"au"|"eu"|"global", line_type?: string }

    Pure directory lookup for crisis and mental-health helplines. No AI in the path; the caller decides which line is appropriate. Spectra never classifies whether a user is in crisis.

  • get_voice_commands

    args { category?: "Navigation"|"Reading"|"Interaction"|"Modes"|"Help" }

    Return the voice commands a user can say to Spectra, grouped by category. For help surfaces or for an upstream agent coaching a new user.

  • list_supported_languages

    args { mode?: "online" | "offline" }

    Language coverage for both cloud (Gemini Live, broader) and offline (Gemma 4 + Piper TTS, narrower) modes so a caller can route a user to the right provider.

  • list_supported_gestures

    args { user_group?: "motor_disability"|"deaf_mute"|"low_vision"|"cognitive_load"|"noise_constrained"|"all" }

    Hand-gesture vocabulary recognised by MediaPipe Hands. Camera frames never leave the device; the MCP layer only sees the recognised intent label.

  • get_gesture_for_command

    args { command: string }

    Map a voice command to its gesture equivalent (or vice versa). Useful for users who have temporarily lost voice (post-surgery, noise) or permanently rely on gesture.

Session management

  • start_session

    args { user_id: string, mode?: "gemini" | "ollama" }

    Initialise a new Spectra streaming session and return the WebSocket URL the caller connects to. Either Gemini Live (cloud) or Gemma 4 nano via Ollama (offline).

  • get_session_status

    args { session_id: string }

    Read connection state, screen-share status, and last-activity timestamp of an active streaming session.

  • end_session

    args { session_id: string }

    Cleanly terminate a Spectra session and release its resources.

Logical action ids for submit_portal_action

The patient-portal demo emits one of these action ids per step. These are the values to pass as the action argument when calling submit_portal_action from a peer agent.

  • select_practitioner

    Pick the clinician.

  • select_slot

    Pick an open appointment slot.

  • fill_phone

    Set the contact telephone for the booking.

  • submit_booking_form

    Submit the booking form (triggers 2FA).

  • fill_2fa

    Fill the 2FA code (digits-only).

  • verify_2fa

    Submit the 2FA code and confirm the appointment.

  • switch_tab

    Move between appointments / results / prescriptions.

  • open_lab_panel

    Open a specific lab-results panel.

  • read_aloud

    Read a page region aloud at the user's pace.

  • select_medication

    Select a prescription to refill.

  • select_pharmacy

    Choose the dispatch pharmacy.

  • submit_refill

    Submit the refill request.

  • done

    Declare the task complete (orchestrator signal).

  • error

    Declare an error (orchestrator signal, with reason).

Source: spectra-mcp/server.py in the Spectra repository. The list above mirrors the FastMCP tool decorators in that file; any drift will be visible in the next public review.

Aqta Technologies Limited, Dublin, Ireland. Spectra is not a medical device. /privacy