Koskamo

Perizent MCP

A hosted MCP server for Perizent that enables AI clients like Claude and Cursor to generate editable, right-to-left Persian (Farsi) PowerPoint decks from topics, notes, or full text, returning PPTX and PDF links.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Perizent MCP logo, by ablmontazer1997Community listingStreamable HTTPNo sign-inEndpoint checked 2026-11-06Published by ablmontazer1997
You need:Create your key at perizent.ir/mcp (Pro and Business plans)
MCP endpoint (Streamable HTTP)
https://perizent.ir/api/mcp
Vendor documentation

What its tools do

8 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

8 of 8 have a description · 4 of 8 declare behavior hints · 0 of 5 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Build a 10-slide Persian deck about a specific topic
  • Create presentations from full text or rough notes
  • Restyle existing decks with different themes or fonts
  • Share presentations via public online links

Source and maintenance

Community listingRegistry 1.0.0
Maintenance checked

Protocol and capabilities

Server
perizent 1.0.0
MCP protocol negotiated in check
2025-06-18
Tools
8 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Perizent (پریزنت) builds Persian (RTL) presentation decks (PPTX + PDF) with AI. Workflow: optionally call list_design_options, then create_presentation, then poll get_presentation every ~20 seconds until status is "done" (usually 1 to 3 minutes) and give the user the download links. Several decks are built in parallel; when the server is full a new deck waits in a queue (status "queued") and starts automatically. restyle_presentation changes theme/font/icons/animation/image style/brand of a finished deck in a few seconds without rewriting the content.

Tools

8 advertised

list_design_options — Perizent design options
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the available themes (visual designs), fonts, icon packs, animation levels, audiences and goals for Perizent presentations. Use the returned ids in create_presentation / restyle_presentation.

list_design_options input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
list_design_options annotations
{
  "readOnlyHint": true
}
create_presentation — Create a presentation
Advertised by the server during the last successful anonymous check.

Start building a Persian presentation deck. Returns a job_id immediately (status running, or queued if the server is full); the deck takes about 1-3 minutes, poll get_presentation for status and download links. input_mode: 'topic' = a short description, AI writes all content (20-2000 chars); 'full_text' = a complete text (report, article, speech or a meeting transcript): its substance becomes slides with nothing added, side talk and repetition dropped; set exact_text=true to keep every sentence verbatim (120-30000 chars); 'partial_text' = notes/draft that AI keeps and completes (40-30000 chars).

create_presentation input schema
{
  "type": "object",
  "required": [
    "content"
  ],
  "properties": {
    "font": {
      "type": "string",
      "description": "Font id from list_design_options (default: yekan; on the free plan only vazirmatn)."
    },
    "goal": {
      "enum": [
        "اطلاع‌رسانی",
        "متقاعدسازی",
        "آموزش",
        "فروش",
        "گزارشدهی",
        "هم‌راستاسازی"
      ],
      "type": "string",
      "default": "اطلاع‌رسانی"
    },
    "theme": {
      "type": "string",
      "description": "Theme id from list_design_options, or 'auto' (default) to let Perizent pick one that fits the topic."
    },
    "title": {
      "type": "string",
      "description": "Optional deck title (5-90 chars). Derived from the content if omitted."
    },
    "source": {
      "enum": [
        "pptx"
      ],
      "type": "string",
      "description": "Set to pptx when the content was extracted from an old PowerPoint (redesign; Pro plan)."
    },
    "content": {
      "type": "string",
      "description": "The topic description or the source text (Persian preferred)."
    },
    "audience": {
      "enum": [
        "عمومی",
        "مدیران",
        "کارشناسان",
        "سرمایه‌گذاران",
        "دانشجویان",
        "خبرنگاران"
      ],
      "type": "string",
      "default": "عمومی"
    },
    "animation": {
      "enum": [
        "none",
        "low",
        "medium",
        "high"
      ],
      "type": "string",
      "description": "PowerPoint animation level: none, low (fade transitions only), medium (transitions + fade-in of title and content groups), high (floating entrances, charts wipe up). Default: the account's setting (medium if unset)."
    },
    "icon_pack": {
      "type": "string",
      "description": "Icon pack id like 'ph:duotone' from list_design_options, or 'auto' (the theme's own icons)."
    },
    "brand_name": {
      "type": "string",
      "maxLength": 30,
      "description": "Optional company/brand name shown on every slide footer and used in the content."
    },
    "exact_text": {
      "type": "boolean",
      "description": "full_text only: true = every sentence of the text goes on the slides verbatim, nothing dropped. Default false = only the substance (side talk, chit-chat and repetition are left out)."
    },
    "input_mode": {
      "enum": [
        "topic",
        "full_text",
        "partial_text"
      ],
      "type": "string",
      "default": "topic"
    },
    "image_style": {
      "enum": [
        "photo",
        "illustration"
      ],
      "type": "string",
      "description": "Kind of images on the slides: photo (real stock photos) or illustration (flat illustrations in one consistent style). Default: the account's setting (illustration if unset)."
    },
    "logo_base64": {
      "type": "string",
      "description": "Optional company logo, base64 PNG/JPG/WEBP (max 5MB), shown on the cover and footers."
    },
    "slide_count": {
      "type": "integer",
      "maximum": 40,
      "minimum": 5,
      "description": "Optional target number of slides (5-24; up to 40 for full_text). Automatic if omitted. On the free plan only 5 or 10 (default 10)."
    }
  },
  "additionalProperties": false
}
get_presentation — Presentation status and downloads
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get the status of a presentation job. When status is 'done' it returns download links (PPTX, PDF; paid plans only, otherwise download_locked with a note) and slide preview images; links are valid for 7 days.

get_presentation input schema
{
  "type": "object",
  "required": [
    "job_id"
  ],
  "properties": {
    "job_id": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
get_presentation annotations
{
  "readOnlyHint": true
}
restyle_presentation — Restyle a presentation
Advertised by the server during the last successful anonymous check.

Re-render a finished deck with another theme, font, icon pack, animation level, image style or brand in a few seconds (content stays the same). Poll get_presentation afterwards for the new links.

restyle_presentation input schema
{
  "type": "object",
  "required": [
    "job_id"
  ],
  "properties": {
    "font": {
      "type": "string",
      "description": "Font id from list_design_options."
    },
    "theme": {
      "type": "string",
      "description": "Theme id from list_design_options."
    },
    "job_id": {
      "type": "string"
    },
    "animation": {
      "enum": [
        "none",
        "low",
        "medium",
        "high"
      ],
      "type": "string",
      "description": "PowerPoint animation level: none, low, medium or high."
    },
    "icon_pack": {
      "type": "string",
      "description": "Icon pack id, or 'auto'."
    },
    "brand_name": {
      "type": "string",
      "maxLength": 30
    },
    "image_style": {
      "enum": [
        "photo",
        "illustration"
      ],
      "type": "string",
      "description": "photo (real stock photos) or illustration (flat illustrations); the images are picked again."
    },
    "logo_base64": {
      "type": "string",
      "description": "New logo, base64 PNG/JPG/WEBP."
    },
    "remove_brand": {
      "type": "boolean",
      "description": "Remove the brand name and logo from the slides."
    }
  },
  "additionalProperties": false
}
share_presentation — Online presentation link
Advertised by the server during the last successful anonymous check.

Create or update the public online-presentation link of a finished deck (anyone with the link views it full-screen in the browser, no account needed; it always shows the latest version). Optional password, optional PPTX/PDF download for viewers, or revoke the link. Returns the URL and view statistics (views, unique visitors, average time, per-slide reach).

share_presentation input schema
{
  "type": "object",
  "required": [
    "job_id"
  ],
  "properties": {
    "job_id": {
      "type": "string"
    },
    "revoke": {
      "type": "boolean",
      "description": "Kill the link for everyone (a later share makes a new URL)."
    },
    "password": {
      "type": [
        "string",
        "null"
      ],
      "description": "Set a password (4-64 chars); null or empty removes it; omit to keep the current one."
    },
    "allow_download": {
      "type": "boolean",
      "description": "Let viewers download the PPTX and PDF (default false)."
    }
  },
  "additionalProperties": false
}
account_info — Account and credits
Advertised by the server during the last successful anonymous check.
Advertised read-only

Name, plan and this month's credits (used, remaining, reset date) of the account behind this access key, plus the plan's limits and the account's default settings for new decks.

account_info input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
account_info annotations
{
  "readOnlyHint": true
}
set_defaults — Default settings for new decks
Advertised by the server during the last successful anonymous check.

Change the account's defaults for new presentations (the same settings as the website profile): animation level and/or image style. Returns the new defaults.

set_defaults input schema
{
  "type": "object",
  "properties": {
    "animation": {
      "enum": [
        "none",
        "low",
        "medium",
        "high"
      ],
      "type": "string"
    },
    "image_style": {
      "enum": [
        "photo",
        "illustration"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}
list_presentations — My presentations
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the presentations created with this access key (newest first).

list_presentations input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
list_presentations annotations
{
  "readOnlyHint": true
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (3 of 3 answered).

  1. 2026-11-07: 2 of 2 checks answered
  2. 2026-11-09: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1026 ms
95th percentile latency
1026 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1026 ms · metadata changed · 8 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http perizent-mcp https://perizent.ir/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add perizent-mcp --url https://perizent.ir/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable perizent-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "perizent-mcp": {
      "url": "https://perizent.ir/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "perizent-mcp": {
      "type": "streamableHttp",
      "url": "https://perizent.ir/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start perizent-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "perizent-mcp": {
      "type": "http",
      "url": "https://perizent.ir/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http perizent-mcp https://perizent.ir/api/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://perizent.ir/api/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "perizent-mcp": {
      "serverUrl": "https://perizent.ir/api/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Perizent MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.