{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_ygp26bb2ypmu","handle":"sample-shop-mcp-server","url":"https://wellknown.network/agents/sample-shop-mcp-server","links":{"self":"https://wellknown.network/agents/sample-shop-mcp-server/record.json","html":"https://wellknown.network/agents/sample-shop-mcp-server","markdown":"https://wellknown.network/agents/sample-shop-mcp-server/record.md","api":"https://wellknown.network/api/v1/agents/sample-shop-mcp-server","status":"https://wellknown.network/api/v1/agents/sample-shop-mcp-server/status","claim":"https://wellknown.network/agents/sample-shop-mcp-server/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/sample-shop-mcp-server/claim.json","badge":"https://wellknown.network/agents/sample-shop-mcp-server/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/sample-shop-mcp-server/history","tools":"https://wellknown.network/api/v1/agents/sample-shop-mcp-server/tools"},"ard":{"identifier":"urn:air:demo.apitoagents.com:server:sample-shop-mcp-server","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Sample Shop MCP server","summary":"Sample shop MCP server: paginated search, idempotent orders, guarded cancellation. Four languages.","description":"Sample shop MCP server: paginated search, idempotent orders, guarded cancellation. Four languages.","publisher":{"name":"apitoagents","url":null},"homepage":"https://apitoagents.com/docs","repository":"https://github.com/apitoagents/mcp-examples","version":"1.0.1","license":"MIT","protocols":["mcp"],"tags":["mcp","model-context-protocol","mcp-server","streamable-http","ecommerce","example"],"pricing":null,"endpoints":[{"url":"https://demo.apitoagents.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"npm:@apitoagents/sample-shop-mcp","type":"package_npm","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-07T21:16:00.880037Z","npmKeywords":["mcp","model-context-protocol","mcp-server","streamable-http","ecommerce","example"],"publishedAt":"2026-10-07T21:16:00.880037Z","registryName":"io.github.apitoagents/sample-shop-mcp"},"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.ecommerce","name":"E-commerce Operations","confidence":1,"provenance":"declared"}],"categories":["commerce"],"language":"fr"},"observed":{"status":"live","statusReason":"Responded 7h ago.","lastOkAt":"2026-10-22T06:27:00.839Z","lastProbedAt":"2026-10-22T06:27:00.839Z","statusComputedAt":"2026-10-22T06:29:47.686Z","reliability30d":{"probes":44,"successRate":1,"p50Ms":32,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":44,"ok":44,"authBoundaryOk":0,"serviceOk":44,"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-22T06:27:00.839Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":27,"error":null,"detail":{"tools":[{"name":"search_products","description":"Search the shop catalogue by phrase and optional category. Returns one page of up to `limit` products and a `nextCursor`; when nextCursor is not null, more resu"},{"name":"get_product","description":"Return the full details of one product by its id (for example p-1001). Use search_products first if you only know a name."},{"name":"create_order","description":"Place an order for one product. Generate one random idempotencyKey per user request and reuse the same key if you retry after an error or timeout; the shop retu"},{"name":"cancel_order","description":"Cancel an order that has not shipped. This cannot be undone. Call it first with confirm=false to get the order details, show them to the user, and only after th"}],"toolCount":4,"toolsHash":"c1446cfe9daf3578270c9ce3138b3068a1b28cce07fb142cf0dc730e7a10e896","serverName":"sample-shop","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T23:27:28.475Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":95,"error":null,"detail":{"tools":[{"name":"search_products","description":"Search the shop catalogue by phrase and optional category. Returns one page of up to `limit` products and a `nextCursor`; when nextCursor is not null, more resu"},{"name":"get_product","description":"Return the full details of one product by its id (for example p-1001). Use search_products first if you only know a name."},{"name":"create_order","description":"Place an order for one product. Generate one random idempotencyKey per user request and reuse the same key if you retry after an error or timeout; the shop retu"},{"name":"cancel_order","description":"Cancel an order that has not shipped. This cannot be undone. Call it first with confirm=false to get the order details, show them to the user, and only after th"}],"toolCount":4,"toolsHash":"c1446cfe9daf3578270c9ce3138b3068a1b28cce07fb142cf0dc730e7a10e896","serverName":"sample-shop","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T16:34:44.258Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":23,"error":null,"detail":{"tools":[{"name":"search_products","description":"Search the shop catalogue by phrase and optional category. Returns one page of up to `limit` products and a `nextCursor`; when nextCursor is not null, more resu"},{"name":"get_product","description":"Return the full details of one product by its id (for example p-1001). Use search_products first if you only know a name."},{"name":"create_order","description":"Place an order for one product. Generate one random idempotencyKey per user request and reuse the same key if you retry after an error or timeout; the shop retu"},{"name":"cancel_order","description":"Cancel an order that has not shipped. This cannot be undone. Call it first with confirm=false to get the order details, show them to the user, and only after th"}],"toolCount":4,"toolsHash":"c1446cfe9daf3578270c9ce3138b3068a1b28cce07fb142cf0dc730e7a10e896","serverName":"sample-shop","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T04:26:42.737Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":27,"error":null,"detail":{"tools":[{"name":"search_products","description":"Search the shop catalogue by phrase and optional category. Returns one page of up to `limit` products and a `nextCursor`; when nextCursor is not null, more resu"},{"name":"get_product","description":"Return the full details of one product by its id (for example p-1001). Use search_products first if you only know a name."},{"name":"create_order","description":"Place an order for one product. Generate one random idempotencyKey per user request and reuse the same key if you retry after an error or timeout; the shop retu"},{"name":"cancel_order","description":"Cancel an order that has not shipped. This cannot be undone. Call it first with confirm=false to get the order details, show them to the user, and only after th"}],"toolCount":4,"toolsHash":"c1446cfe9daf3578270c9ce3138b3068a1b28cce07fb142cf0dc730e7a10e896","serverName":"sample-shop","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T21:27:44.553Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":28,"error":null,"detail":{"tools":[{"name":"search_products","description":"Search the shop catalogue by phrase and optional category. Returns one page of up to `limit` products and a `nextCursor`; when nextCursor is not null, more resu"},{"name":"get_product","description":"Return the full details of one product by its id (for example p-1001). Use search_products first if you only know a name."},{"name":"create_order","description":"Place an order for one product. Generate one random idempotencyKey per user request and reuse the same key if you retry after an error or timeout; the shop retu"},{"name":"cancel_order","description":"Cancel an order that has not shipped. This cannot be undone. Call it first with confirm=false to get the order details, show them to the user, and only after th"}],"toolCount":4,"toolsHash":"c1446cfe9daf3578270c9ce3138b3068a1b28cce07fb142cf0dc730e7a10e896","serverName":"sample-shop","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T14:24:02.530Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":30,"error":null,"detail":{"tools":[{"name":"search_products","description":"Search the shop catalogue by phrase and optional category. Returns one page of up to `limit` products and a `nextCursor`; when nextCursor is not null, more resu"},{"name":"get_product","description":"Return the full details of one product by its id (for example p-1001). Use search_products first if you only know a name."},{"name":"create_order","description":"Place an order for one product. Generate one random idempotencyKey per user request and reuse the same key if you retry after an error or timeout; the shop retu"},{"name":"cancel_order","description":"Cancel an order that has not shipped. This cannot be undone. Call it first with confirm=false to get the order details, show them to the user, and only after th"}],"toolCount":4,"toolsHash":"c1446cfe9daf3578270c9ce3138b3068a1b28cce07fb142cf0dc730e7a10e896","serverName":"sample-shop","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T07:26:21.913Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":83,"error":null,"detail":{"tools":[{"name":"search_products","description":"Search the shop catalogue by phrase and optional category. Returns one page of up to `limit` products and a `nextCursor`; when nextCursor is not null, more resu"},{"name":"get_product","description":"Return the full details of one product by its id (for example p-1001). Use search_products first if you only know a name."},{"name":"create_order","description":"Place an order for one product. Generate one random idempotencyKey per user request and reuse the same key if you retry after an error or timeout; the shop retu"},{"name":"cancel_order","description":"Cancel an order that has not shipped. This cannot be undone. Call it first with confirm=false to get the order details, show them to the user, and only after th"}],"toolCount":4,"toolsHash":"c1446cfe9daf3578270c9ce3138b3068a1b28cce07fb142cf0dc730e7a10e896","serverName":"sample-shop","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T00:30:55.948Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":27,"error":null,"detail":{"tools":[{"name":"search_products","description":"Search the shop catalogue by phrase and optional category. Returns one page of up to `limit` products and a `nextCursor`; when nextCursor is not null, more resu"},{"name":"get_product","description":"Return the full details of one product by its id (for example p-1001). Use search_products first if you only know a name."},{"name":"create_order","description":"Place an order for one product. Generate one random idempotencyKey per user request and reuse the same key if you retry after an error or timeout; the shop retu"},{"name":"cancel_order","description":"Cancel an order that has not shipped. This cannot be undone. Call it first with confirm=false to get the order details, show them to the user, and only after th"}],"toolCount":4,"toolsHash":"c1446cfe9daf3578270c9ce3138b3068a1b28cce07fb142cf0dc730e7a10e896","serverName":"sample-shop","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-19T17:46:01.770Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":30,"error":null,"detail":{"tools":[{"name":"search_products","description":"Search the shop catalogue by phrase and optional category. Returns one page of up to `limit` products and a `nextCursor`; when nextCursor is not null, more resu"},{"name":"get_product","description":"Return the full details of one product by its id (for example p-1001). Use search_products first if you only know a name."},{"name":"create_order","description":"Place an order for one product. Generate one random idempotencyKey per user request and reuse the same key if you retry after an error or timeout; the shop retu"},{"name":"cancel_order","description":"Cancel an order that has not shipped. This cannot be undone. Call it first with confirm=false to get the order details, show them to the user, and only after th"}],"toolCount":4,"toolsHash":"c1446cfe9daf3578270c9ce3138b3068a1b28cce07fb142cf0dc730e7a10e896","serverName":"sample-shop","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-19T10:45:56.360Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":34,"error":null,"detail":{"tools":[{"name":"search_products","description":"Search the shop catalogue by phrase and optional category. Returns one page of up to `limit` products and a `nextCursor`; when nextCursor is not null, more resu"},{"name":"get_product","description":"Return the full details of one product by its id (for example p-1001). Use search_products first if you only know a name."},{"name":"create_order","description":"Place an order for one product. Generate one random idempotencyKey per user request and reuse the same key if you retry after an error or timeout; the shop retu"},{"name":"cancel_order","description":"Cancel an order that has not shipped. This cannot be undone. Call it first with confirm=false to get the order details, show them to the user, and only after th"}],"toolCount":4,"toolsHash":"c1446cfe9daf3578270c9ce3138b3068a1b28cce07fb142cf0dc730e7a10e896","serverName":"sample-shop","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"search_products","description":"Search the shop catalogue by phrase and optional category. Returns one page of up to `limit` products and a `nextCursor`; when nextCursor is not null, more resu"},{"name":"get_product","description":"Return the full details of one product by its id (for example p-1001). Use search_products first if you only know a name."},{"name":"create_order","description":"Place an order for one product. Generate one random idempotencyKey per user request and reuse the same key if you retry after an error or timeout; the shop retu"},{"name":"cancel_order","description":"Cancel an order that has not shipped. This cannot be undone. Call it first with confirm=false to get the order details, show them to the user, and only after th"}],"package":{"name":"@apitoagents/sample-shop-mcp","registry":"npm","observedAt":"2026-10-22T06:32:17.451Z","publishedAt":"2026-10-07T21:03:47.453Z","latestVersion":"1.0.1","weeklyDownloads":437},"toolSurface":{"id":"ts_extd2txnubmv","endpointId":"ep_69u5wjce3gkd","hash":"c1446cfe9daf3578270c9ce3138b3068a1b28cce07fb142cf0dc730e7a10e896","toolCount":4,"serverName":"sample-shop","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-10T05:30:01.854Z","lastSeenAt":"2026-10-22T06:27:00.841Z","observations":44,"toolNames":["search_products","get_product","create_order","cancel_order"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_69u5wjce3gkd","url":"https://demo.apitoagents.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-20T07:26:21.926Z","auth":{"observedAt":"2026-10-20T07:26:21.948Z","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-20T07:26:21.963Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"demo.apitoagents.com","issuer":{"commonName":"WR3","organization":"Google Trust Services"},"validFrom":"2026-10-07T18:38:56.000Z","validTo":"2027-01-05T19:27:46.000Z","daysToExpiry":75,"sanCount":1,"fingerprint256":"BE:40:C3:1C:51:EF:AD:92:BC:96:6D:51:14:1C:19:48:72:2B:86:C3:13:9C:62:D0:57:22:03:85:64:D2:98:57"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"npm","key":"@apitoagents/sample-shop-mcp","url":"https://www.npmjs.com/package/@apitoagents/sample-shop-mcp","firstSeenAt":"2026-10-15T02:20:43.600Z","fetchedAt":"2026-10-21T11:21:01.792Z","normalizedAt":"2026-10-21T11:21:01.792Z"},{"source":"mcp_registry","key":"io.github.apitoagents/sample-shop-mcp","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.apitoagents%2Fsample-shop-mcp","firstSeenAt":"2026-10-10T05:21:28.782Z","fetchedAt":"2026-10-19T06:18:19.065Z","normalizedAt":"2026-10-19T06:18:19.065Z"}]},"firstSeenAt":"2026-10-10T05:21:28.782Z","updatedAt":"2026-10-22T06:32:17.451Z"}