← MCP Security Catalog

2slides MCP Server 0.2.5

npm · 2slides-mcp · latest release

Verified with no proven findings
Security result
7
Observed tools
Version rating
Change risk

Independent inventory

Observed 2026-09-01T10:31:52.386Z using mcpSecurity-inventory. Protocol 2025-06-18.

ToolCategoryRisk
jobs_getGet job status and result by jobId. Poll every 20 seconds until status is 'success' or 'failed'. Response fields: jobId, status (pending/processing/success/failed), message, downloadUrl (when success), slidePageCount, createdAt, updatedAt, duration (ms), jobUrl (Nano Banana jobs only). Free — no credits charged.
Input schema
{
  "type": "object",
  "properties": {
    "jobId": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "jobId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
slides_create_like_thisGenerate slides (Nano Banana) that match the style of a reference image. mode defaults to 'async' — returns jobId to poll with jobs_get; 'sync' returns downloadUrl immediately. aspectRatio valid values: 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9 (default), 21:9. resolution: '1K', '2K' (default), '4K'. page: 0=auto-detect (default), 1-100=exact count. contentDetail: 'concise' or 'standard' (default). responseLanguage defaults to 'Auto'. Credits: 100 per page (1K/2K) or 200 per page (4K).
Input schema
{
  "type": "object",
  "properties": {
    "userInput": {
      "type": "string",
      "minLength": 1
    },
    "referenceImageUrl": {
      "type": "string",
      "minLength": 1
    },
    "responseLanguage": {
      "type": "string"
    },
    "aspectRatio": {
      "type": "string",
      "enum": [
        "1:1",
        "2:3",
        "3:2",
        "3:4",
        "4:3",
        "4:5",
        "5:4",
        "9:16",
        "16:9",
        "21:9"
      ]
    },
    "resolution": {
      "type": "string",
      "enum": [
        "1K",
        "2K",
        "4K"
      ]
    },
    "page": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100
    },
    "contentDetail": {
      "type": "string",
      "enum": [
        "concise",
        "standard"
      ]
    },
    "mode": {
      "type": "string",
      "enum": [
        "sync",
        "async"
      ]
    }
  },
  "required": [
    "userInput",
    "referenceImageUrl"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
slides_create_pdf_slidesGenerate custom-designed slides (Nano Banana) from text content without a reference image. mode defaults to 'async' — returns jobId to poll with jobs_get; 'sync' returns downloadUrl immediately. designStyle is optional free-text describing the visual style (leave empty for default styling). aspectRatio valid values: 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9 (default), 21:9. resolution: '1K', '2K' (default), '4K'. page: 0=auto-detect (default), 1-100=exact count. contentDetail: 'concise' or 'standard' (default). responseLanguage defaults to 'Auto'. Credits: 100 per page (1K/2K) or 200 per page (4K).
Input schema
{
  "type": "object",
  "properties": {
    "userInput": {
      "type": "string",
      "minLength": 1
    },
    "designStyle": {
      "type": "string"
    },
    "responseLanguage": {
      "type": "string"
    },
    "aspectRatio": {
      "type": "string",
      "enum": [
        "1:1",
        "2:3",
        "3:2",
        "3:4",
        "4:3",
        "4:5",
        "5:4",
        "9:16",
        "16:9",
        "21:9"
      ]
    },
    "resolution": {
      "type": "string",
      "enum": [
        "1K",
        "2K",
        "4K"
      ]
    },
    "page": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100
    },
    "contentDetail": {
      "type": "string",
      "enum": [
        "concise",
        "standard"
      ]
    },
    "mode": {
      "type": "string",
      "enum": [
        "sync",
        "async"
      ]
    }
  },
  "required": [
    "userInput"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
slides_download_slides_pages_voicesExport slide pages and audio narration as a ZIP file. The job must be completed and have narration generated (slides_generate_narration). ZIP contains: pages/ (page_01.png, page_02.png, …), voices/ (page_01.wav, page_02.wav, …), transcript.txt. Returns downloadUrl (expires in 1 hour), fileName, and expiresIn (3600 seconds). Free — no credits charged.
Input schema
{
  "type": "object",
  "properties": {
    "jobId": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "jobId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
slides_generateGenerate a PowerPoint presentation using pre-built themes (Fast PPT). Use themes_search first to get a themeId. mode='sync' (default) returns downloadUrl immediately; mode='async' returns a jobId to poll with jobs_get. responseLanguage defaults to 'Auto' (auto-detect); supported values: Auto, English, Spanish, Arabic, Portuguese, Indonesian, Japanese, Russian, Hindi, French, German, Greek, Vietnamese, Turkish, Thai, Polish, Italian, Korean, Simplified Chinese, Traditional Chinese. Credits: 1 per page.
Input schema
{
  "type": "object",
  "properties": {
    "userInput": {
      "type": "string",
      "minLength": 1
    },
    "themeId": {
      "type": "string",
      "minLength": 1
    },
    "responseLanguage": {
      "type": "string"
    },
    "mode": {
      "type": "string",
      "enum": [
        "sync",
        "async"
      ]
    }
  },
  "required": [
    "userInput",
    "themeId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
slides_generate_narrationAdd AI voice narration to a completed Nano Banana job (slides_create_like_this or slides_create_pdf_slides only; Fast PPT not supported). Async only — poll result with jobs_get. mode='single' (default): one narrator (speakerName, voice, contentMode, includeIntro). mode='multi': two narrators (speaker1Name and speaker2Name are required; speaker1Voice, speaker2Voice, contentMode optional). contentMode: 'concise' or 'standard' (default). includeIntro: true (default) or false. All 30 supported voices: Puck, Aoede, Charon, Kore, Fenrir, Zephyr, Leda, Orus, Callirrhoe, Autonoe, Enceladus, Iapetus, Umbriel, Algieba, Despina, Erinome, Algenib, Rasalgethi, Laomedeia, Achernar, Alnilam, Schedar, Gacrux, Pulcherrima, Achird, Zubenelgenubi, Vindemiatrix, Sadachbia, Sadaltager, Sulafat. Credits: 210 per page (10 text + 200 audio).
Input schema
{
  "type": "object",
  "properties": {
    "jobId": {
      "type": "string",
      "minLength": 1
    },
    "mode": {
      "type": "string",
      "enum": [
        "single",
        "multi"
      ]
    },
    "speakerName": {
      "type": "string"
    },
    "voice": {
      "type": "string",
      "enum": [
        "Puck",
        "Aoede",
        "Charon",
        "Kore",
        "Fenrir",
        "Zephyr",
        "Leda",
        "Orus",
        "Callirrhoe",
        "Autonoe",
        "Enceladus",
        "Iapetus",
        "Umbriel",
        "Algieba",
        "Despina",
        "Erinome",
        "Algenib",
        "Rasalgethi",
        "Laomedeia",
        "Achernar",
        "Alnilam",
        "Schedar",
        "Gacrux",
        "Pulcherrima",
        "Achird",
        "Zubenelgenubi",
        "Vindemiatrix",
        "Sadachbia",
        "Sadaltager",
        "Sulafat"
      ]
    },
    "contentMode": {
      "type": "string",
      "enum": [
        "concise",
        "standard"
      ]
    },
    "includeIntro": {
      "type": "boolean"
    },
    "speaker1Name": {
      "type": "string"
    },
    "speaker2Name": {
      "type": "string"
    },
    "speaker1Voice": {
      "type": "string",
      "enum": [
        "Puck",
        "Aoede",
        "Charon",
        "Kore",
        "Fenrir",
        "Zephyr",
        "Leda",
        "Orus",
        "Callirrhoe",
        "Autonoe",
        "Enceladus",
        "Iapetus",
        "Umbriel",
        "Algieba",
        "Despina",
        "Erinome",
        "Algenib",
        "Rasalgethi",
        "Laomedeia",
        "Achernar",
        "Alnilam",
        "Schedar",
        "Gacrux",
        "Pulcherrima",
        "Achird",
        "Zubenelgenubi",
        "Vindemiatrix",
        "Sadachbia",
        "Sadaltager",
        "Sulafat"
      ]
    },
    "speaker2Voice": {
      "type": "string",
      "enum": [
        "Puck",
        "Aoede",
        "Charon",
        "Kore",
        "Fenrir",
        "Zephyr",
        "Leda",
        "Orus",
        "Callirrhoe",
        "Autonoe",
        "Enceladus",
        "Iapetus",
        "Umbriel",
        "Algieba",
        "Despina",
        "Erinome",
        "Algenib",
        "Rasalgethi",
        "Laomedeia",
        "Achernar",
        "Alnilam",
        "Schedar",
        "Gacrux",
        "Pulcherrima",
        "Achird",
        "Zubenelgenubi",
        "Vindemiatrix",
        "Sadachbia",
        "Sadaltager",
        "Sulafat"
      ]
    }
  },
  "required": [
    "jobId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
themes_searchSearch pre-built themes for slides_generate (Fast PPT). Returns theme objects with id, name, description, previewUrl, and tags. Use the returned id as themeId in slides_generate. limit defaults to 10, max 100. Free — no credits charged.
Input schema
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Resources 0

Resource templates 0

Prompts 0

Changes from previous version

No completed comparison is available.

RiskChangeSubject
No material changes recorded.

Confirmed vulnerabilities

SeverityFindingAdvisory
No confirmed vulnerability is published for this version.

Provenance

Artifact SHA-256: c386b3234aace7a2d50f96823dd5b13813ede253399156acc3d7c0ec78249c49

Scanner: mcp-proof-engine 0.1.0.

Let’s talk about MCP security.

Share your details and our security team will contact you.