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/mcpAuthentication
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/mcpClaude 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:
| Scope | What it grants |
|---|---|
| articles:read | Read your saved summaries and articles |
| transcriptions:read | Read your transcriptions and their results |
| usage:read | Read your plan, quotas, and usage |
| articles:write | Create new summaries from YouTube, web pages, or files |
| transcriptions:write | Start new transcriptions and subtitle jobs |
| jobs:read | Read 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):
| Tool | Access | Description |
|---|---|---|
| search_articles | Read-only | Search the current user's Shorty library by free-text query (title, description, URL). Returns matching article cards with id, title, url. |
| list_recent_articles | Read-only | List 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_article | Read-only | Fetch a single article (summary, highlights, body) so you can answer questions about it. Pass a real article UUID as articleId. |
| list_transcriptions | Read-only | List the current user's audio/video transcriptions (newest first) with status and progress. Optional free-text query matches the transcript text. |
| get_transcription | Read-only | Fetch a single transcription (status, language, full transcript text) by its UUID so you can answer questions about it. |
| get_usage_quota | Read-only | Read 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_status | Read-only | Check 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_summary | Write | Start 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_summary | Write | Start 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_transcription | Write | Transcribe 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_subtitles | Write | Generate 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.