Overview
A composite skill aggregates capabilities from multiple MCP servers into a single discoverable unit. Instead of querying dozens of individual servers, an AI agent queries one composite that routes to the right businesses based on vertical, location, capabilities, and trust requirements.Composite skills are computed in real-time — they reflect current health and verification status on every request.
Types of composite skills
Per-business composition
A single business with multiple capabilities exposes them as one unified skill. The listing’sSKILL.md references sub-skills via composed_of:
Cross-business composition (Hub-native)
Hub dynamically generates composites from registry queries — not static files, but computed at query time based on vertical, location, verification level, and capabilities:Trust rules
A composite skill’s trust level equals the minimum verification tier of its participants (Decision #6). This prevents a single unverified server from hiding inside a trusted composite.
Consequences:
- If a participant’s verification lapses, the composite is automatically recomputed excluding that participant
- Unhealthy servers (health score < 50) are excluded from composite membership entirely
- A composite’s
avgHealthScoreis the average of its current members
?verification_tier_min=3 — returns only composites where every participant is business-verified or higher.
created_by discriminator
Every composite has a created_by field that indicates its origin and governs its lifecycle:
Agent composites
When an agent creates a composite withcreated_by=agent:
- Visibility is always
private— thevisibilityparameter is rejected with HTTP 400 expiresAtis set tonow() + 30 days- Maximum 50 agent composites per account (HTTP 429 with
Retry-After: 86400if exceeded) - A daily background job purges expired agent composites
Promotion flow
Account holders can promote an agent-created composite to persistent, public ownership: Auth: Builder+ Hub API key (owning account)expiresAt (the composite persists indefinitely) and makes it eligible for browse discovery.
Response:
Featured composites (created_by: system)
Hub auto-generates system composites every 6 hours:
- For each vertical with ≥ 3 eligible listings in a given city/state
- Eligibility:
verification_tier ≥ 2andhealth_score ≥ 50 - Maximum 500 system composites system-wide
- Named
"{City} {Vertical Title-Case}"(e.g., “Ann Arbor Restaurants”) - Stable deterministic IDs — safe to bookmark
- Always
visibility: public
API reference
Dynamic composite query
Query composites in real time without saving a composite definition:
Example request:
trust_score × health_score × listing_tier.
Composites are computed fresh on every request — not cached — to reflect real-time health and verification status. Query performance target: <200ms p95.
List your composites
Return all saved composites owned by the authenticated account:
Page limit: The response returns up to 200 composites per call. When the result set is capped at 200, the response includes the
X-Truncated: true header indicating that more records exist beyond the returned page.
X-Truncated response header:
Example request:
Create custom composite
Save a composite definition for reuse:query_definition fields:
Example — user-owned public composite:
Update custom composite
Update thename, description, visibility, and/or query_definition of a saved custom composite you own:
created_by: system) cannot be updated. Agent-created composites (created_by: agent) cannot be promoted to visibility: public via this endpoint.
URL parameters:
Request body (at least one field required):
Example request:
Delete custom composite
Permanently delete a custom composite you own:created_by: system) cannot be deleted via this endpoint.
URL parameters:
Example request:
204 No Content on success (empty body).
Error codes:
Browse public composites
List the public composite catalog — system-generated and user-promoted composites:Agent-created composites (
created_by: agent) are never included in browse results. Only public composites are returned.compositeTrust DESC → memberCount DESC → avgHealthScore DESC
Example request:
Composite SKILL.md
Every public composite exposes a SKILL.md document for agent discovery:- Public composites: any Explorer+ key
- Private composites (including agent-created): owning account only
Hub MCP server tools
The ezForge Hub MCP server exposes two composite tools for agents that consume Hub natively.hub_composites
Query composites in real time using the dynamic composite API. Equivalent to GET /v1/hub/composites.
Arguments:
Auth: Explorer+
hub_browse_composites
Browse the public composite catalog. Equivalent to GET /v1/hub/composites/browse. Agent-created composites are never included.
Arguments:
Auth: Explorer+
Example response: