Magic Hour MCP Server
MCP serverMediaCreate and edit images, videos, and audio through Magic Hour's hosted Streamable HTTP MCP server.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use Magic Hour MCP Server to ping
From the project's README
As published by magichourhq/magic-hour-mcp in README.md.
OpenAPI-backed MCP server for Magic Hour image, video, and audio generation.
At startup, this server reads docs/openapi.json and builds MCP tools with
FastMCP.from_openapi(). The OpenAPI spec supplies endpoint coverage, while
Magic Hour MCP policies add agent-facing guidance for async polling, uploads,
and project downloads.
Docs:
- Magic Hour agent skills - media workflows, published examples, and recovery guidance
user.md- hosted endpoint user guideintegration-handoff.md- FastAPI mount checklistdocs/detailed-step-by-step-integration.md- full backend integration guidedocs/api-reference.md- generated API reference
Setup
pip install -e .
Run locally
python main.py
Local MCP endpoint:
http://127.0.0.1:8000/
This local dev server runs at /, not /mcp. The host app adds /mcp when it mounts the server.
By default, requests go to the production Magic Hour API:
https://api.magichour.ai
Tool discovery is public. Tool calls must include your Magic Hour API key:
Authorization: Bearer <magic_hour_api_key>
Agents can discover the hosted server card at:
https://mcp.magichour.ai/.well-known/mcp/server-card.json
Environment variables:
MAGIC_HOUR_API_BASE_URL=https://api.magichour.ai
MAGIC_HOUR_OPENAPI_PATH=docs/openapi.json
MCP_OAUTH_ISSUER_URL=https://mcp.magichour.ai
MCP_OAUTH_RESOURCE_URL=https://mcp.magichour.ai
Override MAGIC_HOUR_API_BASE_URL to use a mock or another API base:
MAGIC_HOUR_API_BASE_URL=https://api.sideko.dev/v1/mock/magichour/magic-hour/latest python main.py
OAuth compatibility
The optional OAuth shim validates a Magic Hour API key and uses that key as the
access token. Production requires MCP_OAUTH_ISSUER_URL and
MCP_OAUTH_RESOURCE_URL. See docs/future-oauth-support.md for deployment
limits.
Public OAuth clients can use the stateless POST /register compatibility endpoint.
Test with MCP Inspector
- Start the server.
- Run:
npx @modelcontextprotocol/inspector - In Inspector:
- Transport:
Streamable HTTP - URL:
http://127.0.0.1:8000/ - Header:
Authorization: Bearer <magic_hour_api_key>
- Transport:
- Call
ping. - Call
video_assets_generate_presigned_urlor another generated tool.
Notes:
- FastMCP generates endpoint tools from OpenAPI at startup.
- Creation tools return
idandcredits_chargedimmediately. - OpenAPI
operationIdvalues are normalized to descriptive snake_case tool names. - The shared
/v1/files/upload-urlsendpoint is namedvideo_assets_generate_presigned_url. It acceptsvideo,audio, andimageitems. - Use
wait_for_*_projectto poll jobs. Useexact_download_urlsexactly as returned; never append expiration metadata. - Image and audio wait tools also return inline media when supported.
Rebuild and type-check the MCP App UI with cd web && npm ci && npm run build.
File uploads
Magic Hour does not accept raw file bytes inside tool arguments. The flow is:
- Call the generated shared upload-URL tool,
video_assets_generate_presigned_url - Upload the file bytes to the returned
upload_url - Pass the returned
file_pathinto the generated creation tool
Direct public media URLs may work, but uploaded file_path values are more
reliable. Upload bytes from the caller or a dedicated upload bridge; the hosted
MCP server never reads caller-supplied local filesystem paths. Browser chat needs
a separate upload UI or bridge; see docs/future-chat-ui-handoff.md.
Tools it offers (44)
What this server listed when ahel dialed its public endpoint in Sep 2026, with no key and no account of yours. The names are the server’s own.
pingwait_for_video_projectwait_for_image_projectwait_for_audio_projectfetch_image_downloadfetch_audio_downloadfetch_video_downloadaccount_retrievevideo_assets_generate_presigned_urlface_detection_retrieve_detailsface_detection_detect_facesvideo_projects_retrieve_detailsvideo_projects_deleteai_talking_photo_create_talking_photoai_video_editor_create_videoanimation_create_videoaudio_to_video_create_videoauto_subtitle_generator_create_videocharacter_replace_create_videoface_swap_create_videoimage_to_video_create_videolip_sync_create_videotext_to_video_create_videovideo_to_video_create_videoimage_projects_retrieve_detailsimage_projects_deleteai_clothes_changer_create_imageai_face_editor_edit_imageai_gif_generator_create_imageai_image_editor_create_image
Signals
- GitHub stars
- 6
- Forks
- 2
- Last commit
- Sep 2026
Advanced
- Delivery
- magic-hour MCP server → your ahel gateway (mcp.ahel.ai) → every connected AI client.
- Catalog kind
- mcp-server
- Gateway key
io-github-magichourhq-magic-hour- Source
- github.com/magichourhq/magic-hour-mcp
- Hosted endpoint
https://mcp.magichour.ai/