{"service":"MCP Podcast & Audio Generator","description":"AI-powered podcast and audio content generation service using MCP protocol","primary_service":"audio_generation","status":"running","version":"1.0.0","protocols":{"rest":"Traditional REST API","mcp":"Model Context Protocol (JSON-RPC 2.0)"},"endpoints":{"rest_api":{"generate_audio":"/api/audio/generate","analyze_style":"/api/style/analyze","check_job_status":"/api/jobs/{job_id}"},"legacy_rest":{"create_job":"/jobs/create","check_job":"/jobs/{job_id}","analyze_style":"/jobs/analyze-style","wait_for_job":"/jobs/{job_id}/wait"},"mcp_protocol":{"mcp":"/mcp (Streamable HTTP Transport)","mcp_rpc":"/mcp-rpc (legacy dual-endpoint)","mcp_sse":"/mcp-sse/{client_id} (legacy SSE)","mcp_info":"/mcp-info"},"utility":{"health":"/health","validate":"/validate","docs":"/docs","websocket":"/ws/{job_id}"},"oauth":{"protected_resource_metadata":"/.well-known/oauth-protected-resource/mcp","authorization_server_metadata":"/.well-known/oauth-authorization-server","register":"/oauth/register","authorize":"/oauth/authorize","token":"/oauth/token"}},"authentication":{"api_key_header":"X-API-Key","bearer_supported":true,"oauth_enabled":true,"oauth_ready":true},"features":["audio_generation"],"ai_transparency":{"ai_generated_output":true,"regulation":"Regulation (EU) 2024/1689 (AI Act), Article 50","provider_role":"This service is the provider; callers publishing the output are deployers.","spoken_disclosure":{"default":true,"languages":["bg","cs","da","de","el","en","es","et","fi","fr","ga","hr","hu","it","lt","lv","mt","nl","pl","pt","ro","sk","sl","sv"],"note":"An AI notice is appended to every podcast in its own language, detected from the script. Set 'language' to choose it explicitly."},"machine_readable_marking":{"audio":{"signed":false,"watermarked":false,"metadata_tagged":false,"note":"Nothing is embedded in the audio file. The only marking is the spoken sentence. Article 50(2) requires machine-readable marking from 2 December 2026; this deployment does not do it yet."},"image":{"signed":false,"watermarked":null,"metadata_tagged":true,"note":"Thumbnails arrive from Google carrying an XMP/IPTC tag (digitalSourceType=trainedAlgorithmicMedia, credit 'Made with Google AI'). That is machine-readable, which is what Article 50(2) asks for, but it is unsigned -- anyone can add or remove it, and a re-encode drops it. Some Google endpoints additionally return a signed C2PA manifest; this one currently does not, so do not promise one. Each job's ai_disclosure.image reports what that file actually carries. Google documents a SynthID watermark for these models, which we cannot verify from the bytes, so it is reported as unknown rather than claimed. We pass the bytes through untouched; any resize or re-encode destroys what is there. Nothing is visible on the image itself -- use ai_disclosure.image.label_text for that."}},"deployer_obligations":"Disclose deepfakes, and disclose AI-generated text on matters of public interest unless a person editorially reviewed it.","documentation":"https://github.com/c4dhi/PRECIOUS_GENIE_Podcast_MCP#ai-transparency-what-the-law-expects"}}