Tool catalog
Discover the Direct API's tools and their JSON Schemas, and see every v1 tool with the scope it needs.
The Direct API is generated from the same tool definitions as the Morphic MCP server, so the catalog the API serves is always the live one, including every model your plan can use.
Discover the tools
| Request | Returns |
|---|---|
GET /v1/direct/tools | every tool this key can call, with its full JSON Schemas, as { "tools": [ … ] } |
GET /v1/direct/tools/{tool_name} | one entry of that list, as { "tool": { … } } |
GET /v1/direct/openapi.json | an OpenAPI 3.1 document for the whole API, built from the same definitions; use it to generate a typed client |
curl -s https://mcp.morphic.com/v1/direct/tools \
-H "Authorization: Bearer $MORPHIC_API_KEY"{
"tools": [
{
"name": "generate_image",
"title": "Generate image",
"description": "Text to image. TAKES IN: a prompt … PRODUCES: one new image per variation …",
"required_scopes": ["generations:write"],
"charges_credits": true,
"returns_generation": true,
"input_schema": { "type": "object", "properties": { "prompt": { "type": "string", "maxLength": 4000 }, "…": {} }, "required": ["prompt"], "additionalProperties": false },
"output_schema": { "type": "object", "properties": { "generation_id": { "type": "string" }, "…": {} } },
"annotations": { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false }
}
]
}| Field | Meaning |
|---|---|
charges_credits | the tool can spend credits; see Credits and usage |
returns_generation | the tool starts asynchronous work you follow as a generation |
input_schema | JSON Schema of input in the call body. Strict: an unknown key is refused, not ignored. |
output_schema | JSON Schema of result in the response. Open: new fields may appear. |
Tools at v1
GET /v1/direct/tools is the authoritative, always-current list. At v1:
Account and catalog (free)
| Tool | Scope | Does |
|---|---|---|
list_voices | none | the voices a speech model offers, each with its voice_id |
list_projects | projects:read | your projects |
list_workflows, get_workflow | projects:read | saved workflows |
list_characters | assets:read | trained characters, with the id an edit takes |
plan_media | assets:read | validate and quote a multi-step plan; see Quote before you spend |
Library (free)
| Tool | Scope | Does |
|---|---|---|
list_assets | assets:read | uploads, generations and documents, with links; a file you gave by URL is listed here |
list_generations | assets:read | recent generations with status and assets |
Image (paid, return generations)
Scope generations:write: generate_image, edit_image, upscale_image, enhance_image, outpaint_image, inpaint_image, image_compose, image_crop, image_resize, image_rotate, image_flip, image_extend_to_aspect_ratio, image_make_color_transparent.
Video (paid, return generations)
Scope generations:write: generate_video, edit_video, upscale_video, enhance_video, finalize_video_draft, lip_sync, video_compose, video_resize, video_change_frame_rate, video_rotate, video_flip, video_change_speed, video_reverse, video_remove_audio, video_frame_to_image, burn_subtitles.
Audio (paid, return generations)
Scope generations:write: generate_speech, generate_music, generate_sound_effect, generate_dialogue, change_voice, transcribe_media, separate_stems, dub_media, audio_compose, audio_trim, extract_audio.
Analysis (paid, answer in the call)
analyze_video and analyze_audio need the scopes generations:write and assets:read. They start no generation, and the charge is refunded if the analysis fails.
Compose timelines
The tools in this group keep the filmlab_ prefix in their names.
| Tool | Scope | Charges |
|---|---|---|
filmlab_list_timelines, filmlab_read_timeline | projects:read | free |
filmlab_create_timeline | assets:write | free |
filmlab_get_documentation | none | free |
filmlab_edit | generations:write and assets:write | per command |
filmlab_export | generations:write | returns a generation |
Not in the Direct API
| MCP tool | Use instead |
|---|---|
list_models | Models |
get_credit_balance | GET /v1/direct/me |
get_generation_status, wait_for_generations, show_generation, show_asset | GET /v1/direct/generations/{id} and POST /v1/direct/generations/batch-get |
If you have any trouble or have any questions, feel free to reach out. We're happy to help. Write to us at support@morphic.com.