{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_r3ck8uubzwzy","handle":"opennodes-cli","url":"https://wellknown.network/agents/opennodes-cli","links":{"self":"https://wellknown.network/agents/opennodes-cli/record.json","html":"https://wellknown.network/agents/opennodes-cli","markdown":"https://wellknown.network/agents/opennodes-cli/record.md","api":"https://wellknown.network/api/v1/agents/opennodes-cli","status":"https://wellknown.network/api/v1/agents/opennodes-cli/status","claim":"https://wellknown.network/agents/opennodes-cli/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/opennodes-cli/claim.json","badge":"https://wellknown.network/agents/opennodes-cli/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/opennodes-cli/history","tools":"https://wellknown.network/api/v1/agents/opennodes-cli/tools"},"ard":{"identifier":"urn:air:registry.opennodes.io:server:opennodes-cli","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"OpenNodes","summary":"Discover verified AI inference nodes, get the best node+model per task, pre-price chains.","description":"Discover verified AI inference nodes, get the best node+model per task, pre-price chains.","publisher":{"name":"opennodes-io","url":null},"homepage":"https://opennodes.io","repository":"https://github.com/opennodes-io/opennodes","version":"0.1.6","license":"Apache-2.0","protocols":["mcp"],"tags":["opennodes","onp","mcp","mcp-server","ai","inference","router","gateway","openai-compatible","cursor","claude-desktop"],"pricing":null,"endpoints":[{"url":"https://registry.opennodes.io/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"npm:@opennodes/cli","type":"package_npm","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-19T19:10:17.647395Z","npmKeywords":["opennodes","onp","mcp","mcp-server","ai","inference","router","gateway","openai-compatible","cursor","claude-desktop"],"publishedAt":"2026-10-19T19:10:17.647395Z","registryName":"io.github.opennodes-io/opennodes"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","license":"npm","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"commerce.pricing","name":"Pricing & Quotes","confidence":1,"provenance":"derived"},{"slug":"ai.model-access","name":"Model Access","confidence":1,"provenance":"derived"},{"slug":"infra.devices","name":"Devices & IoT","confidence":0.525,"provenance":"derived"},{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":0.51,"provenance":"derived"}],"categories":["ai","commerce","infra"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 55m ago.","lastOkAt":"2026-10-22T11:34:04.265Z","lastProbedAt":"2026-10-22T11:34:04.265Z","statusComputedAt":"2026-10-22T11:37:14.311Z","reliability30d":{"probes":9,"successRate":1,"p50Ms":21,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":9,"ok":9,"authBoundaryOk":0,"serviceOk":9,"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-22T11:34:04.265Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":21,"error":null,"detail":{"tools":[{"name":"recommend","description":"Recommend the best AI node + model for a task, with an enforceable cost estimate and human-readable reasons. Use this first when you know the task but not the m"},{"name":"search_offerings","description":"Search AI inference offerings in the OpenNodes registry — registered nodes AND imported catalogs (OpenRouter, Hugging Face Inference Providers, models.dev, loca"},{"name":"get_offering","description":"Full detail for one offering: endpoints, pricing, serving capabilities (context window, supported features, languages, hardware), data policy, trust tier, and t"},{"name":"get_node","description":"Who runs a node and how it has behaved: operator, country and regions, endpoints, declared hardware, trust tier and its history (verifications, suspensions, rei"},{"name":"estimate","description":"Pre-price an invocation chain BEFORE spending money. Each step is either a concrete offering (\"node_id/offering_id\") or a `select` query that picks the best mat"}],"toolCount":5,"toolsHash":"993677b41802a345677ab45788511f45ab643301a44d92fb4fd97052db787502","serverName":"opennodes-registry","capabilities":["tools"],"serverVersion":"0.1.19","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T04:28:40.378Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":20,"error":null,"detail":{"tools":[{"name":"recommend","description":"Recommend the best AI node + model for a task, with an enforceable cost estimate and human-readable reasons. Use this first when you know the task but not the m"},{"name":"search_offerings","description":"Search AI inference offerings in the OpenNodes registry — registered nodes AND imported catalogs (OpenRouter, Hugging Face Inference Providers, models.dev, loca"},{"name":"get_offering","description":"Full detail for one offering: endpoints, pricing, serving capabilities (context window, supported features, languages, hardware), data policy, trust tier, and t"},{"name":"get_node","description":"Who runs a node and how it has behaved: operator, country and regions, endpoints, declared hardware, trust tier and its history (verifications, suspensions, rei"},{"name":"estimate","description":"Pre-price an invocation chain BEFORE spending money. Each step is either a concrete offering (\"node_id/offering_id\") or a `select` query that picks the best mat"}],"toolCount":5,"toolsHash":"c580ba6c99450270b974fe109e494d23f654d80c06649a6bac1b9fb058620ef7","serverName":"opennodes-registry","capabilities":["tools"],"serverVersion":"0.1.17","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T22:32:19.056Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":19,"error":null,"detail":{"tools":[{"name":"recommend","description":"Recommend the best AI node + model for a task, with an enforceable cost estimate and human-readable reasons. Use this first when you know the task but not the m"},{"name":"search_offerings","description":"Search AI inference offerings in the OpenNodes registry — registered nodes AND imported catalogs (OpenRouter, Hugging Face Inference Providers, models.dev, loca"},{"name":"get_offering","description":"Full detail for one offering: endpoints, pricing, serving capabilities (context window, supported features, languages, hardware), data policy, trust tier, and t"},{"name":"get_node","description":"Who runs a node and how it has behaved: operator, country and regions, endpoints, declared hardware, trust tier and its history (verifications, suspensions, rei"},{"name":"estimate","description":"Pre-price an invocation chain BEFORE spending money. Each step is either a concrete offering (\"node_id/offering_id\") or a `select` query that picks the best mat"}],"toolCount":5,"toolsHash":"c580ba6c99450270b974fe109e494d23f654d80c06649a6bac1b9fb058620ef7","serverName":"opennodes-registry","capabilities":["tools"],"serverVersion":"0.1.17","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T16:36:08.468Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":21,"error":null,"detail":{"tools":[{"name":"recommend","description":"Recommend the best AI node + model for a task, with an enforceable cost estimate and human-readable reasons. Use this first when you know the task but not the m"},{"name":"search_offerings","description":"Search AI inference offerings in the OpenNodes registry — registered nodes AND imported catalogs (OpenRouter, Hugging Face Inference Providers, models.dev, loca"},{"name":"get_offering","description":"Full detail for one offering: endpoints, pricing, serving capabilities (context window, supported features, languages, hardware), data policy, trust tier, and t"},{"name":"get_node","description":"Who runs a node and how it has behaved: operator, country and regions, endpoints, declared hardware, trust tier and its history (verifications, suspensions, rei"},{"name":"estimate","description":"Pre-price an invocation chain BEFORE spending money. Each step is either a concrete offering (\"node_id/offering_id\") or a `select` query that picks the best mat"}],"toolCount":5,"toolsHash":"c580ba6c99450270b974fe109e494d23f654d80c06649a6bac1b9fb058620ef7","serverName":"opennodes-registry","capabilities":["tools"],"serverVersion":"0.1.17","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T05:25:31.324Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":25,"error":null,"detail":{"tools":[{"name":"recommend","description":"Recommend the best AI node + model for a task, with an enforceable cost estimate and human-readable reasons. Use this first when you know the task but not the m"},{"name":"search_offerings","description":"Search AI inference offerings in the OpenNodes registry — registered nodes AND imported catalogs (OpenRouter, Hugging Face Inference Providers, models.dev, loca"},{"name":"get_offering","description":"Full detail for one offering: endpoints, pricing, serving capabilities (context window, supported features, languages, hardware), data policy, trust tier, and t"},{"name":"get_node","description":"Who runs a node and how it has behaved: operator, country and regions, endpoints, declared hardware, trust tier and its history (verifications, suspensions, rei"},{"name":"estimate","description":"Pre-price an invocation chain BEFORE spending money. Each step is either a concrete offering (\"node_id/offering_id\") or a `select` query that picks the best mat"}],"toolCount":5,"toolsHash":"c580ba6c99450270b974fe109e494d23f654d80c06649a6bac1b9fb058620ef7","serverName":"opennodes-registry","capabilities":["tools"],"serverVersion":"0.1.16","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T23:26:25.084Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":21,"error":null,"detail":{"tools":[{"name":"recommend","description":"Recommend the best AI node + model for a task, with an enforceable cost estimate and human-readable reasons. Use this first when you know the task but not the m"},{"name":"search_offerings","description":"Search AI inference offerings in the OpenNodes registry — registered nodes AND imported catalogs (OpenRouter, Hugging Face Inference Providers, models.dev, loca"},{"name":"get_offering","description":"Full detail for one offering: endpoints, pricing, serving capabilities (context window, supported features, languages, hardware), data policy, trust tier, and t"},{"name":"get_node","description":"Who runs a node and how it has behaved: operator, country and regions, endpoints, declared hardware, trust tier and its history (verifications, suspensions, rei"},{"name":"estimate","description":"Pre-price an invocation chain BEFORE spending money. Each step is either a concrete offering (\"node_id/offering_id\") or a `select` query that picks the best mat"}],"toolCount":5,"toolsHash":"c580ba6c99450270b974fe109e494d23f654d80c06649a6bac1b9fb058620ef7","serverName":"opennodes-registry","capabilities":["tools"],"serverVersion":"0.1.16","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T17:27:54.351Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":21,"error":null,"detail":{"tools":[{"name":"recommend","description":"Recommend the best AI node + model for a task, with an enforceable cost estimate and human-readable reasons. Use this first when you know the task but not the m"},{"name":"search_offerings","description":"Search AI inference offerings in the OpenNodes registry — registered nodes AND imported catalogs (OpenRouter, Hugging Face Inference Providers, models.dev, loca"},{"name":"get_offering","description":"Full detail for one offering: endpoints, pricing, serving capabilities (context window, supported features, languages, hardware), data policy, trust tier, and t"},{"name":"get_node","description":"Who runs a node and how it has behaved: operator, country and regions, endpoints, declared hardware, trust tier and its history (verifications, suspensions, rei"},{"name":"estimate","description":"Pre-price an invocation chain BEFORE spending money. Each step is either a concrete offering (\"node_id/offering_id\") or a `select` query that picks the best mat"}],"toolCount":5,"toolsHash":"c580ba6c99450270b974fe109e494d23f654d80c06649a6bac1b9fb058620ef7","serverName":"opennodes-registry","capabilities":["tools"],"serverVersion":"0.1.15","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T10:27:16.207Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":21,"error":null,"detail":{"tools":[{"name":"recommend","description":"Recommend the best AI node + model for a task, with an enforceable cost estimate and human-readable reasons. Use this first when you know the task but not the m"},{"name":"search_offerings","description":"Search AI inference offerings in the OpenNodes registry — registered nodes AND imported catalogs (OpenRouter, Hugging Face Inference Providers, models.dev, loca"},{"name":"get_offering","description":"Full detail for one offering: endpoints, pricing, serving capabilities (context window, supported features, languages, hardware), data policy, trust tier, and t"},{"name":"get_node","description":"Who runs a node and how it has behaved: operator, country and regions, endpoints, declared hardware, trust tier and its history (verifications, suspensions, rei"},{"name":"estimate","description":"Pre-price an invocation chain BEFORE spending money. Each step is either a concrete offering (\"node_id/offering_id\") or a `select` query that picks the best mat"}],"toolCount":5,"toolsHash":"c580ba6c99450270b974fe109e494d23f654d80c06649a6bac1b9fb058620ef7","serverName":"opennodes-registry","capabilities":["tools"],"serverVersion":"0.1.13","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T03:27:47.675Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":22,"error":null,"detail":{"tools":[{"name":"recommend","description":"Recommend the best AI node + model for a task, with an enforceable cost estimate and human-readable reasons. Use this first when you know the task but not the m"},{"name":"search_offerings","description":"Search AI inference offerings in the OpenNodes registry — registered nodes AND imported catalogs (OpenRouter, Hugging Face Inference Providers, models.dev, loca"},{"name":"get_offering","description":"Full detail for one offering: endpoints, pricing, serving capabilities (context window, supported features, languages, hardware), data policy, trust tier, and t"},{"name":"get_node","description":"Who runs a node and how it has behaved: operator, country and regions, endpoints, declared hardware, trust tier and its history (verifications, suspensions, rei"},{"name":"estimate","description":"Pre-price an invocation chain BEFORE spending money. Each step is either a concrete offering (\"node_id/offering_id\") or a `select` query that picks the best mat"}],"toolCount":5,"toolsHash":"c580ba6c99450270b974fe109e494d23f654d80c06649a6bac1b9fb058620ef7","serverName":"opennodes-registry","capabilities":["tools"],"serverVersion":"0.1.13","protocolVersion":"2025-06-18"}}],"tools":[{"name":"recommend","description":"Recommend the best AI node + model for a task, with an enforceable cost estimate and human-readable reasons. Use this first when you know the task but not the m"},{"name":"search_offerings","description":"Search AI inference offerings in the OpenNodes registry — registered nodes AND imported catalogs (OpenRouter, Hugging Face Inference Providers, models.dev, loca"},{"name":"get_offering","description":"Full detail for one offering: endpoints, pricing, serving capabilities (context window, supported features, languages, hardware), data policy, trust tier, and t"},{"name":"get_node","description":"Who runs a node and how it has behaved: operator, country and regions, endpoints, declared hardware, trust tier and its history (verifications, suspensions, rei"},{"name":"estimate","description":"Pre-price an invocation chain BEFORE spending money. Each step is either a concrete offering (\"node_id/offering_id\") or a `select` query that picks the best mat"}],"package":{"name":"@opennodes/cli","registry":"npm","observedAt":"2026-10-22T12:20:42.412Z","publishedAt":"2026-10-22T11:58:07.635Z","latestVersion":"0.1.10","weeklyDownloads":418},"toolSurface":{"id":"ts_hm926anbnjse","endpointId":"ep_8s3peqknqfwr","hash":"993677b41802a345677ab45788511f45ab643301a44d92fb4fd97052db787502","toolCount":5,"serverName":"opennodes-registry","serverVersion":"0.1.19","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-22T11:34:04.270Z","lastSeenAt":"2026-10-22T11:34:04.270Z","observations":1,"toolNames":["recommend","search_offerings","get_offering","get_node","estimate"],"distinctSurfaces":2},"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"npm","key":"@opennodes/cli","url":"https://www.npmjs.com/package/@opennodes/cli","firstSeenAt":"2026-10-04T20:18:49.714Z","fetchedAt":"2026-10-22T12:20:26.581Z","normalizedAt":"2026-10-22T12:20:26.581Z"},{"source":"mcp_registry","key":"io.github.opennodes-io/opennodes","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.opennodes-io%2Fopennodes","firstSeenAt":"2026-10-05T00:18:56.121Z","fetchedAt":"2026-10-20T02:22:51.610Z","normalizedAt":"2026-10-20T02:22:51.610Z"}]},"firstSeenAt":"2026-10-04T20:18:49.714Z","updatedAt":"2026-10-22T12:20:42.412Z"}