Skip to content

Install a directory entry

POST
/api/v1/directory/install
curl --request POST \
--url http://localhost:11044/api/v1/directory/install \
--header 'Content-Type: application/json' \
--header 'X-Embabel-Api-Key: <X-Embabel-Api-Key>' \
--data '{ "description": "example", "metadata": { "additionalProperty": "example" }, "name": "example", "source": "example", "type": "SKILL", "url": "example" }'

Install a skill, API, MCP server, or realm from a directory entry. Dispatches to the appropriate install mechanism based on type.

A directory entry as search returns it, installed into the authenticated user’s world; type picks how. SKILL installs the GitHub skill at source. API learns the OpenAPI spec at source (400 when blank), keeping metadata.headers, a string map, as the API’s custom headers. REALM clones and admits the realm repository at source under name. MCP_SERVER fetches the README at source (then url), has a model extract the launch configuration, and files it under a name derived from name. description is not used. Any failure answers 400 with status: error

Media typeapplication/json

An installable skill, API, MCP server or realm found in a registered directory. GET /directory answers a list of these; POST /directory/install takes one back as its body.

object
description
required

One-line summary from the directory source; never empty, a source without one gets a generic label

string
metadata
required

Source-specific extras such as repo, from, version, author, format or registry. On install of an API, a headers object of string values becomes the custom HTTP headers sent to it.

object
key
additional properties
name
required

Display name; the install records the item under it and the installed filter matches on it (for a GitHub realm, the repo name without its realm- prefix)

string
source
required

What install fetches: the OpenAPI spec URL for an API, the git clone URL for a realm, the GitHub tree URL of a skill, the repository or project link of an MCP server. An API entry with a blank source is refused with 400.

string
type
required

Kind of item; selects the install flow

string
Allowed values: SKILL API MCP_SERVER REALM
url

Page for a person to browse (GitHub page, docs site); null when the source gives none

string

Installed successfully

Media type*/*
object
key
additional properties
string

Unsupported type or missing source

Media type*/*

A directory install that failed. Every refusal carries the same two keys

object
message
required

Why the install failed: an unsupported type, a missing spec URL, or what the installer reported

string
status
required

Always “error”

string