Skip to main content
Glama

Server Details

Turn any video or audio recording into text your AI can read, summarize and search. Say "transcribe my video", drop the file on the private link, and your AI reads the transcript. Free plan, nothing to install.

Ownership verified
Status
Healthy
Uptime
90.8% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a distinct role in the transcription workflow: upload-link creation, job-status polling, transcript retrieval, usage checks, and job listing. The descriptions explicitly sequence related tools, and get_job versus list_jobs is clearly separated by purpose (status check vs. finding recordings).

Naming Consistency5/5

All tools use predictable snake_case verb_noun naming: create_upload_link, get_job, get_transcript, get_usage, and list_jobs. The pattern is consistent enough that an agent can infer tool behavior from the name.

Tool Count5/5

Five tools is well-scoped for a transcription service, covering upload, polling, retrieval, history, and billing in a compact surface. Each tool has a clear role with no redundant entries.

Completeness4/5

The core lifecycle is covered: create an upload link, poll the job, retrieve the full transcript, list prior jobs, and check remaining usage. Minor gaps exist, such as canceling or deleting jobs, but these are not essential for the primary workflow.

Available Tools

5 tools
get_jobGet job statusA
Read-only
Inspect

Use to check whether a transcription is finished. Poll every ~10 seconds until status is done or failed.

NameRequiredDescriptionDefault
idYesJob id (UUID).

Output Schema

NameRequiredDescription
idYesJob id (UUID).
errorNoFailure message when status is failed, otherwise null.
statusYesqueued, running, done or failed (more values may be added).
progressYesProgress from 0 to 100.
upgrade_urlNoPresent when the user is nearly or fully out of minutes: where to add hours or upgrade.
duration_secondsNoAudio length in seconds, or null until known.
remaining_secondsNoSeconds of transcription the user has left (monthly minutes plus any hour pack).

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered; the description adds the valuable behavioral detail that this is a polled, non-terminal operation with two terminal states (done/failed). It does not describe the returned status values, but an output schema exists to cover that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with the purpose front-loaded and the polling instruction second. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with full annotation coverage and an output schema, the description supplies exactly the missing piece: the polling contract and termination condition. Only a pointer to what to do after completion would add more.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With a single required parameter at 100% schema description coverage ('Job id (UUID)'), the schema carries the semantics fully. The description adds nothing about the id, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action (check whether a transcription is finished) which clearly identifies this as a status-polling tool for a job. It implicitly separates from get_transcript (content retrieval) and list_jobs (enumeration), though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete operational guidance: poll every ~10 seconds and stop when status is done or failed. It does not say what to do once done (i.e., call get_transcript) or what to do on failure, so the routing to alternatives is left implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_transcriptGet transcriptA
Read-only
Inspect

Use after get_job shows done. For long recordings, keep calling with next_offset until it's absent, then answer from the full text.

NameRequiredDescriptionDefault
idYesJob id (UUID).
formatNotxt, srt or json (default json).
offsetNoCharacter offset to start at (default 0).
max_charsNoMax characters to return (default 50000).

Output Schema

NameRequiredDescription
textYesThis page of the transcript (plain text, SRT, or the json format's text).
languageNoDetected language (json format only), or null.
next_offsetNoOffset to pass on the next call; absent on the last page.
total_charsYesTotal characters in the full transcript.
duration_secondsNoAudio length in seconds (json format only), or null.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=true, openWorldHint=false), so the description's value-add is the ordering dependency and the pagination-until-exhausted behavior, which it does disclose. It stops short of saying what a truncated/absent page looks like, so it is good but not complete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the prerequisite and then the loop; nothing is padded. The closing 'then answer from the full text' is task coaching rather than tool guidance, a minor bit of non-essential content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description correctly focuses on sequencing and pagination, the non-obvious parts. The unstated identity of 'next_offset' relative to the schema's 'offset' is the remaining gap for an agent driving the loop.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so id, format, offset and max_chars are already documented, making 3 the baseline. The description adds pagination semantics but refers to 'next_offset', a field that does not exist in the input schema (which uses 'offset'), which risks confusing which parameter to advance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never explicitly says what the tool returns; the reader must infer from the name 'get_transcript' and the phrase 'answer from the full text' that it fetches transcription text. It does implicitly separate itself from get_job by saying to use it after get_job reports done, so the purpose is recoverable but not stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names the prerequisite tool and condition ('after get_job shows done') and gives an explicit pagination loop ('keep calling with next_offset until it's absent'). That is a clear when-to-use rule with a named alternative, leaving little to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_usageGet usageA
Read-only
Inspect

Use when the user asks how many minutes they have left, or after an out-of-minutes error. Anyone, including free accounts, can add a one-time 5-hour pack for $10 at upgrade_url.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
planYesPlan id, e.g. free, starter, pro or power (more may be added).
period_endNoISO 8601 UTC end of the current period, or null.
upgrade_urlNoWhere to add a one-time hour pack or upgrade the plan.
bonus_secondsNoSeconds left in one-time hour packs (used after the monthly seconds).
monthly_secondsNoSeconds included each period.
remaining_secondsYesSeconds of transcription left this period.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered by structured data. The description adds genuinely non-obvious behavior: the result applies to anyone including free accounts, and there is a self-serve remediation path ($10 one-time 5-hour pack via upgrade_url). It does not say whether upgrade_url is a returned field versus an external link, which is the only ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, with the primary trigger front-loaded and no filler. The second sentence is somewhat tangential to what the tool does, sitting closer to remediation advice than tool definition, but it earns its place for the out-of-minutes recovery scenario.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Zero required parameters, full schema coverage, an output schema, and annotations covering the read-only profile mean very little needs to be said. The description covers when to call and what to do with the result; only the nature of upgrade_url (returned field vs. static URL) is left slightly underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. The mention of upgrade_url in the description could be misread as an input, but the schema makes clear no inputs exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description conveys the resource clearly – remaining minutes/usage for the account – and the trigger condition makes the outcome unambiguous. It lacks an explicit verb like 'returns' and the second sentence pivots to upsell content, which dilutes focus slightly, but an agent can still tell what this tool yields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Two concrete invocation triggers are given: the user asking how many minutes are left, and recovery after an out-of-minutes error. No exclusions or alternative tools are named, but none of the siblings (create_upload_link, get_job, get_transcript, list_jobs) overlaps with usage lookup, so there is little to distinguish against.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_jobsList transcription jobsA
Read-only
Inspect

Use to find the user's recordings, e.g. 'my latest recording'. Newest first; no transcript text.

NameRequiredDescriptionDefault
limitNoMax jobs to return (default 20).

Output Schema

NameRequiredDescription
jobsYesThe user's jobs, newest first.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only and closed-world safety, so the bar is lower; the description adds genuinely non-obvious behavior — result ordering (newest first) and the exclusion of transcript text, which tells the agent it must chain to get_transcript for content.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact clauses; the selection trigger is front-loaded and the behavioral caveats follow without padding. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is unnecessary, and the description supplies the two facts an agent most needs (ordering, no transcript text). Only the missing differentiation from get_job keeps it short of a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single 'limit' parameter is fully documented with its default of 20 in the schema. The description adds nothing about the parameter, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete retrieval action ('find the user's recordings') and adds scope qualifiers ('Newest first; no transcript text'). Combined with the name/title it clearly identifies a jobs-listing tool, distinguishable from get_job/get_transcript, though it never explicitly says 'list jobs'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The trigger example ('my latest recording') implies the discovery scenario — use this when you don't have a job ID. However, it never names the alternatives (get_job for a known ID, get_transcript for content) or states when NOT to use it, so the routing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • Changedcreate_upload_link2 fields changed
      • addedOutput schema / properties / remaining_seconds
        Added value: +{
        +  "description": "Seconds of transcription the user has left (monthly minutes plus any hour pack).",
        +  "type": "number"
        +}
      • addedOutput schema / properties / upgrade_url
        Added value: +{
        +  "description": "Present when the user is nearly or fully out of minutes: where to add hours or upgrade.",
        +  "type": "string"
        +}
    • Changedget_job2 fields changed
      • addedOutput schema / properties / remaining_seconds
        Added value: +{
        +  "description": "Seconds of transcription the user has left (monthly minutes plus any hour pack).",
        +  "type": "number"
        +}
      • addedOutput schema / properties / upgrade_url
        Added value: +{
        +  "description": "Present when the user is nearly or fully out of minutes: where to add hours or upgrade.",
        +  "type": "string"
        +}
    • Changedget_usage2 fields changed
      • changedOutput schema / properties / bonus_seconds / description
        Previous value: -"Carried-over top-up seconds."New value: +"Seconds left in one-time hour packs (used after the monthly seconds)."
      • addedOutput schema / properties / upgrade_url
        Added value: +{
        +  "description": "Where to add a one-time hour pack or upgrade the plan.",
        +  "type": "string"
        +}
  2. 5 tool updates
    • Changedcreate_upload_link1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "expires_in_minutes": {
        +      "description": "Minutes until the link expires.",
        +      "type": "number"
        +    },
        +    "single_use": {
        +      "description": "Always true; the link works once.",
        +      "type": "boolean"
        +    },
        +    "url": {
        +      "description": "Single-use upload page URL. Open it and drop the file.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "url",
        +    "expires_in_minutes",
        +    "single_use"
        +  ],
        +  "type": "object"
        +}
    • Changedget_job1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "duration_seconds": {
        +      "description": "Audio length in seconds, or null until known.",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "error": {
        +      "description": "Failure message when status is failed, otherwise null.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "id": {
        +      "description": "Job id (UUID).",
        +      "type": "string"
        +    },
        +    "progress": {
        +      "description": "Progress from 0 to 100.",
        +      "type": "number"
        +    },
        +    "status": {
        +      "description": "queued, running, done or failed (more values may be added).",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "id",
        +    "status",
        +    "progress"
        +  ],
        +  "type": "object"
        +}
    • Changedget_transcript1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "duration_seconds": {
        +      "description": "Audio length in seconds (json format only), or null.",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "language": {
        +      "description": "Detected language (json format only), or null.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "next_offset": {
        +      "description": "Offset to pass on the next call; absent on the last page.",
        +      "type": "number"
        +    },
        +    "text": {
        +      "description": "This page of the transcript (plain text, SRT, or the json format's text).",
        +      "type": "string"
        +    },
        +    "total_chars": {
        +      "description": "Total characters in the full transcript.",
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "text",
        +    "total_chars"
        +  ],
        +  "type": "object"
        +}
    • Changedget_usage1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "bonus_seconds": {
        +      "description": "Carried-over top-up seconds.",
        +      "type": "number"
        +    },
        +    "monthly_seconds": {
        +      "description": "Seconds included each period.",
        +      "type": "number"
        +    },
        +    "period_end": {
        +      "description": "ISO 8601 UTC end of the current period, or null.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "plan": {
        +      "description": "Plan id, e.g. free, starter, pro or power (more may be added).",
        +      "type": "string"
        +    },
        +    "remaining_seconds": {
        +      "description": "Seconds of transcription left this period.",
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "plan",
        +    "remaining_seconds"
        +  ],
        +  "type": "object"
        +}
    • Changedlist_jobs1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "jobs": {
        +      "description": "The user's jobs, newest first.",
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "completed_at": {
        +            "description": "ISO 8601 UTC time the job finished, or null.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "created_at": {
        +            "description": "ISO 8601 UTC time the job was created, or null.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "duration_seconds": {
        +            "description": "Audio length in seconds, or null until known.",
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "id": {
        +            "description": "Job id (UUID).",
        +            "type": "string"
        +          },
        +          "status": {
        +            "description": "queued, running, done or failed (more values may be added).",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "status"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "jobs"
        +  ],
        +  "type": "object"
        +}
  3. 5 tool updates
    • First observedcreate_upload_link
    • First observedget_job
    • First observedget_transcript
    • First observedget_usage
    • First observedlist_jobs

Publisher details

Operator
GimmeText · Publisher source
Operator website
https://gimmetext.com
Vendor relationship
First-party · Publisher source
Trust center
Not applicable
Restrictions
A free GimmeText account is required (email or Google sign-in). The free plan includes 5 minutes of transcription a month with no card; paid plans from $5 a month add more. No admin approval, regional limit or custom OAuth app is needed.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to transcribe links (YouTube, Google Drive, Dropbox), list and search your recordings for spoken words and moments, and read transcripts in json/txt/srt/vtt, summaries and metadata. It also lets them request new summaries and delete recordings, all through your own account with API-key or OAuth sign-in.
    8
    378 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables transcription of audio files using Google Gemini AI and creates a searchable knowledge base, allowing users to ask natural language questions about content in meetings, podcasts, lectures, and other audio recordings.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources