Odile Labs
Ce que fait ce MCP
Reformats uploaded photos and videos into social-media presets, manages processing credits and downloads, and provides an AI receptionist offering.
Outils
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['product', 'pack'], 'properties': {'pack': {'type': 'string', 'maxLength': 20, 'description': 'The pack id: formats small | medium | large; minutes m200 | m600 | m2000; calls calls10 | calls50.'}, 'line_id': {'type': 'string', 'maxLength': 64, 'description': "For product 'calls' only: the line_id from get_answering_line."}, 'product': {'enum': ['formats', 'minutes', 'calls'], 'type': 'string', 'description': "'formats' credits, meeting 'minutes', or answered 'calls' for a line."}}}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sources', 'outputs'], 'properties': {'trim': {'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'number', 'maximum': 600, 'description': 'End, in seconds; at most 600'}, 'start': {'type': 'number', 'minimum': 0, 'description': 'Start, in seconds from the beginning'}}, 'description': 'Video only: keep just this part of the source. Omit to use the whole video.'}, 'outputs': {'type': 'array', 'items': {'type': 'object', 'required': ['preset'], 'properties': {'fit': {'enum': ['crop', 'blur', 'auto'], 'type': 'string', 'description': "How the source is fitted to the new shape: 'crop', 'blur' (blurred fill) or 'auto' (default)."}, 'preset': {'enum': ['reel_9x16', 'feed_4x5', 'square_1x1', 'youtube_16x9', 'post_4x5', 'post_1x1', 'story_9x16'], 'type': 'string', 'description': 'An output preset name from get_catalog.presets matching the source kind.'}}}, 'maxItems': 4, 'minItems': 1, 'description': '1 to 4 outputs; one finished file per entry.'}, 'sources': {'type': 'array', 'items': {'type': 'string', 'maxLength': 400, 'minLength': 10}, 'maxItems': 10, 'minItems': 1, 'description': 'Source keys printed by the upload helper'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['kind', 'outputs'], 'properties': {'kind': {'enum': ['video', 'photos'], 'type': 'string', 'description': "'video' for one video file, 'photos' for a set of still images."}, 'outputs': {'type': 'array', 'items': {'enum': ['reel_9x16', 'feed_4x5', 'square_1x1', 'youtube_16x9', 'post_4x5', 'post_1x1', 'story_9x16'], 'type': 'string'}, 'maxItems': 4, 'minItems': 1, 'description': '1 to 4 output preset names from get_catalog.presets (video presets for kind video, photo presets for kind photos); one finished file per preset.'}, 'photo_count': {'type': 'integer', 'maximum': 10, 'minimum': 1, 'description': "Required when kind is 'photos' (the call fails without it): how many source photos, 1 to 10. Must be omitted when kind is 'video'."}}}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'The id (UUID) of a job on this account that unlock_job has already unlocked.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'job_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'The job id (UUID) returned by create_media_job. Omit to list the ten most recent jobs.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'line_id': {'type': 'string', 'maxLength': 40, 'description': "Only this tested line, e.g. 'afterhours-plumbing', 'afterhours-vet', 'rosie', 'myaifrontdesk' or 'dialzara'. Omit for every line."}, 'scenario_id': {'type': 'string', 'maxLength': 40, 'description': "Only this scenario: 'emergency' (leak after hours), 'booking' (book a slot), 'price' (price probe), 'disclosure' (are you real?) or 'spanish' (caller in Spanish). Omit for all."}, 'include_evidence': {'type': 'boolean', 'default': False, 'description': "Default false: each scenario's measures come back as strings like 'yes: <measure>'. true: measures come back as [{measure, score (0 or 1), evidence (quoted transcript)}] (much longer output)."}}}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['kind'], 'properties': {'kind': {'enum': ['video', 'photos'], 'type': 'string', 'description': "'video' to upload one MP4 or MOV (up to 500 MB, 10 minutes); 'photos' to upload 1 to 10 JPEG, PNG or WebP files."}}}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['business_name', 'business_phone', 'owner_mobile', 'pack', 'owner_confirmed_terms'], 'properties': {'city': {'type': 'string', 'maxLength': 80, 'description': 'The town the business is in, e.g. "Wellington, FL". The receptionist says it when a caller asks where you are.'}, 'pack': {'enum': ['calls10', 'calls50'], 'type': 'string', 'description': 'The first pack: calls10: 10 calls for $15; calls50: 50 calls for $75.'}, 'extra': {'type': 'string', 'maxLength': 600, 'description': 'Anything else the receptionist should know.'}, 'hours': {'type': 'object', 'description': 'Opening hours by day name, e.g. {"Monday": {"open": "8:00 AM", "close": "5:00 PM"}, "Sunday": "closed"}. A day left out is closed. Omit entirely for Monday to Friday, 9 to 5.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'anyOf': [{'type': 'object', 'required': ['open', 'close'], 'properties': {'open': {'type': 'string', 'maxLength': 12}, 'close': {'type': 'string', 'maxLength': 12}}}, {'type': 'string', 'const': 'closed'}]}}, 'country': {'enum': ['US'], 'type': 'string', 'description': 'Only US for now.'}, 'services': {'type': 'array', 'items': {'type': 'string', 'maxLength': 80}, 'maxItems': 12, 'description': 'Up to 12 services, e.g. ["drain cleaning", "water heaters"].'}, 'languages': {'type': 'array', 'items': {'enum': ['es', 'pt', 'fr', 'tr', 'ru', 'de'], 'type': 'string'}, 'maxItems': 6, 'description': 'Languages besides English the receptionist switches to when a caller does.'}, 'description': {'type': 'string', 'maxLength': 300, 'description': 'What the business does, in one line; this is what it tells callers.'}, 'owner_mobile': {'type': 'string', 'maxLength': 40, 'description': "The owner's own mobile (US, with area code): their calls to the line are never charged."}, 'business_name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'The business name callers should hear, e.g. "Alvarez Plumbing".'}, 'business_phone': {'type': 'string', 'maxLength': 40, 'description': 'The business number callers dial today (US, with area code). The owner forwards it to the new line.'}, 'owner_confirmed_terms': {'type': 'boolean', 'description': 'true ONLY after you showed the owner https://odilelabs.com/terms and they said yes. Anything else is refused.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['job_id', 'max_credits'], 'properties': {'job_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'The id (UUID) of a ready job on this account.'}, 'max_credits': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'The most the customer agreed to spend on this job, 1 to 100 credits. The unlock is refused, charging nothing, if the job costs more.'}}}
Modifications récentes des outils
Serveurs MCP similaires
Hermoso
Supports ad research, competitor analysis, video and static ad creation, campaign policy checks, content publishing, and performa…
Heista
Analyzes video advertising, builds brand intelligence profiles, researches markets, and generates advertising scripts and creativ…
Spook SEO
Provides SEO analysis, keyword and content generation, AEO checks, ad copy tools and automated article generation and publishing.
VarynForge
Supports SEO research and content planning through niche analysis, competitor and keyword research, opportunity discovery, and wr…
AfterLaunch: the agentic growth marketing engine
Runs growth-marketing workflows covering SEO, AI-search visibility, competitor analysis, content planning, distribution channels,…
RoboWrite
Supports brand setup, content briefs, AI-generated drafts, editorial review, quality checks, and publishing workflows.
ai-content-drop
Generates AI images, videos, UGC clips, avatars, and finished ads, while organizing creative assets and campaign boards.
Newswire Com
Searches and retrieves recent press releases from Newswire.com's public newsroom feed.