Koskamo

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.

Linepace Teleprompter MCP logo, by ZovoCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by Zovo
MCP endpoint (Streamable HTTP)
https://teleprompter.zovo.one/mcp
Vendor documentation

What 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

Community listingRegistry 1.0.0

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
Server-advertised capabilities
{
  "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.

Linepace Teleprompter shows a live scrolling speech script and calculates speech timing. Use show_teleprompter for a live reader, estimate_speech_time for timing and section breakdowns, and plan_script_length to fit a duration. Pause cues [PAUSE] and [PAUSE 3] add silent seconds.

Tools

3 advertised

show_teleprompter — Show teleprompter
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

show_teleprompter input schema
{
  "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."
    }
  }
}
show_teleprompter output schema
{
  "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
}
show_teleprompter annotations
{
  "title": "Show teleprompter",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
estimate_speech_time — Estimate speech time
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

estimate_speech_time input schema
{
  "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."
    }
  }
}
estimate_speech_time output schema
{
  "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
}
estimate_speech_time annotations
{
  "title": "Estimate speech time",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
plan_script_length — Plan script length
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

plan_script_length input schema
{
  "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."
    }
  }
}
plan_script_length output schema
{
  "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
}
plan_script_length annotations
{
  "title": "Plan script length",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

1 advertised

teleprompter-widget — Linepace Teleprompter view

Advertised by the server during the last successful anonymous check.

Interactive view for Linepace Teleprompter.

teleprompter-widget URI
ui://widget/teleprompter-v6-1.0.0-c6f77a75786940cd33e6c06523defd04349f1884d0fb63fc382b6e8c10ee5f5f.html

MIME type: text/html;profile=mcp-app

teleprompter-widget-legacy — Linepace Teleprompter view (previous versions)

Advertised by the server during the last successful anonymous check.

teleprompter-widget-legacy URI template
ui://widget/teleprompter-{version}.html

MIME type: text/html;profile=mcp-app

30-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.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http linepace-teleprompter-mcp https://teleprompter.zovo.one/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add linepace-teleprompter-mcp --url https://teleprompter.zovo.one/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable linepace-teleprompter-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "linepace-teleprompter-mcp": {
      "url": "https://teleprompter.zovo.one/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "linepace-teleprompter-mcp": {
      "type": "streamableHttp",
      "url": "https://teleprompter.zovo.one/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start linepace-teleprompter-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "linepace-teleprompter-mcp": {
      "type": "http",
      "url": "https://teleprompter.zovo.one/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http linepace-teleprompter-mcp https://teleprompter.zovo.one/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "linepace-teleprompter-mcp": {
      "url": "https://teleprompter.zovo.one/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "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.