Linepace Teleprompter MCP
A live script reader and speech timer that scrolls text in chat, calculates speech duration with pause cues, and provides section timing. It includes mirror view, font controls, and speed adjustments for presentations, videos, or practice runs.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://teleprompter.zovo.one/mcpWhat you can do with it
- Calculate speech time with pause cues
- Plan script length for target duration
- Display live scrolling teleprompter in chat
- Show section-by-section timing
Source and maintenance
Protocol and capabilities
- Server
- teleprompter 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 3 advertised
- Resources
- 1 advertised
- Resource templates
- 1 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
3 advertised
show_teleprompter — Show teleprompter
Use this when the user wants to read a script in a live teleprompter. Accepts up to 30,000 characters, a whole-number speed from 60 to 300 words per minute or a target duration, text size, mirror mode, and a 0 to 10 second countdown. Returns word count and duration; the full script is shown only in the widget. Numeric pause cues accept whole seconds from 1 to 86,400 per cue. Does not record video or audio.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"script"
],
"properties": {
"speed": {
"anyOf": [
{
"enum": [
"slow",
"conversational",
"presentation",
"fast"
],
"type": "string"
},
{
"type": "number",
"maximum": 300,
"minimum": 60
}
],
"description": "Optional whole-number reading speed from 60 to 300 wpm when target_duration_seconds is not used, e.g. 130."
},
"mirror": {
"type": "boolean",
"description": "Flip the script horizontally for a glass teleprompter, e.g. true."
},
"script": {
"type": "string",
"maxLength": 30000,
"description": "Speech script, up to 30,000 characters; numeric pause cues accept whole seconds from 1 to 86,400, e.g. Welcome everyone. [PAUSE 2] Today we will discuss our plan."
},
"text_size": {
"type": "integer",
"maximum": 64,
"minimum": 16,
"description": "Initial script text size in pixels, e.g. 28."
},
"countdown_seconds": {
"type": "integer",
"maximum": 10,
"minimum": 0,
"description": "Seconds to wait after Start before scrolling, e.g. 3."
},
"target_duration_seconds": {
"type": "integer",
"maximum": 86400,
"minimum": 1,
"description": "Optional desired total duration in seconds including pause cues, e.g. 300."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"word_count",
"pause_seconds",
"duration_ms",
"duration",
"speed_wpm",
"line_count",
"countdown_seconds",
"mirror",
"text_size"
],
"properties": {
"mirror": {
"type": "boolean"
},
"duration": {
"type": "string"
},
"speed_wpm": {
"type": "number"
},
"text_size": {
"type": "number"
},
"line_count": {
"type": "number"
},
"word_count": {
"type": "number"
},
"duration_ms": {
"type": "number"
},
"pause_seconds": {
"type": "number"
},
"countdown_seconds": {
"type": "number"
},
"target_speed_fraction": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Show teleprompter",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}estimate_speech_time — Estimate speech time
Use this when the user wants to know how long a speech or script will take. Accepts a script up to 30,000 characters or a word count, and slow, conversational, presentation, fast, or a whole number from 60 to 300 words per minute. Returns a duration table; script sections begin at blank lines or heading lines. [PAUSE] adds one second and [PAUSE 3] adds three seconds; numeric cues accept whole seconds from 1 to 86,400 per cue. Does not measure a live recording.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"speed": {
"anyOf": [
{
"enum": [
"slow",
"conversational",
"presentation",
"fast"
],
"type": "string"
},
{
"type": "number",
"maximum": 300,
"minimum": 60
}
],
"description": "Optional named pace or whole number from 60 to 300 wpm, e.g. presentation. The result also shows the four named paces."
},
"script": {
"type": "string",
"maxLength": 30000,
"description": "Script to time, e.g. Hello everyone. [PAUSE 2] Thank you for coming."
},
"word_count": {
"type": "integer",
"maximum": 100000,
"minimum": 0,
"description": "Use when no script is available: spoken word count, e.g. 650."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"word_count",
"pause_seconds",
"duration_ms",
"duration",
"speed_wpm",
"selected_speed",
"timings",
"sections",
"section_count"
],
"properties": {
"timings": {
"type": "array",
"items": {
"type": "object",
"required": [
"speed",
"wpm",
"duration_ms",
"duration"
],
"properties": {
"wpm": {
"type": "number"
},
"speed": {
"type": "string"
},
"duration": {
"type": "string"
},
"duration_ms": {
"type": "number"
}
},
"additionalProperties": false
}
},
"duration": {
"type": "string"
},
"sections": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"words",
"pause_seconds",
"duration_ms",
"duration"
],
"properties": {
"name": {
"type": "string"
},
"words": {
"type": "number"
},
"duration": {
"type": "string"
},
"duration_ms": {
"type": "number"
},
"pause_seconds": {
"type": "number"
}
},
"additionalProperties": false
}
},
"speed_wpm": {
"type": "number"
},
"word_count": {
"type": "number"
},
"duration_ms": {
"type": "number"
},
"pause_seconds": {
"type": "number"
},
"section_count": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"selected_speed": {
"enum": [
"slow",
"conversational",
"presentation",
"fast",
"custom"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Estimate speech time",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}plan_script_length — Plan script length
Use this when the user wants to fit a speech into a target duration. With a target duration and speed, returns how many words to write. With a script and target duration, returns the necessary speed plus words to cut or add at the selected pace. Target duration is 1 second to 24 hours and speed is a whole number from 60 to 300 words per minute. Numeric pause cues accept whole seconds from 1 to 86,400 per cue. Does not rewrite the script.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"target_duration_seconds"
],
"properties": {
"speed": {
"anyOf": [
{
"enum": [
"slow",
"conversational",
"presentation",
"fast"
],
"type": "string"
},
{
"type": "number",
"maximum": 300,
"minimum": 60
}
],
"description": "Named writing pace or whole number from 60 to 300 wpm for the word target or cut/add estimate, e.g. conversational."
},
"script": {
"type": "string",
"maxLength": 30000,
"description": "Optional existing script to assess, e.g. Welcome everyone. Thank you for coming."
},
"target_duration_seconds": {
"type": "integer",
"maximum": 86400,
"minimum": 1,
"description": "Target total duration in seconds, e.g. 300 for five minutes."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"target_duration_seconds",
"speed_wpm",
"target_words",
"word_change",
"necessary_speed_wpm",
"necessary_speed_fraction",
"reader_speed_wpm",
"reader_duration_ms",
"pause_seconds"
],
"properties": {
"speed_wpm": {
"type": "number"
},
"word_change": {
"type": [
"number",
"null"
]
},
"target_words": {
"type": "number"
},
"pause_seconds": {
"type": "number"
},
"reader_speed_wpm": {
"type": [
"number",
"null"
]
},
"reader_duration_ms": {
"type": [
"number",
"null"
]
},
"necessary_speed_wpm": {
"type": [
"number",
"null"
]
},
"target_duration_seconds": {
"type": "number"
},
"necessary_speed_fraction": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}{
"title": "Plan script length",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
1 advertised
teleprompter-widget — Linepace Teleprompter view
Interactive view for Linepace Teleprompter.
ui://widget/teleprompter-v6-1.0.0-c6f77a75786940cd33e6c06523defd04349f1884d0fb63fc382b6e8c10ee5f5f.htmlteleprompter-widget-legacy — Linepace Teleprompter view (previous versions)
ui://widget/teleprompter-{version}.html30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 566 ms
- 95th percentile latency
- 566 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 566 ms · metadata changed · 3 tool(s), 1 resource(s), 1 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http linepace-teleprompter-mcp https://teleprompter.zovo.one/mcpCodex
codex mcp add linepace-teleprompter-mcp --url https://teleprompter.zovo.one/mcpCursor
{
"mcpServers": {
"linepace-teleprompter-mcp": {
"url": "https://teleprompter.zovo.one/mcp"
}
}
}Cline
{
"mcpServers": {
"linepace-teleprompter-mcp": {
"type": "streamableHttp",
"url": "https://teleprompter.zovo.one/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"linepace-teleprompter-mcp": {
"type": "http",
"url": "https://teleprompter.zovo.one/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http linepace-teleprompter-mcp https://teleprompter.zovo.one/mcpClaude Desktop
{
"mcpServers": {
"linepace-teleprompter-mcp": {
"url": "https://teleprompter.zovo.one/mcp"
}
}
}Windsurf
{
"mcpServers": {
"linepace-teleprompter-mcp": {
"serverUrl": "https://teleprompter.zovo.one/mcp"
}
}
}Let your agent find its tools
Find servers like Linepace Teleprompter MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.