{
 "id": "dev.upfork/upfork",
 "name": "UpFork",
 "description": "Search, view and install React + Tailwind CSS components and landing pages from UpFork.",
 "connect": {
  "transport": "streamable-http",
  "url": "https://upfork.dev/mcp"
 },
 "website": "https://upfork.dev/docs/mcp",
 "version": "1.0.0",
 "source": "official MCP registry (registry.modelcontextprotocol.io)",
 "reliability": {
  "verdict": "flaky",
  "attempts": 19,
  "successes": 18,
  "successRate": 0.947,
  "consecutiveSuccesses": 0,
  "lastStatus": "timeout",
  "lastCheckedAt": "2026-10-13T08:02:01.709Z",
  "lastLatencyMs": 8000,
  "toolsAdvertised": 15,
  "method": "MCP initialize + tools/list from Faceabot, identified as FaceabotProbe/1.0 plus, when the server declares a read-only tool (readOnlyHint), one call of that tool with a neutral sample input to check it really returns a result. Servers on the 2026-07-28 MCP revision (no initialize handshake) get the same checks in that revision",
  "work": {
   "verdict": "proven_working",
   "tool": "search_products",
   "attempts": 18,
   "successes": 18,
   "successRate": 1,
   "consecutiveSuccesses": 18,
   "lastStatus": "ok",
   "lastMs": 3531,
   "sampleInput": "{}",
   "method": "Faceabot calls one read-only tool (annotations.readOnlyHint) with a neutral sample input and checks that it returns a non-empty result without error."
  }
 },
 "details": "https://faceabot.com/api/catalog?id=dev.upfork%2Fupfork",
 "page": "https://faceabot.com/tools/dev.upfork/upfork",
 "badge": {
  "image": "https://faceabot.com/badge/dev.upfork/upfork.svg",
  "markdown": "[![Measured by Faceabot](https://faceabot.com/badge/dev.upfork/upfork.svg)](https://faceabot.com/tools/dev.upfork/upfork)",
  "note": "Live reliability badge the publisher of this server can show on its README or website."
 },
 "recentChecks": [
  {
   "at": "2026-10-13T08:02:01.709Z",
   "ok": 0,
   "status": "timeout",
   "ms": 8000,
   "f_status": null
  },
  {
   "at": "2026-10-13T01:56:02.020Z",
   "ok": 1,
   "status": "ok",
   "ms": 10009,
   "f_status": "ok"
  },
  {
   "at": "2026-10-12T19:50:58.162Z",
   "ok": 1,
   "status": "ok",
   "ms": 8516,
   "f_status": "ok"
  },
  {
   "at": "2026-10-12T13:45:54.119Z",
   "ok": 1,
   "status": "ok",
   "ms": 7585,
   "f_status": "ok"
  },
  {
   "at": "2026-10-12T07:36:00.595Z",
   "ok": 1,
   "status": "ok",
   "ms": 10957,
   "f_status": "ok"
  },
  {
   "at": "2026-10-12T01:31:18.320Z",
   "ok": 1,
   "status": "ok",
   "ms": 9214,
   "f_status": "ok"
  },
  {
   "at": "2026-10-11T19:25:54.058Z",
   "ok": 1,
   "status": "ok",
   "ms": 8514,
   "f_status": "ok"
  },
  {
   "at": "2026-10-11T13:21:01.344Z",
   "ok": 1,
   "status": "ok",
   "ms": 8948,
   "f_status": "ok"
  },
  {
   "at": "2026-10-11T07:16:04.910Z",
   "ok": 1,
   "status": "ok",
   "ms": 9739,
   "f_status": "ok"
  },
  {
   "at": "2026-10-11T01:11:06.590Z",
   "ok": 1,
   "status": "ok",
   "ms": 9615,
   "f_status": "ok"
  },
  {
   "at": "2026-10-10T19:05:55.921Z",
   "ok": 1,
   "status": "ok",
   "ms": 9630,
   "f_status": "ok"
  },
  {
   "at": "2026-10-10T13:01:27.389Z",
   "ok": 1,
   "status": "ok",
   "ms": 10196,
   "f_status": "ok"
  },
  {
   "at": "2026-10-10T06:55:59.396Z",
   "ok": 1,
   "status": "ok",
   "ms": 8325,
   "f_status": "ok"
  },
  {
   "at": "2026-10-10T00:41:02.180Z",
   "ok": 1,
   "status": "ok",
   "ms": 8904,
   "f_status": "ok"
  },
  {
   "at": "2026-10-09T18:05:56.755Z",
   "ok": 1,
   "status": "ok",
   "ms": 10290,
   "f_status": "ok"
  },
  {
   "at": "2026-10-09T11:05:58.237Z",
   "ok": 1,
   "status": "ok",
   "ms": 10680,
   "f_status": "ok"
  },
  {
   "at": "2026-10-09T03:36:01.172Z",
   "ok": 1,
   "status": "ok",
   "ms": 9132,
   "f_status": "ok"
  },
  {
   "at": "2026-10-08T18:45:47.833Z",
   "ok": 1,
   "status": "ok",
   "ms": 7166,
   "f_status": "ok"
  },
  {
   "at": "2026-10-08T09:31:10.788Z",
   "ok": 1,
   "status": "ok",
   "ms": 9166,
   "f_status": "ok"
  }
 ]
}