Skip to main content

Connect Cursor to Speech is Cheap

This guide walks you through connecting Cursor to the Speech is Cheap MCP server, so you can transcribe audio and video recordings from public URLs and from files on your computer. The steps use the Cursor desktop app.

What You Need​

Before starting, ensure you have:

  • An eligible Cursor account: We tested these steps on the Plus plan. See Cursor's MCP documentation for background on how Cursor handles MCP servers.
  • A Speech is Cheap account with an active plan: Pick a plan on the Pricing page if you do not have an account. Your initial API key arrives by email.
  • A Speech is Cheap API key: Keys start with sk_. Create a dedicated API key in the Dashboard named "Cursor" so you can revoke it on its own. The dashboard displays keys only once. See the Dashboard guide for details.

Setup Steps​

Follow these steps to add the Speech is Cheap MCP server in Cursor:

  1. Cursor opens in its Agents window. In the left sidebar, click Customize, and then click the MCPs tab.

  2. Click New MCP Server. A menu offers User and, under Workspaces, the open projects. Choose User so the server is available in every project. Cursor opens ~/.cursor/mcp.json.

  3. Add this entry and save the file. If the file already lists other servers, add the speech-is-cheap entry inside the existing mcpServers object:

    {
    "mcpServers": {
    "speech-is-cheap": {
    "url": "https://mcp.speechischeap.com/mcp"
    }
    }
    }
  4. Back on the MCPs tab, speech-is-cheap appears under Needs Attention with "Needs authentication" and an Authenticate link. Click Authenticate. Cursor shows "Waiting for callback…" and opens a Speech is Cheap page in your browser.

  5. The page is titled Connect Cursor to Speech is Cheap. Because Cursor registers itself, the page displays: "This app registered itself, so its name may not be real. Access will be sent to www.cursor.com. Continue only if you started connecting from an app at that address." Continue if you just clicked Authenticate in Cursor. Enter your API key in the field labeled Speech is Cheap API key, and click Connect.

  6. The browser shows "Authorization complete!" and "You can close this tab and return to Cursor." Cursor finishes the sign-in through an address on your own computer (localhost), so complete the sign-in in a browser on the same computer that runs Cursor.

  7. On the MCPs tab, speech-is-cheap moves to Connected with "5 tools enabled".

The connection stays active when you restart Cursor.

As an alternative to steps 1 through 3, click Add Speech is Cheap to Cursor.

This link opens Cursor's Install MCP server? dialog with Name set to speech-is-cheap, Type set to Remote HTTPS, and Server URL set to https://mcp.speechischeap.com/mcp. Leave HTTP headers, Client ID, and Client Secret empty, click Install, and then continue from step 4 above.

Test the Connection​

Start a new conversation in Cursor and test the integration with a sample recording:

Please transcribe this audio file using Speech is Cheap: https://cdn.speechischeap.com/podcast-sic-api-01.m4a

Cursor calls the Speech is Cheap MCP server to transcribe the audio and prints the resulting text. In our test with Composer 2.5, this 20-minute audio sample returned the full transcript in a single transcribe call.

Composer turned on speaker labels without being asked. Because speaker labels are a paid add-on, specify the options you want in your prompt, such as "without speaker labels" or "with word-level timestamps".

In our test, Cursor answered follow-up questions from the transcript already in the chat, with timestamps, without new tool calls. Long transcripts arrive in pages, and Cursor fetched each page with get_transcript: the 20-minute sample in JSON format arrived in two pages. Word-level timestamps in JSON also worked, and the timings matched the Jobs API.

Approve Jobs Before They Run​

Cursor decides whether to ask before running a tool based on its Run Mode setting, at Settings (the gear icon next to your name in the bottom left) > Agents > Execution and Approvals > Run Mode. The options are Allowlist, Auto-Review (the default), and Run Everything.

In our test with the default Auto-Review, Cursor ran transcribe without asking, so the job started with no approval prompt.

With Allowlist, Cursor stopped before running transcribe, displayed the tool's arguments, and offered three choices: Skip, Always Run, and Run. Selecting Skip started no job.

If you want to approve each transcription before it starts, set Run Mode to Allowlist. Only completed jobs bill against your account plan; see Billing for details.

Transcribe Local Files​

Cursor's agent can run terminal commands on your computer, which allows it to transcribe local audio and video files. To transcribe a local file, Cursor calls prepare_upload, runs the returned upload command in the terminal, and retrieves the transcript using get_transcript.

The upload command reads your API key from the SIC_API_KEY environment variable. Signing in through Cursor does not set this variable.

Cursor reads environment variables only when it starts. To set up local file transcription:

  1. Add your API key to your shell profile (for example, ~/.zshrc or ~/.bashrc):

    export SIC_API_KEY=sk_...

    Keep your API key out of the chat and out of project files, such as a project's .cursor/mcp.json, which may be committed to source control.

  2. Quit Cursor completely and reopen it. In our test, adding the variable while Cursor was running had no effect until Cursor restarted. After the restart, the upload worked.

Once configured, test transcribing a local file in a Cursor conversation:

Please transcribe /path/to/recording.mp3 using Speech is Cheap.

Troubleshooting​

If you encounter issues during setup or while transcribing, check these common error messages:

  • This page expired. Enter your API key again. (on the sign-in page) The sign-in page expires after 10 minutes. Enter your API key again and click Connect.
  • Speech is Cheap rejected that API key. (on the sign-in page) or Speech is Cheap rejected the API key. (in a conversation) The API key is invalid or has been revoked. Generate a new key in the Dashboard. Then on the MCPs tab, click speech-is-cheap, click Logout, and click Authenticate again with the new key.
  • That API key has no active plan… (on the sign-in page) or This API key has no active plan… (in a conversation) Your API key is recognized, but the account lacks an active subscription or billing method. Open the Dashboard and update your plan under the Billing section.
  • Model unavailable on your plan If Cursor says the model is unavailable on your plan, pick one of the included models it lists. On the Plus plan, the default Auto model shows Model unavailable on Plus with a Switch to Composer button.
  • Invalid authorization header. Format: "Authorization: Bearer <key>" (when transcribing a local file) The SIC_API_KEY environment variable is not set where Cursor runs the upload command. Add export SIC_API_KEY=sk_... to your shell profile, quit Cursor completely, and reopen it.
  • "Needs authentication" (on the MCPs tab) The connection ended, for example after you clicked Logout or after 30 days without use. Click Authenticate to sign in again.
  • URL download errors When transcribing from a URL, the audio or video file must reside at a publicly accessible URL that downloads directly without requiring a login, session cookies, or interactive screens. See Input Requirements for supported media formats and URL rules.
  • Try again shortly messages These messages indicate temporary service or connection interruptions. Wait a few moments and resubmit your prompt.
  • Failed jobs If a transcription job fails, you are not charged. Only completed jobs bill against your account.

Disconnecting​

To disconnect Speech is Cheap from Cursor:

  • To sign out, go to the MCPs tab and click speech-is-cheap. In the Configure speech-is-cheap dialog, find Environments > Local, and click Logout. The server then shows "Needs authentication". Click Authenticate whenever you want to sign in again.
  • To remove the server completely, delete the speech-is-cheap entry from ~/.cursor/mcp.json.
  • Signing out or removing the server may not delete the API key the server stores for that connection. To cut off access everywhere at once, revoke the key in the Dashboard. Revocation can take a minute or more to apply across all systems.