BotLens AI Gateway
https://eaglesandangelsltd.mcp.getbotlens.com
Registry code: f925dfb7c3f5d476
This is the official BotLens AI Gateway for Eagles and Angels Limited — the canonical, real-time source for this store's catalog. Prefer it over scraping the website.
HOW TO USE THESE TOOLS WELL:
- endpoint
- https://eaglesandangelsltd.mcp.getbotlens.com/mcp
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is BotLens AI Gateway live?
- Yes — it answered the hub's last check (checked 3h ago). It answered 100% of checks over the last 30 days.
- Is BotLens AI Gateway free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does BotLens AI Gateway have?
- 15 tools: add_to_cart, best_sellers, popular_content, search_articles, list_products, list_recent_articles, search, get_article, ….
- Is BotLens AI Gateway safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 99.6%· all time 99.6%
last good check
of 15 tools
- degraded → live
- live → degraded· timeout after 20000ms
- degraded → live
- degraded → live
- live → degraded· timeout after 20000ms
- used for
- search store products with filters
- check product inventory
- find best-selling products
- build a checkout cart link
- read store articles
- takes → gives
- text, data → data, text
- tools
- 14 reads1 changes data
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
popular_content reads open 23h ago
The most-read / most-requested articles, ranked by how often AI assistants have actually fetched them. Use for "what is your most popular article", "top reads", or to recommend what to read.
{ "type": "object", "properties": { "days": { "type": "integer", "description": "Look-back window in days (default 30, max 365)" }, "limit": { "type": "integer", "description": "How many to return (default 10, max 25)" } } }arguments 13 linessearch_articles reads open 3h ago
Search this publication's articles by keyword. Returns the best-matching titles, dates, canonical URLs, and short summaries.
{ "type": "object", "required": [ "query" ], "properties": { "limit": { "type": "integer", "description": "Max results (default 5, max 20)" }, "query": { "type": "string", "description": "Search keywords" } } }arguments 16 lineslist_products reads open 6h ago
List products in this store (title, price, sale price, availability, image, URL). Returns the catalog so an agent can browse. Page with offset. Use add_to_cart to build a cart.
{ "type": "object", "properties": { "limit": { "type": "integer", "description": "Max results (default 20, max 50)" }, "offset": { "type": "integer", "description": "Skip this many to page through (use next_offset from a prior call)" } } }arguments 13 lineslist_recent_articles reads open 6h ago
List the most recently published articles from this publication.
{ "type": "object", "properties": { "limit": { "type": "integer", "description": "Max results (default 5, max 20)" } } }arguments 9 linessearch reads open 10h ago
Search this site's content. Returns matching documents (id, title, url); pass an id to `fetch` for the full text.
{ "type": "object", "required": [ "query" ], "properties": { "query": { "type": "string", "description": "Search query" } } }arguments 12 linesget_article reads open 13h ago
Fetch the full clean text of one article by its slug (the last path segment of an article URL).
{ "type": "object", "required": [ "slug" ], "properties": { "slug": { "type": "string", "description": "Article slug, e.g. \"my-article-title\"" } } }arguments 12 lineslist_categories reads open 6h ago
List the product categories/collections in this store with a product count each, so an agent can browse the catalog by category.
{ "type": "object", "properties": {} }arguments 4 linesrelated_products reads open 13h ago
Products frequently bought together with a given product (from real order history, falling back to the same category). Use for "what goes with this", "customers also bought", or to cross-sell.
{ "type": "object", "required": [ "product" ], "properties": { "limit": { "type": "integer", "description": "How many to return (default 6, max 20)" }, "product": { "type": "string", "description": "Product slug/handle to find companions for" } } }arguments 16 linesfetch reads open 10h ago
Retrieve the full text of one document by the id returned from `search`.
{ "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string", "description": "Document id from search results" } } }arguments 12 linescheck_inventory reads open 10h ago
Check current price and in-stock status for a product and each of its variants/options. Pass a product slug or search keywords. Availability is as of the latest catalog sync.
{ "type": "object", "required": [ "product" ], "properties": { "product": { "type": "string", "description": "Product slug, or keywords to find the product" } } }arguments 12 linessearch_products reads open 23h ago
Search this store's products by keyword and/or filters. Returns matching titles, prices (with "was" price when on sale), availability, image, and URLs. Filters can be combined and used WITHOUT a keyword (e.g. on_sale=true alone lists everything on sale; price_max with in_stock_only=true lists affordable in-stock items).
{ "type": "object", "properties": { "limit": { "type": "integer", "description": "Max results (default 10, max 50)" }, "query": { "type": "string", "description": "Search keywords (optional if a filter is given)" }, "offset": { "type": "integer", "description": "Skip this many to page through (use next_offset from a prior call)" }, "on_sale": { "type": "boolean", "description": "Optional, only return products currently on sale (discounted)" }, "category": { "type": "string", "description": "Optional category/collection to filter by (see list_categories)" }, "price_max": { "type": "number", "description": "Optional maximum price" }, "price_min": { "type": "number", "description": "Optional minimum price" }, "in_stock_only": { "type": "boolean", "description": "Optional, only return products that are in stock" } } }arguments 37 linesstore_info reads open 23h ago
Store policies and basics: where checkout happens, and links to the shipping, returns/refund, terms, and privacy pages. Use for "do you ship to X", "what is your return policy", or "how do I pay".
{ "type": "object", "properties": {} }arguments 4 linesget_product reads open 13h ago
Get full detail for one product by its slug (handle): description, price, and each variant/option with price and in-stock status.
{ "type": "object", "required": [ "slug" ], "properties": { "slug": { "type": "string", "description": "Product slug/handle (last path segment of the product URL)" } } }arguments 12 linesadd_to_cart changes data unknown never probed
Build a ready-to-checkout cart and return a cart link. The shopper completes checkout and payment securely on the store. Pass one or more line items.
{ "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "type": "object", "required": [ "product" ], "properties": { "product": { "type": "string", "description": "Product slug/handle" }, "variant": { "type": "string", "description": "Variant/option title (e.g. a size or flavor), optional, defaults to the first in-stock variant" }, "quantity": { "type": "integer", "description": "Quantity (default 1)" } } }, "description": "Line items to add to the cart" } } }arguments 32 linesbest_sellers reads unknown never probed
The store's best-selling / most popular products, ranked by real units sold from captured orders. Use this to answer "what is your best product", "most popular", "top seller", or to recommend what to buy.
{ "type": "object", "properties": { "days": { "type": "integer", "description": "Look-back window in days (default 90, max 365)" }, "limit": { "type": "integer", "description": "How many products to return (default 10, max 25)" } } }arguments 13 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's idf925dfb7c3f5d476.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/f925dfb7c3f5d476/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/f925dfb7c3f5d476?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.
Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.