mcpField
S
Slideless

Slideless

リモート
github.com/slideless-ai生産性020 週間前に更新
リポジトリ

Slideless について

Slideless は、MCP ホストから Slideless の HTML プレゼンテーションを管理する MCP サーバーです。アップロード、バージョン確認、共有、共同作業、マーケットプレイスの操作に対応し、OAuth または API キーで認証します。

主な機能

  1. 01プレゼンテーションとバージョンの一覧
  2. 02単一・複数ファイルのデッキをアップロード
  3. 03共有と共同作業者の管理
  4. 04マーケットプレイスの閲覧と公開
  5. 05OAuth と API キー認証

活用シーン

  1. 01MCP ホストから HTML デッキをアップロード
  2. 02バージョンやファイル内容を確認
  3. 03デッキの共有や共同作業者の招待
  4. 04リミックス可能な出品の検索や公開

MCP 対応

Slideless HTTP API を MCP ツールとして提供し、Streamable HTTP エンドポイントで接続します。MCP クライアントは OAuth 2.1 または静的 API キーで認証します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.slideless.ai/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

slideless-mcp

Slideless 用の MCP サーバーです。Slideless HTTP API を Model Context Protocol ツールとしてラップしており、ユーザーは slideless CLI をインストールせずに、任意の MCP ホスト(Claude Desktop、claude.ai、ChatGPT desktop、Cursor など)から HTML プレゼンテーションの一覧表示、共有、アップロード、管理を行えます。

Vercel(Next.js App Router + mcp-handler)上の https://mcp.slideless.ai/mcp でホストされています。公式 MCP レジストリには ai.slideless/mcp として掲載されています。

アーキテクチャ

ステートレスな Next.js ルートハンドラーです。streamable-HTTP トランスポートを使用し、セッションストアはありません。リクエストごとに /mcp の呼び出しで McpServer が構築され、ユーザーの Authorization ヘッダーが europe-west1 の Slideless Cloud Functions にそのまま転送されます。データベースも、ローテーションが必要なシークレットもありません。ユーザーのトークンがリクエストの外に出ることはありません。

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

認証

このサーバーは OAuth 2.1 のリソースサーバーです。認証フロー自体はホストせず、認可サーバーとして app.slideless.ai を通知し、トークンを Cloud Functions に転送して検証します。以下の2種類のヘッダースタイルを受け付け、どちらもそのまま転送します。

  • OAuth(推奨) — OAuth に対応したホスト(Claude Desktop、claude.ai)は、フローを自動的に検出します。認証なしで /mcp にリクエストすると、/.well-known/oauth-protected-resource(RFC 9728)を示す WWW-Authenticate ヘッダーとともに 401 が返され、そこから app.slideless.ai が参照されます。ユーザーはブラウザーでサインイン/サインアップして同意します。キーを貼り付ける必要はありません。新しい API キーは認可サーバーによって見えない形で発行されます。
  • 静的 API キー — カスタムヘッダーに対応したホスト(Cursor、Claude Code)は、Authorization: Bearer cko_… を直接送信できます。
コネクターとして使用する
  1. Claude Desktop/claude.ai/ChatGPT で、URL https://mcp.slideless.ai/mcp を指定してカスタムコネクターを追加します。
  2. ホストが OAuth を検出し、Slideless のサインイン画面を開きます。認可すると接続されます。
  3. (静的キーに対応したホストのみ)https://app.slideless.ai → Settings → API Keys で cko_… キーを取得し、Authorization ヘッダーに設定します。

ツール

ツール内容
slideless_whoamiID を確認します。組織、キー名、スコープを返します
slideless_list_presentations所有するプレゼンテーションと招待されたプレゼンテーションを一覧表示します
slideless_get_presentation1つのプレゼンテーションの全情報(トークン、コラボレーター)を取得します
slideless_list_versionsプレゼンテーションのバージョン履歴を一覧表示します
slideless_get_version特定バージョンのマニフェストを取得します
slideless_download_versionマニフェストとテキストファイルの内容をインラインで取得します(HTML/CSS/JS、各最大256 KB)
slideless_upload_html_presentation単一ファイルの HTML デッキをアップロードします
slideless_upload_presentation_files複数ファイルのデッキをアップロードします(base64 配列)
slideless_add_share_token公開閲覧用 URL を発行します
slideless_set_token_version_modeトークンをバージョンに固定、または固定解除します
slideless_unshare_presentation共有トークンを1つ、またはすべて無効にします
slideless_share_via_email共有 URL をメールで送信します
slideless_invite_collaborator別のユーザーに開発アクセス権を付与します(メールを送信します)
slideless_uninvite_collaboratorコラボレーターの招待を取り消します
slideless_list_collaboratorsプレゼンテーションのコラボレーターを一覧表示します
slideless_delete_presentationプレゼンテーションを完全に削除します
slideless_search_marketplaceリミックス可能なプレゼンテーション、アプリ、プランを公開マーケットプレイスで検索します(キー不要)
slideless_get_marketplace_listingスラッグを指定して、マーケットプレイスの出品1件の詳細を取得します(キー不要)
slideless_remix_listing出品をリミックスします。マニフェストと、すべてのテキストファイルの内容をインラインで返します(キー不要)
slideless_publish_listingプッシュ済みのプレゼンテーションをマーケットプレイスに公開します(marketplace:publish スコープが必要)
slideless_star_listing接続中のユーザーに代わってマーケットプレイスの出品にスターを付けます
slideless_unstar_listing出品から接続中のユーザーのスターを削除します

ローカル開発

pnpm install
pnpm dev            # next dev → http://localhost:8787

MCP Inspector でテストします。

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

または、curl で直接実行します(初期化ハンドシェイク)。

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"}}}'

型チェック:pnpm typecheck。

デプロイ

main にプッシュすると、Vercel が本番環境に自動デプロイします(プロジェクト codika/slideless-mcp)。手動でデプロイする場合:

vercel deploy --prod --scope codika

レート制限 は Vercel WAF ルール(vercel firewall CLI で管理)によってエッジで適用され、path が /mcp で始まるリクエストが対象です。

  • mcp-per-ip → 60 req / 10s、IP をキーとして使用
  • mcp-per-key → 600 req / 60s、Authorization ヘッダーをキーとして使用(各 API キー/OAuth トークンにそれぞれ個別のバケットが割り当てられます)

どちらも上限を超えると、関数の実行前に 429 を返します。次のコマンドで再作成できます。

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 --yes
vercel 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 --yes
vercel firewall publish --yes

ソースの構成

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.ai
src/
├── 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 / unstar
server.json               # MCP registry metadata (ai.slideless/mcp)

関連リポジトリ

  • slideless-app — このサーバーがプロキシするバックエンド Cloud Functions(OAuth 2.1 認可サーバーもホストしています)
  • slideless-cli — 同じ API を使用する npm CLI
  • slideless-plugin — Claude Code プラグイン(作成とアップロードを支援するスキルを提供)

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。