Slideless

ai.slideless由 slideless.ai 發布官方發布者v0.1.0更新於 Oct 24, 2026

List, share, upload, and manage Slideless HTML presentations from any MCP host.

已驗證Streamable HTTP可網頁執行效率與工作流檔案與儲存媒體與設計

概覽

AI 產生的概覽

讓助理列出、上傳、分享與管理 Slideless HTML 簡報,並可瀏覽或改編市集中的作品。

可以做什麼
將 Slideless HTTP API 包裝成 MCP 工具。助理可以檢查身分,列出並檢視簡報及其版本歷程,下載版本檔案,上傳單一檔案或多檔案 HTML 簡報,產生或撤銷分享權杖,以電子郵件寄送分享連結,邀請或移除協作者,以及刪除簡報。它也能搜尋公開市集、取得項目詳情、改編項目、發布簡報,以及收藏或取消收藏項目。
適用情境
適合在 Slideless 上存放 HTML 投影片、並希望從聊天用戶端直接發布、分享或整理的使用者,也適合不需 CLI 即可尋找和改編市集簡報的情境。
執行需求
使用位於 mcp.slideless.ai 的遠端 streamable-HTTP 端點,無需本機安裝。建議透過 app.slideless.ai 進行 OAuth 登入;支援自訂標頭的用戶端也可改為送出 Authorization 承載 API 金鑰。需要能存取該端點的網路。
安裝前請注意
伺服器會把你的 Authorization 標頭原樣轉送至 Slideless 後端函式,因此該權杖可存取你的帳戶。多個工具會變更資料:上傳、建立與撤銷分享權杖、以電子郵件寄送分享連結、邀請或移除協作者、發布至市集,以及永久刪除簡報。市集搜尋、項目檢視與改編工具無需金鑰。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Slideless,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/ai.slideless%2Fmcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "slideless": {
      "type": "http",
      "url": "https://mcp.slideless.ai/mcp"
    }
  }
}

README

slideless-mcp

MCP server for Slideless. Wraps the Slideless HTTP API as Model Context Protocol tools so users can list, share, upload, and manage HTML presentations from any MCP host (Claude Desktop, claude.ai, ChatGPT desktop, Cursor, etc.) without installing the slideless CLI.

Hosted on Vercel (Next.js App Router + mcp-handler) at https://mcp.slideless.ai/mcp. Listed on the official MCP registry as ai.slideless/mcp.

Architecture

Stateless Next.js route handler — streamable-HTTP transport, no session store. A per-request McpServer is built on each /mcp call and the user's Authorization header is forwarded verbatim to the Slideless Cloud Functions in europe-west1. No database, no secrets to rotate — the user's token never leaves the request.

Claude / ChatGPT  →  mcp.slideless.ai/mcp  (Vercel / Next.js)                          │                          ▼                 europe-west1-slideless-ai.cloudfunctions.net

Authentication

The server is an OAuth 2.1 resource server. It does not host the auth flow itself — it advertises app.slideless.ai as the authorization server and forwards tokens to the Cloud Functions, which validate them. Two header styles are accepted, both forwarded verbatim:

  • OAuth (recommended) — hosts that speak OAuth (Claude Desktop, claude.ai) discover the flow automatically: a no-auth request to /mcp returns 401 with a WWW-Authenticate header pointing at /.well-known/oauth-protected-resource (RFC 9728), which points at app.slideless.ai. The user signs in / signs up and consents in-browser; no key is ever pasted. New API keys are minted invisibly by the authorization server.
  • Static API key — hosts that support custom headers (Cursor, Claude Code) can send Authorization: Bearer cko_… directly.

Use as a connector

  1. In Claude Desktop / claude.ai / ChatGPT: add a custom connector with URL https://mcp.slideless.ai/mcp.
  2. The host discovers OAuth and opens the Slideless sign-in. Authorize, and you're connected.
  3. (Static-key hosts only) Get a cko_… key at https://app.slideless.ai → Settings → API Keys, and set it as the Authorization header.

Tools

ToolWhat it does
slideless_whoamiIdentity check — returns org, key name, scopes
slideless_list_presentationsList owned + invited presentations
slideless_get_presentationFull info for one presentation (tokens, collaborators)
slideless_list_versionsVersion history of a presentation
slideless_get_versionManifest of a specific version
slideless_download_versionManifest + inline text-file contents (HTML/CSS/JS up to 256 KB each)
slideless_upload_html_presentationUpload a single-file HTML deck
slideless_upload_presentation_filesUpload a multi-file deck (base64 array)
slideless_add_share_tokenMint a public viewer URL
slideless_set_token_version_modePin or unpin a token to a version
slideless_unshare_presentationRevoke one or all share tokens
slideless_share_via_emailSend the share URL by email
slideless_invite_collaboratorGrant another user dev access (sends email)
slideless_uninvite_collaboratorRevoke a collaborator
slideless_list_collaboratorsList collaborators on a presentation
slideless_delete_presentationPermanently delete a presentation
slideless_search_marketplaceSearch the public marketplace for remixable presentations, apps, and plans (no key)
slideless_get_marketplace_listingFull detail for one marketplace listing by slug (no key)
slideless_remix_listingRemix a listing — returns the manifest plus inline contents of every text file (no key)
slideless_publish_listingPublish a pushed presentation to the marketplace (requires marketplace:publish scope)
slideless_star_listingStar a marketplace listing on behalf of the connected user
slideless_unstar_listingRemove the connected user's star from a listing

Local development

bash
pnpm installpnpm dev            # next dev → http://localhost:8787

Test with the MCP Inspector:

bash
npx @modelcontextprotocol/inspector# Transport: Streamable HTTP# URL: http://localhost:8787/mcp# Header: Authorization: Bearer cko_<your-key>

Or with raw curl (initialize handshake):

bash
curl -s http://localhost:8787/mcp -X POST \  -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \  -H "Authorization: Bearer cko_<your-key>" \  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"0"}}}'

Type checking: pnpm typecheck.

Deploy

Pushed to main → Vercel auto-deploys production (project codika/slideless-mcp). Manual deploy:

bash
vercel deploy --prod --scope codika

Rate limiting is enforced at the edge by Vercel WAF rules (managed via the vercel firewall CLI), matching path starts-with /mcp:

  • mcp-per-ip → 60 req / 10s, keyed by IP
  • mcp-per-key → 600 req / 60s, keyed by the Authorization header (so each API key / OAuth token gets its own bucket)

Both return 429 when exceeded, before the function runs. Recreate with:

bash
vercel firewall rules add "mcp-per-ip" --condition '{"type":"path","op":"pre","value":"/mcp"}' \  --action rate_limit --rate-limit-window 10 --rate-limit-requests 60 --rate-limit-keys ip --yesvercel firewall rules add "mcp-per-key" --condition '{"type":"path","op":"pre","value":"/mcp"}' \  --action rate_limit --rate-limit-window 60 --rate-limit-requests 600 --rate-limit-keys header:authorization --yesvercel firewall publish --yes

Source layout

app/├── layout.tsx                                  # minimal root layout├── page.tsx                                    # landing page (/)├── [transport]/route.ts                        # MCP endpoint (/mcp); per-request client + 401 challenge└── .well-known/oauth-protected-resource/route.ts  # RFC 9728 metadata → app.slideless.aisrc/├── config.ts             # base URL, server identity (SEP-973 branding), instructions├── http.ts               # OAuth metadata, CORS, 401 challenge builders├── server.ts             # registerAllTools entry point├── slidelessClient.ts    # typed fetch wrapper around the Cloud Functions├── types.ts              # wire shapes (mirrors slideless-app types/)├── errors.ts             # SlidelessApiError + wrapToolErrors└── tools/    ├── identity.ts       # slideless_whoami    ├── presentations.ts  # list / get / versions / download / delete    ├── upload.ts         # upload_html / upload_files (3-step orchestration)    ├── sharing.ts        # tokens, version mode, unshare, email    ├── collaborators.ts  # invite / uninvite / list    └── marketplace.ts    # search / get / remix / publish / star / unstarserver.json               # MCP registry metadata (ai.slideless/mcp)

Related repos

  • slideless-app — backend Cloud Functions this server proxies (also hosts the OAuth 2.1 authorization server)
  • slideless-cli — npm CLI that uses the same API
  • slideless-plugin — Claude Code plugin (companion authoring + upload skills)

來源:README.md,提交 7a099b1

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

1
  1. v0.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 75%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。