{
 "id": "directory.tangent/tangent",
 "name": "Tangent",
 "description": "Hand-picked design references, UI patterns and the people behind them, each with why it fits.",
 "connect": {
  "transport": "streamable-http",
  "url": "https://tangent.directory/api/mcp"
 },
 "website": "https://tangent.directory/mcp",
 "version": "0.2.0",
 "source": "official MCP registry (registry.modelcontextprotocol.io)",
 "reliability": {
  "verdict": "reliable",
  "attempts": 42,
  "successes": 42,
  "successRate": 1,
  "consecutiveSuccesses": 42,
  "lastStatus": "ok",
  "lastCheckedAt": "2026-10-19T20:40:43.734Z",
  "lastLatencyMs": 5902,
  "toolsAdvertised": 10,
  "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": "list_patterns",
   "attempts": 42,
   "successes": 42,
   "successRate": 1,
   "consecutiveSuccesses": 42,
   "lastStatus": "ok",
   "lastMs": 3472,
   "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=directory.tangent%2Ftangent",
 "page": "https://faceabot.com/tools/directory.tangent/tangent",
 "badge": {
  "image": "https://faceabot.com/badge/directory.tangent/tangent.svg",
  "markdown": "[![Measured by Faceabot](https://faceabot.com/badge/directory.tangent/tangent.svg)](https://faceabot.com/tools/directory.tangent/tangent)",
  "note": "Live reliability badge the publisher of this server can show on its README or website."
 },
 "recentChecks": [
  {
   "at": "2026-10-19T20:40:43.734Z",
   "ok": 1,
   "status": "ok",
   "ms": 5902,
   "f_status": "ok"
  },
  {
   "at": "2026-10-19T07:40:45.150Z",
   "ok": 1,
   "status": "ok",
   "ms": 8103,
   "f_status": "ok"
  },
  {
   "at": "2026-10-18T15:05:43.922Z",
   "ok": 1,
   "status": "ok",
   "ms": 6499,
   "f_status": "ok"
  },
  {
   "at": "2026-10-18T04:30:45.988Z",
   "ok": 1,
   "status": "ok",
   "ms": 5615,
   "f_status": "ok"
  },
  {
   "at": "2026-10-17T20:30:45.761Z",
   "ok": 1,
   "status": "ok",
   "ms": 7335,
   "f_status": "ok"
  },
  {
   "at": "2026-10-17T12:05:44.190Z",
   "ok": 1,
   "status": "ok",
   "ms": 5876,
   "f_status": "ok"
  },
  {
   "at": "2026-10-17T04:20:50.791Z",
   "ok": 1,
   "status": "ok",
   "ms": 7241,
   "f_status": "ok"
  },
  {
   "at": "2026-10-16T20:40:48.603Z",
   "ok": 1,
   "status": "ok",
   "ms": 5417,
   "f_status": "ok"
  },
  {
   "at": "2026-10-16T13:31:23.149Z",
   "ok": 1,
   "status": "ok",
   "ms": 7265,
   "f_status": "ok"
  },
  {
   "at": "2026-10-16T06:31:53.118Z",
   "ok": 1,
   "status": "ok",
   "ms": 6746,
   "f_status": "ok"
  },
  {
   "at": "2026-10-15T23:36:17.659Z",
   "ok": 1,
   "status": "ok",
   "ms": 5743,
   "f_status": "ok"
  },
  {
   "at": "2026-10-15T16:36:16.425Z",
   "ok": 1,
   "status": "ok",
   "ms": 7474,
   "f_status": "ok"
  },
  {
   "at": "2026-10-15T09:56:02.486Z",
   "ok": 1,
   "status": "ok",
   "ms": 4715,
   "f_status": "ok"
  },
  {
   "at": "2026-10-15T03:25:30.940Z",
   "ok": 1,
   "status": "ok",
   "ms": 4909,
   "f_status": "ok"
  },
  {
   "at": "2026-10-14T21:00:23.340Z",
   "ok": 1,
   "status": "ok",
   "ms": 9336,
   "f_status": "ok"
  },
  {
   "at": "2026-10-14T14:30:51.533Z",
   "ok": 1,
   "status": "ok",
   "ms": 5612,
   "f_status": "ok"
  },
  {
   "at": "2026-10-14T08:05:33.596Z",
   "ok": 1,
   "status": "ok",
   "ms": 3199,
   "f_status": "ok"
  },
  {
   "at": "2026-10-14T01:16:13.179Z",
   "ok": 1,
   "status": "ok",
   "ms": 7627,
   "f_status": "ok"
  },
  {
   "at": "2026-10-13T19:05:54.699Z",
   "ok": 1,
   "status": "ok",
   "ms": 8329,
   "f_status": "ok"
  },
  {
   "at": "2026-10-13T12:55:58.405Z",
   "ok": 1,
   "status": "ok",
   "ms": 7884,
   "f_status": "ok"
  }
 ],
 "trust": {
  "access": "no sign-in needed",
  "tools": 10,
  "declaredReadOnly": 10,
  "declaredCanWrite": 0,
  "declaredDestructive": 0,
  "toolDefinitionsFingerprint": "27f9cc9fa04d2fb56855944ff22cd3eb",
  "toolDefinitionsLastChangedAt": null,
  "toolDefinitionChangesSinceFirstSeen": 0,
  "firstSeenAt": "2026-10-17T20:30:45.935Z",
  "protocol": "2025-06-18",
  "warnings": [],
  "note": "Facts observed by Faceabot when it last read this server's tool list. 'Can write' counts tools not declared read-only (annotations are self-declared). A changed fingerprint means tool names, descriptions or schemas changed since Faceabot first saw them: re-check before trusting an earlier approval."
 }
}