@modelcontextprotocol/server-transcript 0.4.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 +91 -0
- package/dist/index.js +30583 -0
- package/dist/mcp-app.html +159 -0
- package/dist/server.d.ts +5 -0
- package/dist/server.js +27290 -0
- package/package.json +52 -0
package/README.md
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Transcript Server
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+
|
|
5
|
+
An MCP App Server for live speech transcription using the Web Speech API.
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- **Live Transcription**: Real-time speech-to-text using browser's Web Speech API
|
|
10
|
+
- **Transitional Model Context**: Streams interim transcriptions to the model via `ui/update-model-context`, allowing the model to see what the user is saying as they speak
|
|
11
|
+
- **Audio Level Indicator**: Visual feedback showing microphone input levels
|
|
12
|
+
- **Send to Host**: Button to send completed transcriptions as a `ui/message` to the MCP host
|
|
13
|
+
- **Start/Stop Control**: Toggle listening on and off
|
|
14
|
+
- **Clear Transcript**: Reset the transcript area
|
|
15
|
+
|
|
16
|
+
## Setup
|
|
17
|
+
|
|
18
|
+
### Prerequisites
|
|
19
|
+
|
|
20
|
+
- Node.js 18+
|
|
21
|
+
- Chrome, Edge, or Safari (Web Speech API support)
|
|
22
|
+
|
|
23
|
+
### Installation
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm install
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Running
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Development mode (with hot reload)
|
|
33
|
+
npm run dev
|
|
34
|
+
|
|
35
|
+
# Production build and serve
|
|
36
|
+
npm run start
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Usage
|
|
40
|
+
|
|
41
|
+
The server exposes a single tool:
|
|
42
|
+
|
|
43
|
+
### `transcribe`
|
|
44
|
+
|
|
45
|
+
Opens a live speech transcription interface.
|
|
46
|
+
|
|
47
|
+
**Parameters:** None
|
|
48
|
+
|
|
49
|
+
**Example:**
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"name": "transcribe",
|
|
54
|
+
"arguments": {}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## How It Works
|
|
59
|
+
|
|
60
|
+
1. Click **Start** to begin listening
|
|
61
|
+
2. Speak into your microphone
|
|
62
|
+
3. Watch your speech appear as text in real-time (interim text is streamed to model context via `ui/update-model-context`)
|
|
63
|
+
4. Click **Send** to send the transcript as a `ui/message` to the host (clears the model context)
|
|
64
|
+
5. Click **Clear** to reset the transcript
|
|
65
|
+
|
|
66
|
+
## Architecture
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
transcript-server/
|
|
70
|
+
├── server.ts # MCP server with transcribe tool
|
|
71
|
+
├── server-utils.ts # HTTP transport utilities
|
|
72
|
+
├── mcp-app.html # Transcript UI entry point
|
|
73
|
+
├── src/
|
|
74
|
+
│ ├── mcp-app.ts # App logic, Web Speech API integration
|
|
75
|
+
│ ├── mcp-app.css # Transcript UI styles
|
|
76
|
+
│ └── global.css # Base styles
|
|
77
|
+
└── dist/ # Built output (single HTML file)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Notes
|
|
81
|
+
|
|
82
|
+
- **Microphone Permission**: Requires `allow="microphone"` on the sandbox iframe (configured via `permissions: { microphone: {} }` in the resource `_meta.ui`)
|
|
83
|
+
- **Browser Support**: Web Speech API is well-supported in Chrome/Edge, with Safari support. Firefox has limited support.
|
|
84
|
+
- **Continuous Mode**: Recognition automatically restarts when it ends, for seamless transcription
|
|
85
|
+
|
|
86
|
+
## Future Enhancements
|
|
87
|
+
|
|
88
|
+
- Language selection dropdown
|
|
89
|
+
- Whisper-based offline transcription (see TRANSCRIPTION.md)
|
|
90
|
+
- Export transcript to file
|
|
91
|
+
- Timestamps toggle
|