Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions packages/mcp-server/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,14 @@ export WAYFORTH_API_KEY=wf_live_...

| Tool | Description |
|------|-------------|
| `wayforth_search` | Search ~5,000 APIs by natural language — returns WRI scores, tier, price/req |
| `wayforth_search` | Search ~5,000 APIs by natural language — returns reliability scores, tier, price/req |
| `wayforth_query` | Structured discovery — filter by tier, latency, region, price, payment rail |
| `wayforth_run` | Intent-based routing with automatic reliability failover — returns result + failover status |
| `wayforth_execute` | Direct execution of a managed service; auto-fails over to best alternative if degraded — returns result + failover status |
| `wayforth_reliability` | Real-time reliability check — WRI score, tier, 7d uptime, last probe, failover candidate |
| `wayforth_reliability` | Real-time reliability check — reliability score, tier, 7d uptime, last probe, failover candidate |
| `wayforth_pay` | Pay for a service via card credits or USDC on Base |
| `wayforth_list` | Browse catalog with category, tier, and limit filters |
| `wayforth_status` | Live API health, WRI scores, tier levels, last probe result, and failover history |
| `wayforth_status` | Live API health, reliability scores, tier levels, last probe result, and failover history |
| `wayforth_stats` | Catalog statistics — total services, tier breakdown |
| `wayforth_keys` | Store your own API keys encrypted at rest (BYOK) |
| `wayforth_remember` | Save a service to persistent agent memory |
Expand All @@ -46,7 +46,7 @@ export WAYFORTH_API_KEY=wf_live_...
| `wayforth_similar` | Find services co-used alongside a given service |
| `wayforth_identity` | Get or create your agent identity — returns trust score, reputation tier, usage history |
| `wayforth_check_agent_identity` | Look up another agent's identity by wallet address |
| `wayforth_set_wri_alert` | Set a webhook to fire when a service crosses a WRI score threshold |
| `wayforth_set_wri_alert` | Set a webhook to fire when a service crosses a reliability score threshold |
| `wayforth_quickstart` | Get started guide — returned as a formatted string |

## Development
Expand Down
2 changes: 1 addition & 1 deletion packages/mcp-server/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "wayforth-mcp"
version = "0.8.14"
version = "0.9.1"
description = "MCP server for Wayforth — The API Runtime for AI Agents."
readme = "README.md"
license = {text = "BSL-1.1"}
Expand Down
4 changes: 2 additions & 2 deletions packages/mcp-server/tools/compare.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ async def wayforth_compare(
) -> str:
"""
Compare 2-5 API services side by side.
Returns WRI scores, response times, costs, signal counts and a plain-English recommendation.
Returns reliability scores, response times, costs, signal counts and a plain-English recommendation.
Use this before committing to a service.
"""
api_key = _get_api_key()
Expand All @@ -41,7 +41,7 @@ async def wayforth_compare(
lines.append("")
for svc in d["services"]:
verdict = f" [{svc['verdict']}]" if svc.get("verdict") else ""
wri = f"WRI {svc['wri_score']}" if svc.get("wri_score") else "WRI —"
wri = f"Reliability {svc['wri_score']}" if svc.get("wri_score") else "Reliability —"
signals = f" signals={svc['total_signals']}" if svc.get("total_signals") else ""
ms = f" {svc['avg_response_ms']}ms" if svc.get("avg_response_ms") else ""
credits = f" {svc['credits_per_call']} credits/call" if svc.get("credits_per_call") else ""
Expand Down
4 changes: 2 additions & 2 deletions packages/mcp-server/tools/execute.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ async def wayforth_execute(
agent_id: str = Field(default="", description="Optional: tag this call with your agent's name for per-agent analytics. Example: 'translation-agent'. Max 64 chars, alphanumeric/hyphens/underscores."),
) -> str:
"""Direct execution against a managed service by slug.
If the service is below Tier 2 or WRI-degraded at call time, Wayforth
If the service is below Tier 2 or reliability-degraded at call time, Wayforth
fails over to the best verified alternative automatically.
Returns result + failover status.

Expand Down Expand Up @@ -65,7 +65,7 @@ async def wayforth_execute(
if failover.get("triggered"):
out["_failover_note"] = (
f"⚡ Failover: {failover.get('original_service')} → {failover.get('routed_to')} "
f"({failover.get('reason')}, WRI {failover.get('original_wri')} → {failover.get('fallback_wri')})"
f"({failover.get('reason')}, reliability {failover.get('original_wri')} → {failover.get('fallback_wri')})"
)
result_str = json.dumps(out, indent=2)

Expand Down
6 changes: 3 additions & 3 deletions packages/mcp-server/tools/reliability.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@ async def wayforth_reliability(
),
category: Optional[str] = Field(
default=None,
description="Category name — returns top 5 services by WRI score. "
description="Category name — returns top 5 services by reliability score. "
"Options: translation, inference, search, data, image, audio, communication. "
"Used when slug is not provided.",
),
) -> str:
"""Check real-time reliability for a service or category.
Returns WRI score (0-100), Tier level, uptime over 7 days, last probe timestamp,
Returns reliability score (0-100), Tier level, uptime over 7 days, last probe timestamp,
and whether a verified failover alternative exists.
Use to pre-check before committing to a service for a long-running task.
"""
Expand Down Expand Up @@ -70,7 +70,7 @@ def _fmt_entry(e: dict) -> str:
status_icon = {"healthy": "✅", "degraded": "⚠️", "outage": "🔴"}.get(e.get("status", ""), "❓")
lines = [
f"{status_icon} {e.get('name', e.get('service'))} ({e.get('service')})",
f" WRI: {e.get('wri', 'N/A')} / 100",
f" Reliability: {e.get('wri', 'N/A')} / 100",
f" Tier: {e.get('tier', 'N/A')}",
f" Uptime: {e.get('uptime_7d') or 'N/A'} (7d)",
f" Latency: {e.get('avg_response_ms', 'N/A')} ms avg",
Expand Down
4 changes: 2 additions & 2 deletions packages/mcp-server/tools/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ async def wayforth_run(
),
) -> str:
"""Intent-based routing with automatic reliability failover.
Describe what you need — Wayforth selects the highest-WRI verified service
Describe what you need — Wayforth selects the highest-reliability verified service
and executes it. If the primary service degrades mid-session, automatically
reroutes to the next verified equivalent. Returns result + failover status.

Expand Down Expand Up @@ -115,6 +115,6 @@ async def wayforth_run(
if failover.get("triggered"):
out["_failover_note"] = (
f"⚡ Failover: {failover.get('original_service')} → {failover.get('routed_to')} "
f"({failover.get('reason')}, WRI {failover.get('original_wri')} → {failover.get('fallback_wri')})"
f"({failover.get('reason')}, reliability {failover.get('original_wri')} → {failover.get('fallback_wri')})"
)
return json.dumps(out, indent=2)
Loading