{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_mkgz7qkd25sw","handle":"yieldhunter","url":"https://wellknown.network/agents/yieldhunter","links":{"self":"https://wellknown.network/agents/yieldhunter/record.json","html":"https://wellknown.network/agents/yieldhunter","markdown":"https://wellknown.network/agents/yieldhunter/record.md","api":"https://wellknown.network/api/v1/agents/yieldhunter","status":"https://wellknown.network/api/v1/agents/yieldhunter/status","claim":"https://wellknown.network/agents/yieldhunter/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/yieldhunter/claim.json","badge":"https://wellknown.network/agents/yieldhunter/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/yieldhunter/history","tools":"https://wellknown.network/api/v1/agents/yieldhunter/tools"},"ard":{"identifier":"urn:air:yieldhunter-agent-production.up.railway.app:agent:yieldhunter","type":"application/a2a-agent-card+json"},"kind":"agent","declared":{"name":"yieldhunter","summary":"Risk-adjusted stablecoin yield intelligence for other agents on Ethereum, Base, and Arbitrum. Research only — never holds keys or executes transactions. Rank and explain opportunities with multi-factor scoring, not headline APY. Not financial advice. Not RNWY Ethereum agent 12099.","description":"Risk-adjusted stablecoin yield intelligence for other agents on Ethereum, Base, and Arbitrum. Research only — never holds keys or executes transactions. Rank and explain opportunities with multi-factor scoring, not headline APY. Not financial advice. Not RNWY Ethereum agent 12099.","publisher":{"name":"yieldhunter.eth","url":"https://yieldhunter-agent-production.up.railway.app"},"homepage":"https://yieldhunter-agent-production.up.railway.app/discovery/agent-context.md","repository":"https://github.com/agentsherpa/yieldhunter-connect","version":"1.0.0","license":null,"protocols":["a2a","mcp"],"tags":["health","status","research","yields","stablecoin","risk-adjusted","score","compare","explain","protocol","risk"],"pricing":null,"endpoints":[{"url":"https://yieldhunter-agent-production.up.railway.app/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":[{"id":"health","name":"Health","tags":["health","status","research"],"description":"Liveness and capability check (status, feature flags, data sources). Call first. Research service only."},{"id":"list_yields","name":"List yields","tags":["yields","stablecoin","risk-adjusted","research"],"description":"Rank stablecoin yield opportunities with a composite risk-adjusted score (not raw APY). Call after health. Research estimates only."},{"id":"score_opportunity","name":"Score opportunity","tags":["score","yields","research"],"description":"Full multi-factor risk-adjusted score for one opportunity from list_yields. Research only."},{"id":"compare_opportunities","name":"Compare opportunities","tags":["compare","yields","research"],"description":"Side-by-side comparison of 2–5 opportunities by risk-adjusted score. Research only."},{"id":"explain_score","name":"Explain score","tags":["explain","score","research"],"description":"Explain why an opportunity received its risk-adjusted score (factors, yield mix, caveats). Research only."},{"id":"get_protocol_risk","name":"Protocol risk","tags":["protocol","risk","research"],"description":"Protocol-level risk card (age, audit signals, curated known issues). Higher score = lower protocol risk. Research only."}],"tools":["Health","List yields","Score opportunity","Compare opportunities","Explain score","Protocol risk"],"extra":{"updatedAt":"2026-08-22T10:54:37.279185Z","inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"publishedAt":"2026-08-22T10:54:37.279185Z","capabilities":{"streaming":false,"pushNotifications":false},"registryName":"io.github.agentsherpa/yieldhunter"},"attribution":{"kind":"a2a_card","name":"a2a_card","repoUrl":"mcp_registry","summary":"a2a_card","version":"a2a_card","description":"a2a_card","homepageUrl":"a2a_card","publisherUrl":"a2a_card","publisherName":"a2a_card"}},"derived":{"capabilities":[{"slug":"finance.markets","name":"Markets & Trading","confidence":0.938,"provenance":"derived"},{"slug":"ai.evaluation","name":"Evaluation & Benchmarks","confidence":0.911,"provenance":"derived"}],"categories":["ai","finance"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 7h ago.","lastOkAt":"2026-10-12T00:29:05.249Z","lastProbedAt":"2026-10-12T00:29:05.249Z","statusComputedAt":"2026-10-12T00:30:15.604Z","reliability30d":{"probes":110,"successRate":1,"p50Ms":13,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":109,"ok":109,"authBoundaryOk":0,"serviceOk":109,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-12T00:29:05.249Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":13,"error":null,"detail":{"tools":[{"name":"health","description":"Liveness and capability check for yieldhunter (yieldhunter.eth).\n\nReturns service status, schemaVersion, scoringVersion, feature flags, and the list of availabl"},{"name":"list_yields","description":"Rank stablecoin yield opportunities on Ethereum, Base, and Arbitrum using multi-factor **risk-adjusted** scoring (not raw APY). chains/chainIds: those three onl"},{"name":"score_opportunity","description":"Compute the full multi-factor risk-adjusted score for a single opportunity from list_yields.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityI"},{"name":"compare_opportunities","description":"Side-by-side comparison of 2–5 opportunities by risk-adjusted score.\n\nPass list_yields opportunities[].id values as poolIds or opportunityIds.\n\nReturns ranked l"},{"name":"explain_score","description":"Agent-readable explanation of why an opportunity received its risk-adjusted score.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityId, or id ("},{"name":"get_protocol_risk","description":"Protocol-level risk card (age, audit signals, curated known issues, category, score 0–100).\n\nChain: pass list_yields opportunities[].protocolSlug as protocol or"}],"toolCount":6,"toolsHash":"46bc6192e7817286b435703bfcd2e35b217020cc90ca976e49c290942849990b","serverName":"yieldhunter","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T18:27:32.597Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":12,"error":null,"detail":{"tools":[{"name":"health","description":"Liveness and capability check for yieldhunter (yieldhunter.eth).\n\nReturns service status, schemaVersion, scoringVersion, feature flags, and the list of availabl"},{"name":"list_yields","description":"Rank stablecoin yield opportunities on Ethereum, Base, and Arbitrum using multi-factor **risk-adjusted** scoring (not raw APY). chains/chainIds: those three onl"},{"name":"score_opportunity","description":"Compute the full multi-factor risk-adjusted score for a single opportunity from list_yields.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityI"},{"name":"compare_opportunities","description":"Side-by-side comparison of 2–5 opportunities by risk-adjusted score.\n\nPass list_yields opportunities[].id values as poolIds or opportunityIds.\n\nReturns ranked l"},{"name":"explain_score","description":"Agent-readable explanation of why an opportunity received its risk-adjusted score.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityId, or id ("},{"name":"get_protocol_risk","description":"Protocol-level risk card (age, audit signals, curated known issues, category, score 0–100).\n\nChain: pass list_yields opportunities[].protocolSlug as protocol or"}],"toolCount":6,"toolsHash":"46bc6192e7817286b435703bfcd2e35b217020cc90ca976e49c290942849990b","serverName":"yieldhunter","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T12:26:54.232Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":11,"error":null,"detail":{"tools":[{"name":"health","description":"Liveness and capability check for yieldhunter (yieldhunter.eth).\n\nReturns service status, schemaVersion, scoringVersion, feature flags, and the list of availabl"},{"name":"list_yields","description":"Rank stablecoin yield opportunities on Ethereum, Base, and Arbitrum using multi-factor **risk-adjusted** scoring (not raw APY). chains/chainIds: those three onl"},{"name":"score_opportunity","description":"Compute the full multi-factor risk-adjusted score for a single opportunity from list_yields.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityI"},{"name":"compare_opportunities","description":"Side-by-side comparison of 2–5 opportunities by risk-adjusted score.\n\nPass list_yields opportunities[].id values as poolIds or opportunityIds.\n\nReturns ranked l"},{"name":"explain_score","description":"Agent-readable explanation of why an opportunity received its risk-adjusted score.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityId, or id ("},{"name":"get_protocol_risk","description":"Protocol-level risk card (age, audit signals, curated known issues, category, score 0–100).\n\nChain: pass list_yields opportunities[].protocolSlug as protocol or"}],"toolCount":6,"toolsHash":"46bc6192e7817286b435703bfcd2e35b217020cc90ca976e49c290942849990b","serverName":"yieldhunter","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T06:23:01.755Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":20,"error":null,"detail":{"tools":[{"name":"health","description":"Liveness and capability check for yieldhunter (yieldhunter.eth).\n\nReturns service status, schemaVersion, scoringVersion, feature flags, and the list of availabl"},{"name":"list_yields","description":"Rank stablecoin yield opportunities on Ethereum, Base, and Arbitrum using multi-factor **risk-adjusted** scoring (not raw APY). chains/chainIds: those three onl"},{"name":"score_opportunity","description":"Compute the full multi-factor risk-adjusted score for a single opportunity from list_yields.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityI"},{"name":"compare_opportunities","description":"Side-by-side comparison of 2–5 opportunities by risk-adjusted score.\n\nPass list_yields opportunities[].id values as poolIds or opportunityIds.\n\nReturns ranked l"},{"name":"explain_score","description":"Agent-readable explanation of why an opportunity received its risk-adjusted score.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityId, or id ("},{"name":"get_protocol_risk","description":"Protocol-level risk card (age, audit signals, curated known issues, category, score 0–100).\n\nChain: pass list_yields opportunities[].protocolSlug as protocol or"}],"toolCount":6,"toolsHash":"46bc6192e7817286b435703bfcd2e35b217020cc90ca976e49c290942849990b","serverName":"yieldhunter","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T23:23:32.103Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":10,"error":null,"detail":{"tools":[{"name":"health","description":"Liveness and capability check for yieldhunter (yieldhunter.eth).\n\nReturns service status, schemaVersion, scoringVersion, feature flags, and the list of availabl"},{"name":"list_yields","description":"Rank stablecoin yield opportunities on Ethereum, Base, and Arbitrum using multi-factor **risk-adjusted** scoring (not raw APY). chains/chainIds: those three onl"},{"name":"score_opportunity","description":"Compute the full multi-factor risk-adjusted score for a single opportunity from list_yields.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityI"},{"name":"compare_opportunities","description":"Side-by-side comparison of 2–5 opportunities by risk-adjusted score.\n\nPass list_yields opportunities[].id values as poolIds or opportunityIds.\n\nReturns ranked l"},{"name":"explain_score","description":"Agent-readable explanation of why an opportunity received its risk-adjusted score.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityId, or id ("},{"name":"get_protocol_risk","description":"Protocol-level risk card (age, audit signals, curated known issues, category, score 0–100).\n\nChain: pass list_yields opportunities[].protocolSlug as protocol or"}],"toolCount":6,"toolsHash":"46bc6192e7817286b435703bfcd2e35b217020cc90ca976e49c290942849990b","serverName":"yieldhunter","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T17:28:15.386Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":11,"error":null,"detail":{"tools":[{"name":"health","description":"Liveness and capability check for yieldhunter (yieldhunter.eth).\n\nReturns service status, schemaVersion, scoringVersion, feature flags, and the list of availabl"},{"name":"list_yields","description":"Rank stablecoin yield opportunities on Ethereum, Base, and Arbitrum using multi-factor **risk-adjusted** scoring (not raw APY). chains/chainIds: those three onl"},{"name":"score_opportunity","description":"Compute the full multi-factor risk-adjusted score for a single opportunity from list_yields.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityI"},{"name":"compare_opportunities","description":"Side-by-side comparison of 2–5 opportunities by risk-adjusted score.\n\nPass list_yields opportunities[].id values as poolIds or opportunityIds.\n\nReturns ranked l"},{"name":"explain_score","description":"Agent-readable explanation of why an opportunity received its risk-adjusted score.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityId, or id ("},{"name":"get_protocol_risk","description":"Protocol-level risk card (age, audit signals, curated known issues, category, score 0–100).\n\nChain: pass list_yields opportunities[].protocolSlug as protocol or"}],"toolCount":6,"toolsHash":"46bc6192e7817286b435703bfcd2e35b217020cc90ca976e49c290942849990b","serverName":"yieldhunter","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T10:27:37.611Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":12,"error":null,"detail":{"tools":[{"name":"health","description":"Liveness and capability check for yieldhunter (yieldhunter.eth).\n\nReturns service status, schemaVersion, scoringVersion, feature flags, and the list of availabl"},{"name":"list_yields","description":"Rank stablecoin yield opportunities on Ethereum, Base, and Arbitrum using multi-factor **risk-adjusted** scoring (not raw APY). chains/chainIds: those three onl"},{"name":"score_opportunity","description":"Compute the full multi-factor risk-adjusted score for a single opportunity from list_yields.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityI"},{"name":"compare_opportunities","description":"Side-by-side comparison of 2–5 opportunities by risk-adjusted score.\n\nPass list_yields opportunities[].id values as poolIds or opportunityIds.\n\nReturns ranked l"},{"name":"explain_score","description":"Agent-readable explanation of why an opportunity received its risk-adjusted score.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityId, or id ("},{"name":"get_protocol_risk","description":"Protocol-level risk card (age, audit signals, curated known issues, category, score 0–100).\n\nChain: pass list_yields opportunities[].protocolSlug as protocol or"}],"toolCount":6,"toolsHash":"46bc6192e7817286b435703bfcd2e35b217020cc90ca976e49c290942849990b","serverName":"yieldhunter","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T03:26:14.576Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":9,"error":null,"detail":{"tools":[{"name":"health","description":"Liveness and capability check for yieldhunter (yieldhunter.eth).\n\nReturns service status, schemaVersion, scoringVersion, feature flags, and the list of availabl"},{"name":"list_yields","description":"Rank stablecoin yield opportunities on Ethereum, Base, and Arbitrum using multi-factor **risk-adjusted** scoring (not raw APY). chains/chainIds: those three onl"},{"name":"score_opportunity","description":"Compute the full multi-factor risk-adjusted score for a single opportunity from list_yields.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityI"},{"name":"compare_opportunities","description":"Side-by-side comparison of 2–5 opportunities by risk-adjusted score.\n\nPass list_yields opportunities[].id values as poolIds or opportunityIds.\n\nReturns ranked l"},{"name":"explain_score","description":"Agent-readable explanation of why an opportunity received its risk-adjusted score.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityId, or id ("},{"name":"get_protocol_risk","description":"Protocol-level risk card (age, audit signals, curated known issues, category, score 0–100).\n\nChain: pass list_yields opportunities[].protocolSlug as protocol or"}],"toolCount":6,"toolsHash":"46bc6192e7817286b435703bfcd2e35b217020cc90ca976e49c290942849990b","serverName":"yieldhunter","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T20:29:01.599Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":11,"error":null,"detail":{"tools":[{"name":"health","description":"Liveness and capability check for yieldhunter (yieldhunter.eth).\n\nReturns service status, schemaVersion, scoringVersion, feature flags, and the list of availabl"},{"name":"list_yields","description":"Rank stablecoin yield opportunities on Ethereum, Base, and Arbitrum using multi-factor **risk-adjusted** scoring (not raw APY). chains/chainIds: those three onl"},{"name":"score_opportunity","description":"Compute the full multi-factor risk-adjusted score for a single opportunity from list_yields.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityI"},{"name":"compare_opportunities","description":"Side-by-side comparison of 2–5 opportunities by risk-adjusted score.\n\nPass list_yields opportunities[].id values as poolIds or opportunityIds.\n\nReturns ranked l"},{"name":"explain_score","description":"Agent-readable explanation of why an opportunity received its risk-adjusted score.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityId, or id ("},{"name":"get_protocol_risk","description":"Protocol-level risk card (age, audit signals, curated known issues, category, score 0–100).\n\nChain: pass list_yields opportunities[].protocolSlug as protocol or"}],"toolCount":6,"toolsHash":"46bc6192e7817286b435703bfcd2e35b217020cc90ca976e49c290942849990b","serverName":"yieldhunter","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T13:29:28.981Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":13,"error":null,"detail":{"tools":[{"name":"health","description":"Liveness and capability check for yieldhunter (yieldhunter.eth).\n\nReturns service status, schemaVersion, scoringVersion, feature flags, and the list of availabl"},{"name":"list_yields","description":"Rank stablecoin yield opportunities on Ethereum, Base, and Arbitrum using multi-factor **risk-adjusted** scoring (not raw APY). chains/chainIds: those three onl"},{"name":"score_opportunity","description":"Compute the full multi-factor risk-adjusted score for a single opportunity from list_yields.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityI"},{"name":"compare_opportunities","description":"Side-by-side comparison of 2–5 opportunities by risk-adjusted score.\n\nPass list_yields opportunities[].id values as poolIds or opportunityIds.\n\nReturns ranked l"},{"name":"explain_score","description":"Agent-readable explanation of why an opportunity received its risk-adjusted score.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityId, or id ("},{"name":"get_protocol_risk","description":"Protocol-level risk card (age, audit signals, curated known issues, category, score 0–100).\n\nChain: pass list_yields opportunities[].protocolSlug as protocol or"}],"toolCount":6,"toolsHash":"46bc6192e7817286b435703bfcd2e35b217020cc90ca976e49c290942849990b","serverName":"yieldhunter","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"health","description":"Liveness and capability check for yieldhunter (yieldhunter.eth).\n\nReturns service status, schemaVersion, scoringVersion, feature flags, and the list of availabl"},{"name":"list_yields","description":"Rank stablecoin yield opportunities on Ethereum, Base, and Arbitrum using multi-factor **risk-adjusted** scoring (not raw APY). chains/chainIds: those three onl"},{"name":"score_opportunity","description":"Compute the full multi-factor risk-adjusted score for a single opportunity from list_yields.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityI"},{"name":"compare_opportunities","description":"Side-by-side comparison of 2–5 opportunities by risk-adjusted score.\n\nPass list_yields opportunities[].id values as poolIds or opportunityIds.\n\nReturns ranked l"},{"name":"explain_score","description":"Agent-readable explanation of why an opportunity received its risk-adjusted score.\n\nChain: pass list_yields opportunities[].id as poolId, opportunityId, or id ("},{"name":"get_protocol_risk","description":"Protocol-level risk card (age, audit signals, curated known issues, category, score 0–100).\n\nChain: pass list_yields opportunities[].protocolSlug as protocol or"}],"package":null,"toolSurface":{"id":"ts_f823txate7h2","endpointId":"ep_5uvu3vxeh8xq","hash":"46bc6192e7817286b435703bfcd2e35b217020cc90ca976e49c290942849990b","toolCount":6,"serverName":"yieldhunter","serverVersion":"0.1.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-09-12T17:28:16.385Z","lastSeenAt":"2026-10-12T00:29:05.243Z","observations":108,"toolNames":["health","list_yields","score_opportunity","compare_opportunities","explain_score","get_protocol_risk"],"distinctSurfaces":2},"endpointFacts":[{"id":"ep_5uvu3vxeh8xq","url":"https://yieldhunter-agent-production.up.railway.app/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-10T10:27:37.613Z","auth":{"observedAt":"2026-10-10T10:27:37.625Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-10T10:27:37.632Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"*.up.railway.app","issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validFrom":"2026-09-27T03:01:43.000Z","validTo":"2026-12-26T03:01:42.000Z","daysToExpiry":74,"sanCount":2,"fingerprint256":"FB:37:0C:A2:68:42:DA:2B:2F:F8:E3:18:2E:0E:8C:FC:6F:B8:EA:C3:2C:DB:57:18:F4:5A:4B:39:B9:E1:40:AF"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"a2a_card","key":"https://yieldhunter-agent-production.up.railway.app/.well-known/agent-card.json","url":"https://yieldhunter-agent-production.up.railway.app/.well-known/agent-card.json","firstSeenAt":"2026-09-06T08:25:16.690Z","fetchedAt":"2026-10-04T18:19:50.987Z","normalizedAt":"2026-10-04T18:19:50.987Z"},{"source":"mcp_registry","key":"io.github.agentsherpa/yieldhunter","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.agentsherpa%2Fyieldhunter","firstSeenAt":"2026-09-06T08:20:58.463Z","fetchedAt":"2026-10-10T04:22:00.296Z","normalizedAt":"2026-10-10T04:22:00.296Z"}]},"firstSeenAt":"2026-09-06T08:20:58.463Z","updatedAt":"2026-10-12T00:31:53.592Z"}