DeckExtract
Download DocSend and Papermark decks as PDF or PPTX, including email-gated and protected links.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"deckextract": {
"url": "https://deckextract.com/mcp"
}
}
}Remote-Endpunkte
https://deckextract.com/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (2)
🟡deckextract(url, format, analyze, email, password, ...)
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` (requires a DeckExtract Pro account) 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.
Eingabe-Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "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."
},
"format": {
"type": "string",
"enum": [
"pdf",
"pptx"
],
"description": "Output format (default 'pdf')"
},
"analyze": {
"type": "boolean",
"description": "If true, also return structured analysis of the deck (company, team, round, metrics, market, competition). Requires a DeckExtract Pro account."
},
"email": {
"type": "string",
"format": "email",
"description": "Email to present to email-gated decks. If omitted, an ephemeral address is generated automatically when the deck requires one."
},
"password": {
"type": "string",
"description": "Passcode for passcode-protected decks"
},
"sessionId": {
"type": "string",
"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."
},
"otp": {
"type": "string",
"description": "The 6-digit verification code the deck emailed to the viewer (requires_email_otp step). Send together with otpSessionId."
},
"otpSessionId": {
"type": "string",
"description": "Resume token from a prior requires_email_otp reply. The parked session lives ~5 minutes; a wrong code returns a fresh token."
}
},
"required": [
"url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"downloadUrl": {
"type": "string",
"description": "Temporary URL of the extracted deck"
},
"resourceUri": {
"type": "string",
"description": "MCP resource URI (deckextract://deck/...) to read the bytes via resources/read"
},
"format": {
"type": "string",
"enum": [
"pdf",
"pptx",
"zip"
]
},
"sizeBytes": {
"type": "integer"
},
"expiresAt": {
"type": "string",
"description": "ISO timestamp when the URL/resource expires"
},
"sourceUrl": {
"type": "string"
},
"analysis": {
"description": "Structured deck analysis (present when analyze=true succeeded)"
},
"analysisError": {
"type": "string",
"description": "Set when extraction succeeded but analysis could not be produced"
}
},
"required": [
"downloadUrl",
"resourceUri",
"format",
"sizeBytes",
"expiresAt",
"sourceUrl"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢account_status
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.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"authenticated": {
"type": "boolean",
"description": "Whether the caller is signed in"
},
"plan": {
"type": "string",
"enum": [
"anonymous",
"free",
"unlimited"
],
"description": "'unlimited' is the Pro plan"
},
"isPro": {
"type": "boolean"
},
"email": {
"type": [
"string",
"null"
]
},
"monthlyUsage": {
"type": "integer",
"description": "Extractions used this calendar month"
},
"monthlyLimit": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Free-plan monthly cap; null when unlimited"
},
"remaining": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Extractions left this month; null when unlimited"
}
},
"required": [
"authenticated",
"plan",
"isPro",
"monthlyUsage",
"monthlyLimit",
"remaining"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Nachweis