Skip to main content
Glama

Server Details

Download DocSend and Papermark decks as PDF or PPTX, including email-gated and protected links.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 66 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.2/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have completely distinct purposes: one reports account/plan/quota metadata with no input, the other performs the extraction work. There is no plausible scenario where an agent would confuse them.

Naming Consistency3/5

Both names are lowercase and readable, but conventions are mixed: `account_status` uses underscore-separated noun_phrase style while `deckextract` is a single unseparated compound with no verb. A consistent scheme would be `check_account`/`extract_deck` or `account_status`/`extraction_status`.

Tool Count3/5

Two tools is thin for a server, though the extraction tool is deliberately rich (analyze mode, data rooms, OTP/resume flow). It sits on the borderline between minimal-and-sufficient and under-provisioned.

Completeness4/5

Extraction plus quota/plan status covers the core workflow, and the OTP/resume handling closes the main dead end. Gaps are minor: no way to list or re-retrieve past extractions, check the status of a long-running job, or cancel one.

Available Tools

2 tools
account_statusCheck your DeckExtract account statusA
Read-onlyIdempotent
Inspect

Returns the calling account's plan (free or Pro), whether it's signed in, and this month's extraction usage and remaining quota. Takes no input.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
planYes'unlimited' is the Pro plan
emailNo
isProYes
remainingYesExtractions left this month; null when unlimited
monthlyLimitYesFree-plan monthly cap; null when unlimited
monthlyUsageYesExtractions used this calendar month
authenticatedYesWhether the caller is signed in

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so behavioral traits are covered. The description adds detail on what data is returned, which is useful but not beyond what annotations convey.

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, no redundant information. Every word earns its place.

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

Completeness5/5

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

For a simple read-only tool with no parameters, good annotations, and an output schema, the description is adequately complete. It specifies the key returned fields.

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?

No parameters; schema coverage is 100%. Description confirms 'Takes no input,' matching the empty input schema. Baseline for 0 params is 4.

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

Purpose5/5

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

Description clearly states the tool returns account plan, sign-in status, and usage/quota. Verb 'returns' and resource 'calling account's status' are specific. Sibling 'deckextract' is likely for a different purpose, so no confusion.

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?

Explicitly states it takes no input, implying it can be called freely. Does not explicitly state when not to use it, but context with sibling tool makes it clear this is for status checks.

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

deckextractExtract a DocSend or Papermark deckAInspect

Extract a deck from a DocSend or Papermark sharing link. Returns a temporary download URL and a readable deckextract://deck/... resource for the PDF/PPTX (or a ZIP for data rooms — a DocSend Space or Papermark data room counts as one extraction like any other link). Pass analyze: true (part of DeckExtract for Funds) to also return structured deck data. Decks that email the viewer a verification step return resume tokens with retry instructions: fetch the emailed 6-digit code and retry with otp + otpSessionId (Papermark), or retry with url set to the emailed confirmation link + sessionId (DocSend). Typical extraction takes 15-90 seconds; the public API is rate limited to 5 extractions per IP per 30 minutes.

NameRequiredDescriptionDefault
otpNoThe 6-digit verification code the deck emailed to the viewer (requires_email_otp step). Send together with otpSessionId.
urlYesThe deck sharing link, e.g. https://docsend.com/view/... or https://papermark.com/view/... — on a requires_email_confirmation retry, pass the confirmation link from the verification email instead.
emailNoEmail to present to email-gated decks. If omitted, an ephemeral address is generated automatically when the deck requires one.
formatNoOutput format (default 'pdf')
analyzeNoIf true, also return structured analysis of the deck (company, team, round, metrics, market, competition). Part of DeckExtract for Funds.
passwordNoPasscode for passcode-protected decks
sessionIdNoResume token from a prior requires_password or requires_email_confirmation reply. Echo it on the retry so the same viewer session is reused.
otpSessionIdNoResume token from a prior requires_email_otp reply. The parked session lives ~5 minutes; a wrong code returns a fresh token.

Output Schema

NameRequiredDescription
noteNoPages the source had no image for, in plain words (e.g. DocSend counts its own trailing sign-up prompt as a page)
formatYes
analysisNoStructured deck analysis (present when analyze=true succeeded)
expiresAtYesISO timestamp when the URL/resource expires
sizeBytesYes
sourceUrlYes
downloadUrlYesTemporary URL of the extracted deck
resourceUriYesMCP resource URI (deckextract://deck/...) to read the bytes via resources/read
analysisErrorNoSet when extraction succeeded but analysis could not be produced

TDQS

A4.6/5.0
Behavior5/5

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

With annotations covering only the safety profile (readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false), the description carries real additional weight: rate limit of 5 extractions per IP per 30 minutes, 15-90 second typical duration, ZIP output for data rooms, the ~5 minute parked-session lifetime, and the fact that a wrong code returns a fresh token. These are exactly the operational traits an agent cannot infer from structured fields. No contradiction with annotations — resource creation justifies readOnlyHint=false.

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?

Front-loaded with purpose, then progressively more conditional detail (analyze flag, verification flows, timing, rate limits) — a sensible information hierarchy. Some sentences are dense and parenthetical-heavy, but essentially every clause carries an actionable fact, so waste is minimal.

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

Completeness5/5

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

An output schema exists, yet the description still sketches the return shape (download URL, deck resource, ZIP vs PDF/PPTX) without redundancy. All the gaps an agent would otherwise hit — authentication/verification retries, latency, throttling, data-room handling — are covered, leaving nothing material missing for an 8-parameter, 1-required tool.

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?

Schema description coverage is 100%, so the baseline is 3, but the description adds genuine semantics on top: it explains that `otp` must be sent together with `otpSessionId`, that `url` should be swapped for the emailed confirmation link on a DocSend retry, and that `sessionId` is echoed to reuse a viewer session. These pairing/substitution rules are not spelled out per-parameter in the schema.

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

Purpose5/5

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

The first sentence names a specific verb and resource ('Extract a deck from a DocSend or Papermark sharing link') and immediately states what comes back (a temporary download URL plus a `deckextract://deck/...` resource). It is unmistakable against the only sibling, account_status, which is an unrelated account tool.

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?

The description gives conditional guidance: use `analyze: true` only under DeckExtract for Funds, and branch on the verification step (fetch the emailed 6-digit code and retry with `otp`+`otpSessionId` for Papermark, or pass the emailed confirmation link as `url` with `sessionId` for DocSend). It never states when-not to use it or compares against account_status, but for a single-purpose extractor that context is largely self-evident.

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. 1 tool update
    • Changeddeckextract1 field changed
      • addedOutput schema / properties / note
        Added value: +{
        +  "description": "Pages the source had no image for, in plain words (e.g. DocSend counts its own trailing sign-up prompt as a page)",
        +  "type": "string"
        +}
  2. 1 tool update
    • Changeddeckextract1 field changed
      • changedInput schema / properties / analyze / description
        Previous value: -"If true, also return structured analysis of the deck (company, team, round, metrics, market, competition). Requires a DeckExtract Pro account."New value: +"If true, also return structured analysis of the deck (company, team, round, metrics, market, competition). Part of DeckExtract for Funds."
  3. 1 tool update
    • Changeddeckextract4 fields changed
      • addedInput schema / properties / otp
        Added value: +{
        +  "description": "The 6-digit verification code the deck emailed to the viewer (requires_email_otp step). Send together with otpSessionId.",
        +  "type": "string"
        +}
      • addedInput schema / properties / otpSessionId
        Added value: +{
        +  "description": "Resume token from a prior requires_email_otp reply. The parked session lives ~5 minutes; a wrong code returns a fresh token.",
        +  "type": "string"
        +}
      • addedInput schema / properties / sessionId
        Added value: +{
        +  "description": "Resume token from a prior requires_password or requires_email_confirmation reply. Echo it on the retry so the same viewer session is reused.",
        +  "type": "string"
        +}
      • changedInput schema / properties / url / description
        Previous value: -"The deck sharing link, e.g. https://docsend.com/view/... or https://papermark.com/view/..."New value: +"The deck sharing link, e.g. https://docsend.com/view/... or https://papermark.com/view/... — on a requires_email_confirmation retry, pass the confirmation link from the verification email instead."
  4. 2 tool updates
    • Addedaccount_status
    • Changeddeckextract1 field changed
      • changedInput schema / properties / analyze / description
        Previous value: -"If true, also return structured analysis of the deck (company, team, round, metrics, market, competition). Requires a DeckExtract Pro API key in the Authorization header."New value: +"If true, also return structured analysis of the deck (company, team, round, metrics, market, competition). Requires a DeckExtract Pro account."
  5. 1 tool update
    • Changeddeckextract7 fields changed
      • addedInput schema / properties / analyze
        Added value: +{
        +  "description": "If true, also return structured analysis of the deck (company, team, round, metrics, market, competition). Requires a DeckExtract Pro API key in the Authorization header.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / analysis
        Added value: +{
        +  "description": "Structured deck analysis (present when analyze=true succeeded)"
        +}
      • addedOutput schema / properties / analysisError
        Added value: +{
        +  "description": "Set when extraction succeeded but analysis could not be produced",
        +  "type": "string"
        +}
      • changedOutput schema / properties / expiresAt / description
        Previous value: -"ISO timestamp when the URL expires"New value: +"ISO timestamp when the URL/resource expires"
      • changedOutput schema / properties / format / enum
        Previous value: -[
        -  "pdf",
        -  "pptx"
        -]New value: +[
        +  "pdf",
        +  "pptx",
        +  "zip"
        +]
      • addedOutput schema / properties / resourceUri
        Added value: +{
        +  "description": "MCP resource URI (deckextract://deck/...) to read the bytes via resources/read",
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "downloadUrl",
        -  "format",
        -  "sizeBytes",
        -  "expiresAt",
        -  "sourceUrl"
        -]New value: +[
        +  "downloadUrl",
        +  "resourceUri",
        +  "format",
        +  "sizeBytes",
        +  "expiresAt",
        +  "sourceUrl"
        +]
  6. 1 tool update
    • First observeddeckextract

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI models to convert NotebookLM PDF exports into high-quality PowerPoint presentations with automatic watermark removal and vector graphics preservation. It provides automated tools for slide conversion, metadata management, and document processing via the Model Context Protocol.
    17
    MIT
  • A
    license
    C
    quality
    B
    maintenance
    Enables LLMs to automatically generate presentation slides from natural language instructions using 80+ business-oriented templates, with auto-save and PDF export.
    83
    2,199 npm
    1
    AGPL 3.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources