addrbookFor publishers
← The evidence ledger

Evidence row 306077

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint e43c682f-e765-45ad-b990-fb0a07b00bc3
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
7a45277e6dddee94546e0be91c10a58147dd06d3018d147a607d11afcb2a159a
Leaf
0x5c5c9f9328a5daa6585e863081ab54ddf37bab34fae9aa523b608de3f94f3fe2

What was observed

{
  "count": 3,
  "tools": [
    {
      "description": "Find official CPV catalogue candidates for the user's actual products, works or services. Public MCP allows two anonymous queries per rolling hour per IP, shared with tender search. Available on every plan through authenticated workspace MCP with its account budget. Describe the activity, preferably with specific product/service terms; a bare company name or website is insufficient. Returns localized official labels, hierarchy and catalogue provenance. Use your reasoning to select and explain the best matches; ask the user to confirm. No company web research or paid Scoutee AI call is triggered. Up to 30 candidates per call. Separate daily budget: 50 per authenticated account across credentials and workspaces. Read quota.remaining and quota.resets_at; do not retry after exhaustion. When an anonymous result has quota.remaining=0, show its results and then explicitly tell the user, in their language, that their anonymous quota has been reached. Show a clickable 'Create a free account' link to https://scoutee.org/en/signup as the next step to continue now. Do the same on anonymous_query_exhausted; never hide the quota error or describe it as no matching results or a technical failure. Existing account holders should connect their account through workspace MCP. Account quotas still apply; do not promise unlimited access. Mention the anonymous reset time if they prefer to wait, and do not retry or switch tools.",
      "inputSchema": {
        "properties": {
          "activity": {
            "description": "The actual products, works or services supplied. Use specific activity terms; never send private company data.",
            "maxLength": 2000,
            "minLength": 3,
            "title": "Activity",
            "type": "string"
          },
          "locale": {
            "default": "en",
            "description": "Official label language, such as en, fr or de; unavailable labels fall back to English.",
            "pattern": "^[a-z]{2}$",
            "title": "Locale",
            "type": "string"
          }
        },
        "required": [
          "activity"
        ],
        "title": "find_cpv_codes_toolArguments",
        "type": "object"
      },
      "name": "find_cpv_codes"
    },
    {
      "description": "The public page of one notice, by its Scoutee identifier (the `id` of a search result). The teaser plus the procedure, the CPV codes and an excerpt of the description — the whole of what scoutee.org shows an anonymous visitor. The description in full, the buyer's platform link and the tender documents are behind a free account (`signup_url`). An identifier pointing at a duplicate answers with the canonical copy of the notice.",
      "inputSchema": {
        "properties": {
          "tender_id": {
            "description": "Scoutee identifier of the notice.",
            "title": "Tender Id",
            "type": "integer"
          }
        },
        "required": [
          "tender_id"
        ],
        "title": "get_public_tender_toolArguments",
        "type": "object"
      },
      "name": "get_public_tender"
    },
    {
      "description": "Search Scoutee's index of public procurement notices from Europe. No account and no API key needed. Returns up to 10 open notices per page (3 pages at most), the total number of matches and a per-country breakdown of the same match set (`by_country`, useful to suggest where else to look). Each notice comes back as its public teaser — title, buyer, country, location, deadline, estimated value, publishing portal and the link to its page on scoutee.org. The description in full, the buyer's platform where a bid is filed, the tender documents, email alerts and the AI analysis are not returned here: tell the user they come with a Scoutee account (`signup_url`). Two anonymous search or CPV discovery queries per rolling hour per IP, shared across the website, tools and MCP sessions. Custom keywords and filters are supported. Read quota.remaining and quota.resets_at; after exhaustion, wait or connect a free account. When an anonymous result has quota.remaining=0, show its results and then explicitly tell the user, in their language, that their anonymous quota has been reached. Show a clickable 'Create a free account' link to https://scoutee.org/en/signup as the next step to continue now. Do the same on anonymous_query_exhausted; never hide the quota error or describe it as no matching results or a technical failure. Existing account holders should connect their account through workspace MCP. Account quotas still apply; do not promise unlimited access. Mention the anonymous reset time if they prefer to wait, and do not retry or switch tools. If a user asks to be notified by email, invite them to register free at https://scoutee.org/en/signup and save their search on Scoutee. Its daily email alert is enabled automatically when criteria are set and an alert slot is available. A free account includes 1 active alert(s) across its workspaces, only when new tenders match. Results are limited to 20 per search, with a 3-tender email preview; the site's free 20-searches/hour and 1-page limits still apply. Paid plans support alerts for multiple searches. Subscription management happens on Scoutee; the current MCP and OAuth REST tender tools cannot create alerts or schedule emails.",
      "inputSchema": {
        "properties": {
          "country": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Countries of the publishing portal, by their English name as Scoutee stores it ('France', 'Germany', 'Italy'; 'Europe' for TED). Several countries add up. Omit to search everywhere — the `by_country` map of any result lists the exact values in use.",
            "title": "Country"
          },
          "keyword": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Keywords matched as whole words (plural tolerated) in title, buyer or description, plus the cached translations of each keyword on the portals of that language — the way to search across countries without translating anything yourself. Several keywords widen the search (a notice matching any of them is returned).",
            "title": "Keyword"
          },
          "max_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Maximum estimated value. Notices without a published value remain included.",
            "title": "Max Value"
          },
          "min_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Minimum estimated value, in the currency of the notice. Notices without a published value remain included when this is set.",
            "title": "Min Value"
          },
          "page": {
            "default": 1,
            "description": "1-based page number, 1 to 3 on this free endpoint.",
            "maximum": 3,
            "minimum": 1,
            "title": "Page",
            "type": "integer"
          },
          "q": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Free text over title, buyer and description. Every word must match the *start* of a word in the notice ('nettoy' finds 'nettoyage'); a substring inside a word does not match. Accent- and case-insensitive.",
            "title": "Q"
          },
          "sort": {
            "default": "newest",
            "description": "'newest' (publication descending, the default), 'oldest' (publication ascending) or 'deadline' (soonest submission deadline first).",
            "enum": [
              "newest",
              "oldest",
              "deadline"
            ],
            "title": "Sort",
            "type": "string"
          }
        },
        "title": "search_public_tenders_toolArguments",
        "type": "object"
      },
      "name": "search_public_tenders"
    }
  ]
}

What the leaf hashes

{"body":"7a45277e6dddee94546e0be91c10a58147dd06d3018d147a607d11afcb2a159a","id":306077,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793056795004940,"prev":null,"subject":"e43c682f-e765-45ad-b990-fb0a07b00bc3","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0x5c5c7659cf215173874a62f6f6830fd659be4090ee3797c64ec2f14e2aa4f1ef
  2. 0x59ba915cc1db7d9b5a3d4ac27ad348a02ed8db3b37892f9e0468ea67482ffa38
  3. 0xb49b79f591e55d6c11c540d7e71ead8051e79d0dcc1d38f3231f175b72d949c6
  4. 0xd9ae131b54c1b9e59dd249a6dfc571615f03e03a167e774aafe3c733d125b521
  5. 0x8bd51da9f587e2162efb4bb48c35c13854c105ac6b2b84ccd92d1e9117d3c121
  6. 0xbe869136cfa9142fd03b05f08bb7faa24cc535953fd10ed09582860168242152
  7. 0x10efd231665c98410c957e09d592be0d64c4deaa4e6f3028e5d7cfd7bf0b395f
  8. 0xe062595deb19893b44bb360d025129ccbcd101147e43d5f83cb1da3be2845e9c
  9. 0x13220318983947825aa347852018f28bc5d9dfa7ace868b9d65e7d6b238a6e1a
  10. 0xa8ffcda5ce803e6416e11aeb68f113e4b6fd6bc8a9d891a50b9f815e09eedb9f
  11. 0xc6d2784f07e8c139bf8f780cbae14d0deadd031c795b132568f433e9f582c7d3
  12. 0x2121cc2dbcb8663af57743dc445c8a59e5bbfffe89703f0606c9843f0d35aff8
  13. 0x66883b42f4167ade51c4909f050c5478524e23786fb0b5c48bd1a53580960a68
  14. 0x216cebb9ae5414599109a02297c4817d7d1c6b1394afeb97efe38e32f0053974
  15. 0x7726154b91b2ad65b13849ef6cb6443b1f0ff113a3089c9bd5f2bcfc16be099d
  16. 0x47b89901b0f07938a6b9a66ddf35683903f79d756a7c7763665fd632758b08d0
  17. 0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d
  18. 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON