{"generated_at":"2026-10-14T20:07:22+00:00","item":{"added_at":"2026-09-15","analysis_method":"independent_manual_review_2026-10-10","assessment_status":"provisional","auth_posture":"auth_required","category":"Web Connector","confidence":"high","description":"Shorty summarizes content and transcribes supported audio or video into an account library. Search existing work or start summaries, transcriptions, and subtitle jobs. Jobs run asynchronously, consume plan quota, and require the corresponding OAuth scopes; subtitle downloads are handled in the Shorty app.","did":"5f4a84d0-153b-4ebb-ae80-fd564167b132","documentation_url":"https://aishorty.com/docs/connecting-ai-assistants","editorial_description":{"extended_description":"Inputs include YouTube links, web pages, pasted text, previously uploaded files, and publicly accessible media URLs. Poll job status before retrieving completed text. The connector returns job handles and text rather than media files, with quota checks available before new work.","schema_version":1,"summary":"Shorty summarizes content and transcribes supported audio or video into an account library.\nSearch existing work or start summaries, transcriptions, and subtitle jobs.\nJobs run asynchronously, consume plan quota, and require the corresponding OAuth scopes; subtitle downloads are handled in the Shorty app."},"homepage_url":"","icon":"","id":"5f4a84d0-153b-4ebb-ae80-fd564167b132","installs":0,"last_scanned":"","license":"","long_description":"Inputs include YouTube links, web pages, pasted text, previously uploaded files, and publicly accessible media URLs. Poll job status before retrieving completed text. The connector returns job handles and text rather than media files, with quota checks available before new work.","manual_assessment":"high","manual_review":{"all_findings":[{"evidence":"Official Shorty documentation says the server now lists search_tools and execute_typescript and runs selected operations through isolated TypeScript Code Mode.","reasoning":"Executing caller-composed TypeScript is code execution under the taxonomy even though Shorty scopes and sandboxes it.","risk_type":"code_execution","severity":"high","title":"Current MCP surface executes TypeScript in a sandbox","triggering_tools_or_skills":["execute_typescript"]},{"evidence":"The Directory packet lists twelve operation names, while current official documentation says tools/list exposes two Code Mode tools instead.","reasoning":"The stale inventory hides a generic execution surface and must be corrected before publication.","risk_type":"identity_discrepancy","severity":"low","title":"Directory inventory differs from current Code Mode tools","triggering_tools_or_skills":["search_tools","execute_typescript"]},{"evidence":"Official documentation says summary jobs accept a web page or YouTube URL selected by the caller.","reasoning":"The service fetches arbitrary external content and returns it into the model context.","risk_type":"arbitrary_network_access","severity":"low","title":"Summarizes caller-selected web and media URLs","triggering_tools_or_skills":["create_content_summary","create_youtube_summary"]}],"assessment_status":"provisional","auth_and_scopes":"OAuth 2.1 with PKCE is required; users approve granular read/write scopes, and tools are filtered by the granted scopes.","blocked_missing_evidence":null,"confidence":"high","displayed_risk":"high","evidence_completeness":"complete","manual_overall_risk":"high","official_sources":[{"accessed_at":"2026-10-10T20:24:37Z","url_or_path":"plutosecurity/plutonium@b749c8dc43536c794409be9805edd48063f045e2:app/data/conn/claudesec/5f4a84d0-153b-4ebb-ae80-fd564167b132.json","what_it_proves":"Candidate PR #125 record identity (name \"Shorty\", publisher, type web_connector) and 12 stored tool names; no tool descriptions stored"},{"accessed_at":"2026-09-22T10:46:07Z","url_or_path":"https://api.anthropic.com/api/directory/servers?verified_tier=anthropic,partner,community (snapshot claude-directory-all-tiers-2026-09-22.json)","what_it_proves":"Official Claude Directory listing https://claude.ai/directory/5f4a84d0-153b-4ebb-ae80-fd564167b132: complete tool_names inventory (12 tools), remote streamable-http endpoint https://aishorty.com/api/mcp, auth_posture auth_required, directory tier community"},{"accessed_at":"2026-10-10T20:45:33Z","url_or_path":"https://aishorty.com/docs/connecting-ai-assistants","what_it_proves":"Shorty documents its OAuth scopes and current Code Mode surface: search_tools plus execute_typescript over the twelve listed operations in an isolated sandbox."}],"primary_reason":"Shorty’s current documented MCP surface exposes sandboxed TypeScript execution that is absent from the Directory tool inventory.","provisional_risk":null,"publication_recommendation":"fix","requires_runtime_verification":true,"review_key":"claude:5f4a84d0-153b-4ebb-ae80-fd564167b132","reviewed_at":"2026-10-10","reviewer_notes":"Reviewed all twelve Directory operations and the official scope/tool table. The documented drift is material: update the inventory to search_tools/execute_typescript and retain the underlying operation list as reachable actions.","risk_domains":{"arbitrary_network_access":"true","authz_ambiguity":"false","browser_control":"false","credential_or_admin_actions":"false","deletes_data":"false","deployment_or_infrastructure":"false","dynamic_hidden_actions":"true","filesystem_or_repo_access":"false","forwards_data_to_third_party":"true","modifies_data":"true","persistent_credentials":"true","prompt_injection_exposure":"true","provenance_uncertainty":"true","reads_private_data":"true","runs_code_or_queries":"true","sends_messages_as_user":"false","spends_or_moves_money":"false"},"tools_or_skills_reviewed":12,"tools_or_skills_total":12},"name":"Shorty","needs_runtime_verification":true,"plutonium_url":"https://plutonium.pluto.security/detail.html?planet=claudesec&did=5f4a84d0-153b-4ebb-ae80-fd564167b132&utm_source=plutonium_analysis_skill&utm_medium=claude_skill&utm_campaign=connector_risk_assessment","privacy_policy_url":"https://aishorty.com/privacy","provisional_risk":null,"publication_recommendation":"fix","publisher":"Devino Solutions","publisher_url":"https://devino.ca/","remote_url":"https://aishorty.com/api/mcp","repository_url":"","risk":"high","risk_severity":"high","security_risks":[{"description":"This connector can execute code, commands, queries, or dynamically selected actions. Review findings: Executing caller-composed TypeScript is code execution under the taxonomy even though Shorty scopes and sandboxes it.","evidence":"Current MCP surface executes TypeScript in a sandbox: Official Shorty documentation says the server now lists search_tools and execute_typescript and runs selected operations through isolated TypeScript Code Mode.","manual_risk_type":"code_execution","remediation":{"block_tool_categories":["code_execution"],"steps":["Run only in a sandbox with least-privilege credentials and strict resource limits.","Disable generic execution gateways unless their reachable action set is fully understood.","Require approval before execution against production systems or sensitive data."]},"risk_type":"runs_code","severity":"high","title":"Current MCP surface executes TypeScript in a sandbox","triggering_tools":["execute_typescript"]},{"description":"This connector can send caller-provided data to an external service or publisher. Review findings: The service fetches arbitrary external content and returns it into the model context.","evidence":"Summarizes caller-selected web and media URLs: Official documentation says summary jobs accept a web page or YouTube URL selected by the caller.","manual_risk_type":"arbitrary_network_access","remediation":{"block_tool_categories":["sends_externally"],"steps":["Do not include secrets, regulated data, or customer information unless the destination is approved.","Review the recipient's retention and deletion policy before enabling the connector."]},"risk_type":"forwards_data_to_third_party","severity":"low","title":"Summarizes caller-selected web and media URLs","triggering_tools":["create_content_summary","create_youtube_summary"]}],"signature_status":"unknown","source_code_reviewed":false,"support_url":"aladdin@devino.ca","tags":["forwards_data_to_third_party","network_access","oauth_required","runs_code","web_connector"],"tools":[{"description":"","name":"create_content_summary"},{"description":"","name":"create_subtitles"},{"description":"","name":"create_transcription"},{"description":"","name":"create_youtube_summary"},{"description":"","name":"get_article"},{"description":"","name":"get_job_status"},{"description":"","name":"get_transcription"},{"description":"","name":"get_usage_quota"},{"description":"","name":"list_recent_articles"},{"description":"","name":"list_transcriptions"},{"description":"","name":"search_articles"},{"description":"","name":"search_docs"},{"description":"","name":"execute_typescript","risk":{"category":"code_execution","level":"high","recommendation":"Follow the connector-level remediation and require approval for consequential actions.","why":"This connector can execute code, commands, queries, or dynamically selected actions. Review findings: Executing caller-composed TypeScript is code execution under the taxonomy even though Shorty scopes and sandboxes it."}},{"description":"","name":"search_tools"}],"tools_count":14,"transport":"streamable-http","type":"web_connector","url":"https://claude.ai/directory/5f4a84d0-153b-4ebb-ae80-fd564167b132","uuid":"b34f6258-2f44-5871-913c-2ffc691750e4","verification_tier":"community","version":""},"query_key":"shorty","schema_version":1,"status":"match"}
