Connect Goose CLI to Magic Hour MCP and retrieve an existing image project’s status.
Connect Goose CLI directly to Magic Hour’s hosted MCP server, then ask your model to retrieve
an image project you already created. The recipe below enables only the read-only image
retrieval tool from Magic Hour. It does not create a new generation.
Use Goose CLI 1.56.0, a
Magic Hour API key, and an existing image
project owned by that account. You also need a configured model that supports tool calls.This flow was verified with the released Goose CLI, local Ollama 0.40.10 and
qwen2.5:7b-instruct-q4_K_M at a 4096-token context. The native agent retrieved an existing
completed image project and returned its ID and status. Other models may choose or format
tool calls differently. This guide covers the CLI, rather than Goose Desktop or a catalog install.
Select your model provider and model. For the verified local setup, select Ollama and
qwen2.5:7b-instruct-q4_K_M; Ollama must already have that model installed and be reachable
from Goose. You can instead use your own configured tool-capable model.GOOSE_PATH_ROOT separates Goose’s configuration, data and state directories. It does not
prevent discovery of legacy skills in your home directory or machine-wide configuration.
Use an empty working directory and review your existing Goose configuration before running
a recipe. The permission rule below denies the built-in skill-loading tool for this setup.
Save this as magic-hour.yaml in your working directory. Replace YOUR_PROJECT_ID with
an existing image project ID; keep the API key out of the recipe and prompt.
version: "1.0.0"title: "Magic Hour saved image lookup"description: "Retrieve details of one existing saved image project."extensions: - type: streamable_http name: magichour uri: https://mcp.magichour.ai/ env_keys: - MAGIC_HOUR_API_KEY headers: Authorization: "Bearer ${MAGIC_HOUR_API_KEY}" timeout: 60 available_tools: - image_projects_retrieve_detailsprompt: > Call magichour__image_projects_retrieve_details exactly once for the existing image project YOUR_PROJECT_ID. Do not create or modify anything. Return only a JSON object containing the returned id and status.
The endpoint is https://mcp.magichour.ai/, including its root path. Goose resolves
MAGIC_HOUR_API_KEY from its process environment and expands the header placeholder.
The explicit extensions block replaces the default extension selection for this recipe.
available_tools restricts Magic Hour tools; it does not remove Goose’s built-in load_skill
from the model’s advertised tools.Create $GOOSE_PATH_ROOT/config/permission.yaml with:
This setup uses Smart approval mode: the saved-image lookup is allowed and skill loading
is denied. Do not remove the tool list or add creation/deletion tools to troubleshoot a lookup.
Set MAGIC_HOUR_API_KEY in the terminal environment that will launch Goose, using your
normal protected secret-injection method. Do not paste it into the recipe, command arguments,
chat prompt or a committed file. Keep the Bearer prefix and placeholder in the recipe.Run from the empty working directory containing magic-hour.yaml:
Use the same terminal where you set GOOSE_PATH_ROOT and the key. Do not add
--no-profile: it discards the recipe’s extension configuration.
--no-session hides the session from the normal list; Goose still writes local hidden
session data and request logs. Keep that profile and its logs private. Tool results can
include temporary signed download URLs.
The request retrieves a status snapshot. It does not poll, create a replacement job or download
an image. Model inference may have costs even though this Magic Hour lookup creates no new
generation. If the project is still processing, check the same ID again later.
Check the native invocation of magichour__image_projects_retrieve_details and its successful
tool result. Confirm that the returned ID matches your project and that the agent’s final
status matches the tool result. A model-written complete without a successful tool result
does not prove that Magic Hour was contacted.If authorization fails, check that the Goose process inherited MAGIC_HOUR_API_KEY and that
the project belongs to that key’s account. Successful public tool discovery alone does not
verify account access. If the model does not call the retrieval tool, check your configured
provider’s tool support and the recipe’s tool name; keep the read-only selection in place.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Magic Hour API Docs","description":"Easily generate videos, images, and audio using Magic Hour's API. Follow our documentation to seamlessly integrate AI content creation into your applications.","colors":{"primary":"#3b82f6","light":"#0564ff","dark":"#3b82f6"},"logo":{"light":"https://mintcdn.com/magichour/5sgGJpuuipkw5s5v/icons/logo-light.svg?fit=max\u0026auto=format\u0026n=5sgGJpuuipkw5s5v\u0026q=85\u0026s=1f167e30baf11927bc2e0932411e455b","dark":"https://mintcdn.com/magichour/5sgGJpuuipkw5s5v/icons/logo-dark.svg?fit=max\u0026auto=format\u0026n=5sgGJpuuipkw5s5v\u0026q=85\u0026s=15c8bda28931ac4e1e2fab2c0ba6f0d5"},"favicon":"https://mintcdn.com/magichour/kbUwXh9ksnVyRSci/icons/favicon.png?fit=max\u0026auto=format\u0026n=kbUwXh9ksnVyRSci\u0026q=85\u0026s=c4fda903b24dd7067dadd1bb75508987","appearance":{"default":"dark","strict":false},"background":{"decoration":"gradient"},"navbar":{"links":[{"href":"mailto:support@magichour.ai","label":"Support"}],"primary":{"type":"button","label":"Get API key","href":"https://magichour.ai/developer?tab=api-keys\u0026ref=docs-navbar\u0026utm_source=docs\u0026utm_medium=referral\u0026utm_campaign=navbar"}},"footer":{"socials":{"website":"https://magichour.ai/?utm_source=docs\u0026utm_medium=referral\u0026utm_campaign=footer","x":"https://x.com/magichourai","github":"https://github.com/magichourhq","linkedin":"https://linkedin.com/company/magichour","instagram":"https://instagram.com/magichourai","youtube":"https://youtube.com/@magichourai"}},"seo":{"metatags":{"og:image":"https://d28dkohlqf5vwj.cloudfront.net/open-graph/logo-social-noisy-spectrum.jpg","twitter:image":"https://d28dkohlqf5vwj.cloudfront.net/open-graph/logo-social-noisy-spectrum.jpg"}},"integrations":{"ga4":{"measurementId":"G-CZ9Q9NBZB3"},"posthog":{"apiKey":"phc_EmzSy2RU0TOPhpouazMzxFedNdMyhze8HakyjffW2Wr","apiHost":"https://us.i.posthog.com"}},"contextual":{"options":["chatgpt","claude","perplexity","mcp","cursor","vscode","copy","view"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"API quickstart","icon":"forward-fast","href":"/get-started/quick-start"},{"anchor":"API pricing","icon":"credit-card","href":"/billing/overview"},{"anchor":"Community","icon":"discord","href":"https://discord.com/invite/JX5rgsZaJp"},{"anchor":"Status","icon":"wave-pulse","href":"https://status.magichour.ai"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"magichour","hasAudioNarration":false,"actualSubdomain":"magichour","customDomains":["docs.magichour.ai"],"gitSource":{"type":"github","owner":"magichourhq","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6add0474a858e98981adee7c","collectionId":"9d773285-8d57-4639-859d-4a3937e2df09","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6add0474a858e98981adee7c"},"feedback":{"thumbs":true,"issues":true,"edits":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6add1bb329f48133ead159ab","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"default","tag":"Documentation","count":85},{"language":"default","tag":"Integration","count":44},{"language":"default","tag":"API Reference","count":42},{"language":"default","tag":"Tools","count":30},{"language":"default","tag":"Image Projects","count":16},{"language":"default","tag":"Images","count":15},{"language":"default","tag":"Video Projects","count":14},{"language":"default","tag":"Video","count":12},{"language":"default","tag":"Webhook Reference","count":10},{"language":"default","tag":"Get Started","count":7}]},"assistantConfig":{},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#sidebar,#table-of-contents-content{scrollbar-width:thin;scrollbar-gutter:none;scrollbar-color:gray transparent}"}],"page":{"pagePath":"integration/goose","slug":"/integration/goose","pageMetadata":{"title":"Goose","description":"Connect Goose CLI to Magic Hour MCP and retrieve an existing image project's status.","href":"/integration/goose"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Connect Goose CLI to Magic Hour MCP and retrieve an existing image project’s status.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Connect Goose CLI directly to Magic Hour’s hosted MCP server, then ask your model to retrieve\nan image project you already created. The recipe below enables only the read-only image\nretrieval tool from Magic Hour. It does not create a new generation.`}),`\n`,_jsx(Heading,{level:`2`,id:`before-you-start`,children:`Before you start`}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.a,{href:`https://github.com/aaif-goose/goose/releases/tag/v1.56.0`,children:`Goose CLI 1.56.0`}),`, a\n`,_jsx(_components.a,{href:`https://magichour.ai/developer?tab=api-keys`,children:`Magic Hour API key`}),`, and an existing image\nproject owned by that account. You also need a configured model that supports tool calls.`]}),`\n`,_jsxs(_components.p,{children:[`This flow was verified with the released Goose CLI, local Ollama 0.40.10 and\n`,_jsx(_components.code,{children:`qwen2.5:7b-instruct-q4_K_M`}),` at a 4096-token context. The native agent retrieved an existing\ncompleted image project and returned its ID and status. Other models may choose or format\ntool calls differently. This guide covers the CLI, rather than Goose Desktop or a catalog install.`]}),`\n`,_jsx(Heading,{level:`2`,id:`configure-a-dedicated-profile`,children:`Configure a dedicated profile`}),`\n`,_jsx(_components.p,{children:`Choose an unused absolute directory for this setup, then configure your model through Goose:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` GOOSE_PATH_ROOT`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$HOME`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/.config/goose-magic-hour\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`mkdir`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -p`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$GOOSE_PATH_ROOT`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/config\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`goose`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` configure`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Select your model provider and model. For the verified local setup, select Ollama and\n`,_jsx(_components.code,{children:`qwen2.5:7b-instruct-q4_K_M`}),`; Ollama must already have that model installed and be reachable\nfrom Goose. You can instead use your own configured tool-capable model.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`GOOSE_PATH_ROOT`}),` separates Goose’s configuration, data and state directories. It does not\nprevent discovery of legacy skills in your home directory or machine-wide configuration.\nUse an empty working directory and review your existing Goose configuration before running\na recipe. The permission rule below denies the built-in skill-loading tool for this setup.`]}),`\n`,_jsx(Heading,{level:`2`,id:`add-the-read-only-recipe`,children:`Add the read-only recipe`}),`\n`,_jsxs(_components.p,{children:[`Save this as `,_jsx(_components.code,{children:`magic-hour.yaml`}),` in your working directory. Replace `,_jsx(_components.code,{children:`YOUR_PROJECT_ID`}),` with\nan existing image project ID; keep the API key out of the recipe and prompt.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`18`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`18`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`version`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1.0.0\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`title`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Magic Hour saved image lookup\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`description`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Retrieve details of one existing saved image project.\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`extensions`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`streamable_http`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`magichour`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` uri`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`https://mcp.magichour.ai/`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` env_keys`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`MAGIC_HOUR_API_KEY`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` headers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` Authorization`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:'\"Bearer ${MAGIC_HOUR_API_KEY}\"'})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` timeout`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`60`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` available_tools`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`image_projects_retrieve_details`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`prompt`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Call magichour__image_projects_retrieve_details exactly once for the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` existing image project YOUR_PROJECT_ID. Do not create or modify anything.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Return only a JSON object containing the returned id and status.`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The endpoint is `,_jsx(_components.code,{children:`https://mcp.magichour.ai/`}),`, including its root path. Goose resolves\n`,_jsx(_components.code,{children:`MAGIC_HOUR_API_KEY`}),` from its process environment and expands the header placeholder.\nThe explicit `,_jsx(_components.code,{children:`extensions`}),` block replaces the default extension selection for this recipe.\n`,_jsx(_components.code,{children:`available_tools`}),` restricts Magic Hour tools; it does not remove Goose’s built-in `,_jsx(_components.code,{children:`load_skill`}),`\nfrom the model’s advertised tools.`]}),`\n`,_jsxs(_components.p,{children:[`Create `,_jsx(_components.code,{children:`$GOOSE_PATH_ROOT/config/permission.yaml`}),` with:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`user`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` always_allow`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`magichour__image_projects_retrieve_details`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` ask_before`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: []`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` never_allow`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`load_skill`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`This setup uses `,_jsx(_components.strong,{children:`Smart approval`}),` mode: the saved-image lookup is allowed and skill loading\nis denied. Do not remove the tool list or add creation/deletion tools to troubleshoot a lookup.`]}),`\n`,_jsx(Heading,{level:`2`,id:`set-the-key-and-run`,children:`Set the key and run`}),`\n`,_jsxs(_components.p,{children:[`Set `,_jsx(_components.code,{children:`MAGIC_HOUR_API_KEY`}),` in the terminal environment that will launch Goose, using your\nnormal protected secret-injection method. Do not paste it into the recipe, command arguments,\nchat prompt or a committed file. Keep the `,_jsx(_components.code,{children:`Bearer `}),` prefix and placeholder in the recipe.`]}),`\n`,_jsxs(_components.p,{children:[`Run from the empty working directory containing `,_jsx(_components.code,{children:`magic-hour.yaml`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`GOOSE_MODE`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`smart_approve`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` goose`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --recipe`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` magic-hour.yaml`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --no-session`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --max-turns`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 3`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Use the same terminal where you set `,_jsx(_components.code,{children:`GOOSE_PATH_ROOT`}),` and the key. Do not add\n`,_jsx(_components.code,{children:`--no-profile`}),`: it discards the recipe’s extension configuration.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`--no-session`}),` hides the session from the normal list; Goose still writes local hidden\nsession data and request logs. Keep that profile and its logs private. Tool results can\ninclude temporary signed download URLs.`]})}),`\n`,_jsx(_components.p,{children:`The request retrieves a status snapshot. It does not poll, create a replacement job or download\nan image. Model inference may have costs even though this Magic Hour lookup creates no new\ngeneration. If the project is still processing, check the same ID again later.`}),`\n`,_jsx(Heading,{level:`2`,id:`verify-the-result`,children:`Verify the result`}),`\n`,_jsxs(_components.p,{children:[`Check the native invocation of `,_jsx(_components.code,{children:`magichour__image_projects_retrieve_details`}),` and its successful\ntool result. Confirm that the returned ID matches your project and that the agent’s final\nstatus matches the tool result. A model-written `,_jsx(_components.code,{children:`complete`}),` without a successful tool result\ndoes not prove that Magic Hour was contacted.`]}),`\n`,_jsxs(_components.p,{children:[`If authorization fails, check that the Goose process inherited `,_jsx(_components.code,{children:`MAGIC_HOUR_API_KEY`}),` and that\nthe project belongs to that key’s account. Successful public tool discovery alone does not\nverify account access. If the model does not call the retrieval tool, check your configured\nprovider’s tool support and the recipe’s tool name; keep the read-only selection in place.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Goose","description":"Connect Goose CLI to Magic Hour MCP and retrieve an existing image project's status.","href":"/integration/goose"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Before you start","slug":"before-you-start","depth":2,"children":[]},{"title":"Configure a dedicated profile","slug":"configure-a-dedicated-profile","depth":2,"children":[]},{"title":"Add the read-only recipe","slug":"add-the-read-only-recipe","depth":2,"children":[]},{"title":"Set the key and run","slug":"set-the-key-and-run","depth":2,"children":[]},{"title":"Verify the result","slug":"verify-the-result","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"magichour","siteName":"Magic Hour API Docs","title":"Goose - Magic Hour API Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-24T20:57:37.899Z","originalFileLocation":"integration/goose.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Connect Goose CLI to Magic Hour MCP and retrieve an existing image project\u0026#x27;s status.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Magic Hour API Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/magichour/pV2W72GIHTaiOFzk/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/magichour/pV2W72GIHTaiOFzk/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/magichour/pV2W72GIHTaiOFzk/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/magichour/pV2W72GIHTaiOFzk/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/magichour/pV2W72GIHTaiOFzk/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/magichour/pV2W72GIHTaiOFzk/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/magichour/pV2W72GIHTaiOFzk/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/magichour/pV2W72GIHTaiOFzk/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/magichour/pV2W72GIHTaiOFzk/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Goose - Magic Hour API Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Connect Goose CLI to Magic Hour MCP and retrieve an existing image project\u0026#x27;s status.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Magic Hour API Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.magichour.ai/integration/goose\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://d28dkohlqf5vwj.cloudfront.net/open-graph/logo-social-noisy-spectrum.jpg\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Goose - Magic Hour API Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Connect Goose CLI to Magic Hour MCP and retrieve an existing image project\u0026#x27;s status.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://d28dkohlqf5vwj.cloudfront.net/open-graph/logo-social-noisy-spectrum.jpg\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/magichour/pV2W72GIHTaiOFzk/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Magic Hour API Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3b82f6\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.magichour.ai/integration/goose\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/integration/goose.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.magichour.ai/#organization\",\"name\":\"Magic Hour API Docs\",\"url\":\"https://docs.magichour.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/magichour/5sgGJpuuipkw5s5v/icons/logo-light.svg?fit=max\u0026auto=format\u0026n=5sgGJpuuipkw5s5v\u0026q=85\u0026s=1f167e30baf11927bc2e0932411e455b\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.magichour.ai#website\",\"name\":\"Magic Hour API Docs\",\"url\":\"https://docs.magichour.ai\",\"publisher\":{\"@id\":\"https://docs.magichour.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.magichour.ai/integration/goose#webpage\",\"url\":\"https://docs.magichour.ai/integration/goose\",\"name\":\"Goose\",\"description\":\"Connect Goose CLI to Magic Hour MCP and retrieve an existing image project's status.\",\"dateModified\":\"2026-10-24T20:57:37.899Z\",\"isPartOf\":{\"@id\":\"https://docs.magichour.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.magichour.ai/integration/goose#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.magichour.ai/integration/goose#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Integration\",\"item\":\"https://docs.magichour.ai/integration/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Goose\",\"item\":\"https://docs.magichour.ai/integration/goose\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.magichour.ai/integration/goose#article\",\"headline\":\"Goose\",\"name\":\"Goose\",\"description\":\"Connect Goose CLI to Magic Hour MCP and retrieve an existing image project's status.\",\"url\":\"https://docs.magichour.ai/integration/goose\",\"mainEntityOfPage\":{\"@id\":\"https://docs.magichour.ai/integration/goose#webpage\"},\"image\":\"https://d28dkohlqf5vwj.cloudfront.net/open-graph/logo-social-noisy-spectrum.jpg\",\"dateModified\":\"2026-10-24T20:57:37.899Z\",\"publisher\":{\"@id\":\"https://docs.magichour.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.magichour.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Magic Hour API Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Magic Hour API Docs","nav":{"global":{"anchors":[{"anchor":"API quickstart","icon":"forward-fast","href":"/get-started/quick-start"},{"anchor":"API pricing","icon":"credit-card","href":"/billing/overview"},{"anchor":"Community","icon":"discord","href":"https://discord.com/invite/JX5rgsZaJp"},{"anchor":"Status","icon":"wave-pulse","href":"https://status.magichour.ai"}]},"tabs":[{"tab":"Documentation","pages":[{"group":"Get Started","pages":[{"title":"Magic Hour API Documentation","sidebarTitle":"Introduction","href":"/introduction"},{"title":"Magic Hour API Quickstart","sidebarTitle":"Quick Start","href":"/get-started/quick-start"},{"title":"Authentication","href":"/get-started/authentication"},{"title":"Magic Hour MCP","href":"/integration/model-context-protocol"},{"title":"API Cookbook - Google Colab","href":"/get-started/cookbook"},{"title":"Product Video and Lip-Sync Recipes","href":"/get-started/starter-recipes"},{"title":"Bulk Face Swap API: Safe Batch Processing","sidebarTitle":"Bulk Face Swap","href":"/get-started/bulk-face-swap"}]},{"group":"Integration","pages":[{"title":"Integration Overview","sidebarTitle":"Overview","href":"/integration/overview"},{"title":"Compare AI Media APIs on Your Workload","sidebarTitle":"Evaluate API Providers","href":"/integration/evaluating-media-apis"},{"title":"Choose a Commercial AI Media Workflow","sidebarTitle":"Choose a Workflow","href":"/integration/commercial-media-workflows"},{"title":"Evaluate Lip Sync for Agency and Localization Work","sidebarTitle":"Agency Lip-Sync Pilot","href":"/integration/agency-lip-sync"},{"title":"smolagents","href":"/integration/smolagents"},{"title":"Creating Your First Integration","sidebarTitle":"Creating Your First Integration","href":"/integration/first-integration"},{"title":"PydanticAI","href":"/integration/pydantic-ai"},{"title":"Vercel AI SDK","href":"/integration/vercel-ai-sdk"},{"title":"OpenAI Agents SDK","href":"/integration/openai-agents-sdk"},{"title":"Google ADK","href":"/integration/google-adk"},{"title":"Genkit","href":"/integration/genkit"},{"title":"DSPy","href":"/integration/dspy"},{"title":"VoltAgent","href":"/integration/voltagent"},{"title":"Strands Agents","href":"/integration/strands-agents"},{"title":"LlamaIndex","href":"/integration/llamaindex"},{"title":"Spring AI","href":"/integration/spring-ai"},{"title":"Open WebUI","href":"/integration/open-webui"},{"title":"AnythingLLM","description":"Connect self-hosted AnythingLLM to Magic Hour MCP and retrieve a saved image project's status.","href":"/integration/anythingllm"},{"title":"Goose","href":"/integration/goose"},{"title":"Node-RED","description":"Generate and recover Magic Hour images with Node-RED's built-in HTTP Request and file nodes.","href":"/integration/node-red"},{"title":"Windmill","href":"/integration/windmill"},{"title":"Prefect","href":"/integration/prefect"},{"title":"Dagster","href":"/integration/dagster"},{"title":"CrewAI","href":"/integration/crewai"},{"title":"Eino","href":"/integration/eino"},{"title":"Langflow","href":"/integration/langflow"},{"title":"Haystack","href":"/integration/haystack"},{"title":"Figma plugin","href":"/integration/figma"},{"title":"Framer plugin","href":"/integration/framer"},{"title":"Adobe Express add-on","href":"/integration/adobe-express"},{"title":"Canva app","href":"/integration/canva"},{"title":"Webflow extension","href":"/integration/webflow"},{"title":"Postman Collection","href":"/integration/postman"},{"title":"Adding API to Your App","href":"/integration/adding-api-to-your-app"},{"title":"Handling Inputs and Outputs","sidebarTitle":"Inputs \u0026 Outputs","href":"/integration/inputs-and-outputs"},{"title":"LangChain and LangGraph","href":"/integration/langchain"},{"title":"Mastra","href":"/integration/mastra"},{"title":"Development and Testing","href":"/integration/development-and-testing"},{"group":"Webhook","pages":[{"title":"Webhook Quickstart","sidebarTitle":"Quick Start","href":"/integration/webhook/overview"},{"title":"Create a Webhook","href":"/integration/webhook/create-webhook"},{"title":"Securing Your Webhook Handler","sidebarTitle":"Securing Handler","href":"/integration/webhook/secure-handler"},{"title":"Production Webhook Handler","sidebarTitle":"Production Setup","href":"/integration/webhook/create-handler"},{"title":"Webhook Event Types","sidebarTitle":"Event Types","href":"/integration/webhook/event-types"}]},{"title":"Postman Collection","href":"/integration/postman"},{"title":"API Docs MCP","href":"/integration/api-docs-mcp"}]},{"group":"Billing","pages":[{"title":"Magic Hour API Pricing","sidebarTitle":"Pricing Overview","href":"/billing/overview"},{"title":"Subscription Pricing","href":"/billing/subscription-pricing"},{"title":"Usage-Based Billing","href":"/billing/usage-based-pricing"},{"title":"Resolution Limits","href":"/billing/resolution-limits"}]},{"group":"Tools","pages":[{"group":"Video","pages":[{"title":"Video Tools","href":"/tools/video-tools"},{"title":"Face Swap Video API","sidebarTitle":"Face Swap Video","href":"/tools/video/face-swap-video"},{"title":"AI Talking Photo API","sidebarTitle":"Talking Photo","href":"/tools/video/talking-photo"},{"title":"Text to Video API","sidebarTitle":"Text to Video","href":"/tools/video/text-to-video"},{"title":"Lip Sync API","sidebarTitle":"Lip Sync","href":"/tools/video/lip-sync"},{"title":"Character Replace API","sidebarTitle":"Character Replace","href":"/tools/video/character-replace"},{"title":"Video to Video API","sidebarTitle":"Video to Video","href":"/tools/video/video-to-video"},{"title":"AI Video Editor API","sidebarTitle":"AI Video Editor","href":"/tools/video/video-editor"},{"title":"Audio to Video API","sidebarTitle":"Audio to Video","href":"/tools/video/audio-to-video"},{"title":"Auto Subtitle Generator API","sidebarTitle":"Auto Subtitle","href":"/tools/video/auto-subtitle-generator"},{"title":"Image to Video API","sidebarTitle":"Image to Video","href":"/tools/video/image-to-video"},{"title":"Animation API","sidebarTitle":"Animation","href":"/tools/video/animation"}]},{"group":"Images","pages":[{"title":"Image Tools","href":"/tools/image-tools"},{"title":"AI Image Editor API","sidebarTitle":"Image Editor","href":"/tools/image/image-editor"},{"title":"Face Swap Photo API","sidebarTitle":"Face Swap Photo","href":"/tools/image/face-swap-photo"},{"title":"AI Image Upscaler API","sidebarTitle":"Image Upscaler","href":"/tools/image/image-upscaler"},{"title":"AI Image Generator API","sidebarTitle":"Image Generator","href":"/tools/image/image-generator"},{"title":"Head Swap API","sidebarTitle":"Head Swap","href":"/tools/image/head-swap"},{"title":"AI Clothes Changer API","sidebarTitle":"Clothes Changer","href":"/tools/image/clothes-changer"},{"title":"Image Background Remover API","sidebarTitle":"Background Remover","href":"/tools/image/background-remover"},{"title":"Body Swap API","sidebarTitle":"Body Swap","href":"/tools/image/body-swap"},{"title":"AI Headshot Generator API","sidebarTitle":"Headshot Generator","href":"/tools/image/headshot-generator"},{"title":"AI Face Editor API","sidebarTitle":"Face Editor","href":"/tools/image/face-editor"},{"title":"Photo Colorizer API","sidebarTitle":"Photo Colorizer","href":"/tools/image/photo-colorizer"},{"title":"AI GIF Generator API","sidebarTitle":"GIF Generator API","href":"/tools/image/gif-generator"},{"title":"AI Meme Generator API","sidebarTitle":"Meme Generator","href":"/tools/image/meme-generator"},{"title":"AI QR Code Generator API","sidebarTitle":"QR Code Generator","href":"/tools/image/qr-code-generator"}]},{"group":"Audio","pages":[{"title":"Audio Tools","href":"/tools/audio-tools"},{"title":"AI Voice Cloner API","sidebarTitle":"Voice Cloner","href":"/tools/audio/voice-cloner"},{"title":"AI Voice Generator API","sidebarTitle":"Voice Generator","href":"/tools/audio/voice-generator"}]}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/overview"}]},{"tab":"Webhook Reference","pages":[{"title":"Webhook Reference","href":"/webhook-reference/overview"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"title":"Goose - Magic Hour API Docs","buildId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","deploymentId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","dynamics":[],"chunks":[]}