Shorty MCP server

Shorty exposes a remote MCP (Model Context Protocol) server so AI assistants and agents — Claude Code, Claude.ai custom connectors, and any MCP-compatible client — can securely read your Shorty summaries, transcriptions, and usage on your behalf. It speaks the streamable-HTTP MCP transport and is protected by OAuth 2.1: an app only ever sees what you sign in and consent to, and you can revoke it at any time.

Connection URL

Point your MCP client at this endpoint:

https://aishorty.com/api/mcp

Authentication

The server is an OAuth 2.1 authorization server. On first connect you are redirected to sign in to Shorty and shown a consent screen listing exactly the scopes the app requested; access is granted only after you approve. Dynamic Client Registration (DCR) is supported, so no manual client setup is needed — it works out of the box with Claude Code, Claude.ai custom connectors, and the MCP Inspector.

Quickstart

Add Shorty to Claude Code with one command:

claude mcp add --transport http shorty https://aishorty.com/api/mcp

Claude Code opens your browser to complete the OAuth sign-in and consent, then Shorty's tools become available in the session.

Scopes

Each tool needs a single delegated scope. The consent screen shows exactly which of these an app is asking for:

ScopeWhat it grants
articles:readRead your saved summaries and articles
transcriptions:readRead your transcriptions and their results
usage:readRead your plan, quotas, and usage
articles:writeCreate new summaries from YouTube, web pages, or files
transcriptions:writeStart new transcriptions and subtitle jobs
jobs:readRead the status of jobs you have started

Tools

Tools an authorized client can call (each appears in tools/list only when your grant includes its scope):

ToolAccessDescription
search_articlesRead-onlySearch the current user's Shorty library by free-text query (title, description, URL). Returns matching article cards with id, title, url.
list_recent_articlesRead-onlyList the current user's most recently summarized articles. Use when the user asks about their recent summaries, library overview, or 'what have I saved lately'.
get_articleRead-onlyFetch a single article (summary, highlights, body) so you can answer questions about it. Pass a real article UUID as articleId.
list_transcriptionsRead-onlyList the current user's audio/video transcriptions (newest first) with status and progress. Optional free-text query matches the transcript text.
get_transcriptionRead-onlyFetch a single transcription (status, language, full transcript text) by its UUID so you can answer questions about it.
get_usage_quotaRead-onlyRead the current user's Shorty plan (Free / Premium / Pro), tier limits (upload sizes, realtime minutes, conversion caps), and current cloud-conversion usage against the daily quota.
get_job_statusRead-onlyCheck the status of a job you started (summary, transcription, or subtitles) by its jobId. Returns { found, status, jobType, outputId? }: status is QUEUED | PROCESSING | SUCCESS | ERROR | CANCELLED. Poll until terminal (SUCCESS/ERROR/CANCELLED).
create_youtube_summaryWriteStart an AI summary job for a YouTube URL. Returns { jobId, articleId? }: if articleId is present the summary already exists (navigate directly); otherwise the job started — poll it with get_job_status. Pass a stable idempotencyKey to make retries safe (a repeat returns the original job).
create_content_summaryWriteStart an AI summary job for a webpage URL, pasted text, or an uploaded file (PDF/Word/Audio) already stored in Shorty. Supply exactly one of url/text/fileKey. sourceType selects the summarizer: 'webpage' | 'article' | 'pdf' | 'word' | 'text' | 'audio'. Returns { jobId, articleId? } — poll get_job_status. Pass a stable idempotencyKey to make retries safe.
create_transcriptionWriteTranscribe a publicly accessible audio/video URL via the GPU service. Returns { jobId, trackingUrl } to follow, or an { error } if it did not start (relay that reason and suggest uploading the file instead). Poll progress with get_job_status. Pass a stable idempotencyKey to make retries safe.
create_subtitlesWriteGenerate subtitles for a public video/audio URL. Style is CLEAN | TIKTOK | PODCAST | MINIMAL (only CLEAN on the free plan). Returns { jobId, trackingUrl } — poll get_job_status; user can download SRT/VTT (and, on Premium, a captioned MP4). If upgradeRequired is true, explain the limit and suggest upgrading. Pass a stable idempotencyKey to make retries safe.

Revoking access

You stay in control. Open Settings → Connected AI Apps and revoke any app to cut off its access instantly — it removes both the consent and its issued tokens, so the app must ask for your approval again to reconnect.

Privacy and terms

Connecting an MCP client is subject to Shorty's privacy policy and terms of service.