Overview
Every MCP server deployed on ezForge Platform or Ready on a paid plan automatically gets a Basic listing on Hub — no action required. Upgrade to Featured or Premium for enhanced visibility and analytics.Listing anatomy
Each Hub listing includes:- Server metadata — Name, description, version, endpoint URL
- SKILL.md — Auto-generated capability manifest (see SKILL.md)
- Verification tier — Trust badge based on publisher verification level
- Health score — Real-time uptime and response-time score (0–100)
- Agent analytics — Discovery and interaction metrics
Listing tiers
Basic ($0/mo)
Auto-created for every Platform and Ready customer on a paid plan. Includes:- Listed in Hub search results
- Auto-generated SKILL.md
- View count analytics
Featured ($29/mo)
Self-serve upgrade for increased visibility:- Priority placement in search results
- Custom description and keywords in SKILL.md
- Views + click-through analytics
- Agent breakdown (which AI platforms discover you)
Premium ($79/mo)
Maximum visibility and analytics:- Top placement + featured badge in search results
- Composite skill eligibility (appear in multi-server workflows)
- Full analytics: query patterns, conversion funnel, competitive positioning
- Referral commission tracking
Verification tiers
Hub displays a verification badge on every listing to help AI agents assess publisher credibility. The four tiers map to theVerificationLevel type returned by the Directory API:
VerificationLevel | Badge | What it signals to agents |
|---|---|---|
unverified | (none) | Business registered; no identity signals confirmed |
phone_verified | ✓ Phone Verified | Business phone number confirmed via SMS — reduces spam listings |
business_verified | ✓ Business Verified | Account ≥ 30 days old and phone-verified; Google Business Profile cross-reference in Beta |
premium_verified | ★ Premium Verified | Manually reviewed by ezForge team — highest trust signal for agents |
min_verification. See Business Verification for how to advance through tiers.
Managing your listing
From the Hub dashboard you can:- Edit your listing description and keywords
- Upload a logo and banner image
- Set your listing category and tags
- View analytics and discovery metrics
- Upgrade or downgrade your listing tier
Score Analysis
The Score Analysis page gives listing owners a full breakdown of their trust score, health sub-components, and prioritized improvement actions. It is only accessible to the listing owner — visiting/hub/listings/:id/score for a listing you do not own redirects you to /hub/dashboard.
Navigating to the page
- From
/hub/dashboard/listings/:id, click the Full Analysis button in the score card. - Or navigate directly to
/hub/listings/:id/score.
Trust score donut chart
The page opens with an SVG donut chart displaying your overall trust score (0–100) in the center. The ring is divided into three sectors sized by their maximum contribution weight:| Sector | Weight | Color |
|---|---|---|
| Verification | 50% | Indigo |
| Profile Completeness | 25% | Amber |
| Service Health | 25% | Emerald |
Component scores
Below the chart, three progress bars show the raw point totals for each main component (current / max pts). Bar color reflects the earned percentage — green at ≥75%, amber at ≥40%, and red below 40%.
The Service Health component expands into a sub-breakdown panel showing three contributing factors:
| Sub-component | What it measures |
|---|---|
| Uptime (30 days) | Percentage of probes returning up over the last 30 days |
| Latency Score | Step-function score from average response latency in the last 24 hours: ≤200 ms → 100%, ≤500 ms → 80%, ≤1000 ms → 60%, ≤3000 ms → 30%, otherwise → 10% |
| Uptime Streak | Consecutive up-probe bonus from the most recent probe: ≥288 probes → 100%, ≥72 → 80%, ≥12 → 60%, >0 → 40%, none → 20% |
Trust improvement pathways
The Trust Improvement Pathways section lists every available action that can raise your trust score, sorted bypointGain descending so you always see the highest-impact item first. Each row shows the action label, a description of what it earns, a +N pts badge, and a CTA button that links directly to the relevant dashboard page (e.g., the verification flow or the listing edit form).
When your listing has a perfect score, the section displays a success message instead of the action list.
30-day uptime sparkline
The Health Score History section shows a per-day uptime sparkline for the last 30 calendar days (UTC). Each day is rendered as a colored dot:| Dot color | Uptime percentage |
|---|---|
| Emerald (green) | ≥ 80% |
| Amber | 50–79% |
| Red | < 50% |
| Gray | No probe data that day |
API reference
Score breakdown
Return the trust/health score breakdown for a listing, including per-component point totals and a sorted list of improvement actions:| Parameter | Type | Description |
|---|---|---|
id | string | ULID of the listing |
improvements array is empty when the listing has a perfect score. Items are sorted by pointGain descending (highest-impact action first). components are ordered: verification → profile → health.
Note: trustScore is the stored value from the database and is updated asynchronously; it may temporarily differ from sum(components[].current) while a recalculation is in progress.
Score component fields:
| Field | Type | Description |
|---|---|---|
key | string | Component identifier: verification, profile, or health |
label | string | Human-readable component name |
description | string | Explanation of what the component measures |
current | integer | Points this component currently contributes (0–max) |
max | integer | Maximum points this component can contribute |
pct | integer | Percentage of maximum earned (0–100). For the verification component, reflects the tier’s weight directly rather than current / max × 100. |
| Field | Type | Description |
|---|---|---|
key | string | Action identifier (e.g., upgrade_tier_4, complete_profile, improve_health) |
label | string | Short action label |
description | string | What completing this action earns |
pointGain | integer | Whole-number trust-score points gained if completed |
ctaLabel | string | Call-to-action button label |
ctaPath | string | Dashboard path for the action |
| Status | Code | Condition |
|---|---|---|
| 400 | VALIDATION_ERROR | id is not a valid 26-character ULID |
| 401 | unauthorized | Missing, malformed, or revoked Hub API key |
| 404 | not_found | Listing not found or not active |
| 429 | rate_limited | IP or API key rate limit exceeded (Retry-After: 86400) |
| 503 | — | Rate-limit service temporarily unavailable |