← The evidence ledger
Evidence row 1295104
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 7bc5ee27-a0a9-48f7-848c-ddfbe577ae65
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- b022e5f79e2d6f3c82f04f5b23484bedcbab6c650172884aeca606d44d0388c7
- Leaf
- 0xcd73cce3dc23ff8a283ff0ae88757d45c7a77e02380a08d93f6de6118ce7e90f
What was observed
{
"count": 8,
"tools": [
{
"description": "Awarded service and supply contracts whose term ends within the next months according to the notice (end date or duration, without renewals), with winner, renewals and offers. A new tender is likely but not certain. Needs at least gewerk, land or buyer.",
"inputSchema": {
"properties": {
"buyer": {
"description": "Buyer slug or vergabeweiser.de/vergabestelle URL",
"type": "string"
},
"gewerk": {
"description": "Trade slug from list_categories",
"type": "string"
},
"land": {
"description": "Bundesland slug",
"type": "string"
},
"months": {
"description": "Months from today, default 12",
"maximum": 36,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "expiring_contracts"
},
{
"description": "Find contracting authorities (Vergabestellen) and companies by name or its beginning, e.g. \"Stadt Köln\", \"Fraunhofer\", \"WISAG\". Returns name, city, slug and page URL for get_buyer and get_company_awards, the most active first. Only organisations with a page in the index; sole traders are never listed.",
"inputSchema": {
"properties": {
"name": {
"description": "Name or its beginning, at least three characters",
"type": "string"
},
"type": {
"description": "Only Vergabestellen (buyer) or only companies; both by default",
"enum": [
"buyer",
"company"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"name": "find_organisations"
},
{
"description": "A contracting authority (Vergabestelle): contact data from one of its notices (no persons; may belong to a law firm or central purchasing body that runs procedures for it, for a procedure use the contact in its notice), platforms, open tenders, recent awards, offers per award, frequent winners, trades and contracts that end soon.",
"inputSchema": {
"properties": {
"slug": {
"description": "Slug from vergabeweiser.de/vergabestelle/{slug} or that URL",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_buyer"
},
{
"description": "Contracts won by a company (legal entities with a page on vergabeweiser.de/unternehmen only, never sole traders): totals, buyers, Länder, trades and the awards, 25 per page, with the company's published sum. firm_shared_max: an amount the notice gives alike for several winners of a lot (usually a shared framework ceiling); not counted as the company's sum or share.",
"inputSchema": {
"properties": {
"page": {
"description": "Page of awards, 25 per page",
"minimum": 1,
"type": "integer"
},
"slug": {
"description": "Slug from vergabeweiser.de/unternehmen/{slug} or that URL",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_company_awards"
},
{
"description": "One tender: description, all deadlines (Bieterfragen, Teilnahmeantrag, Angebotsfrist), procedure, lots, result with winners, sums and number of offers, link to the documents on the buyer's platform and to the original notice. result.framework_max is the ceiling of a framework agreement for all call-offs, not an award sum: never report it as the contract value or a firm's share.",
"inputSchema": {
"properties": {
"id": {
"description": "Tender id (8–12 characters at the end of the URL) or the full vergabeweiser.de URL",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "get_tender"
},
{
"description": "Slugs of all trades (Gewerke) and Bundesländer for the other tools.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_categories"
},
{
"description": "Market of one trade in Germany, a Bundesland or a Kreis: tenders in the last 12 months, open now, median offers per award, share with a single offer, typical award sums (quartiles) and frequent winners.",
"inputSchema": {
"properties": {
"gewerk": {
"description": "Trade slug from list_categories, e.g. gebaeudereinigung",
"type": "string"
},
"kreis": {
"description": "Kreis slug inside that Land, as in vergabeweiser.de/ausschreibungen/{gewerk}/{land}/{kreis}",
"type": "string"
},
"land": {
"description": "Bundesland slug, e.g. bayern",
"type": "string"
}
},
"required": [
"gewerk"
],
"type": "object"
},
"name": "market_stats"
},
{
"description": "Search German public tenders like vergabeweiser.de/suche. Free text in German may contain a trade and a place (\"Gebäudereinigung Rosenheim\", \"Dach 25 km um 90402\"). Returns 20 results per page with deadline, buyer, place, estimated value and the page URL. result.framework_max is the ceiling of a framework agreement, never an award sum.",
"inputSchema": {
"properties": {
"buyer_group": {
"description": "Only tenders of a buyer group: bund (federal bodies incl. Bundeswehr and Autobahn GmbH), bundeswehr, autobahn-gmbh, deutsche-bahn, fraunhofer, aok, deutsche-rentenversicherung, krankenhaeuser (hospitals), hochschulen (universities), polizei, stadtwerke; by title: schulen (schools), kitas; eu-weit: only tenders with an EU-wide notice",
"enum": [
"bund",
"bundeswehr",
"autobahn-gmbh",
"deutsche-bahn",
"fraunhofer",
"aok",
"deutsche-rentenversicherung",
"krankenhaeuser",
"hochschulen",
"polizei",
"stadtwerke",
"schulen",
"kitas",
"eu-weit"
],
"type": "string"
},
"gewerk": {
"description": "Trade slug from list_categories, e.g. gebaeudereinigung",
"type": "string"
},
"land": {
"description": "Bundesland slug from list_categories, e.g. bayern",
"type": "string"
},
"page": {
"description": "Result page, 20 per page",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"place": {
"description": "Place: city, postcode or its first digits, Kreis or Bundesland (name or code), e.g. \"Rosenheim\", \"90402\", \"904\", \"Bayern\", \"BY\". Also as people write it: with a radius (\"München 25 km\", \"50 km um München\"), with words around it (\"Raum Stuttgart\", \"Nürnberg und Umgebung\"), postcode and city (\"80331 München\"), the Stadt or Landkreis of a name (\"Fürth Stadt\", \"München Land\"), part of a city (\"Berlin-Mitte\" = Berlin), a list (\"Köln/Bonn\" = Köln). \"Deutschland\" and \"bundesweit\" mean no place. A name several places share usually means the larger town (\"Halle\" = Halle (Saale)) or the Landkreis of that name (\"Harburg\"); another one with its Kreis, Land or qualifier: \"Halle (Landkreis Holzminden)\", \"Halle (Westf.)\", \"Halle NRW\", \"Auerbach (Oberpfalz)\". understood.place in the result says how it was read, understood.unknown_place that it was not",
"type": "string"
},
"procedure": {
"description": "tw: with Teilnahmewettbewerb, einladung: by invitation only",
"enum": [
"alle",
"tw",
"einladung"
],
"type": "string"
},
"query": {
"description": "Free text in German: trade, subject, buyer name, optionally a place, e.g. \"Unterhaltsreinigung Schule München\"",
"type": "string"
},
"radius_km": {
"description": "Radius around place in km, default 50. Goes before a radius written into place",
"enum": [
10,
25,
50,
100,
200
],
"type": "integer"
},
"sort": {
"description": "frist: next deadline first, neu: newest, wert: highest value, treffer: relevance",
"enum": [
"frist",
"neu",
"wert",
"treffer"
],
"type": "string"
},
"status": {
"description": "offen: open (default), bald: deadline within 7 days, ergebnisse: awarded or ended, alle: all",
"enum": [
"offen",
"bald",
"ergebnisse",
"alle"
],
"type": "string"
},
"with_value": {
"description": "Only tenders with an estimated value or award sum",
"type": "boolean"
}
},
"type": "object"
},
"name": "search_tenders"
}
]
}What the leaf hashes
{"body":"b022e5f79e2d6f3c82f04f5b23484bedcbab6c650172884aeca606d44d0388c7","id":1295104,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793400225799808,"prev":null,"subject":"7bc5ee27-a0a9-48f7-848c-ddfbe577ae65","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (243099 rows).
- 0xcd7436c3b25e0c4956bdf5eb71816578dbed2fb6e1234980f17c3726a9ed3393
- 0x6092d58402ba446860d86366e4af5ded4d95d1470e843dacaaaff9047d8f0655
- 0xa7bd37bd8aeb9ead0c38b38e85f9a2d0eef87d2eb9ad6612e87eaf30cc20e384
- 0xa2ba248417d4f41919ace99b4b100b9fe82cd39569bb37a4a9f23382dc4be0e2
- 0xa2ae54f6e885879ab516ef2ed9e84ba93db07f9c0fbc825d5c4afd69ade6d4f2
- 0x75a88e439c7313f9e59026374761dc5fb4d49208155b0ecee8b9d419380851fa
- 0xa53abfaf9c6b815cd09153edf2be826797f993b27b80a65ce089a7ea73fc53f3
- 0xa150dc98bb1c5e1542fc8f5095c84dbd1bb1e3019af0dbf1b22042fd649d6949
- 0xfb6368e9d35e4ad1331057aeaf9173294ce606743e0faae56a9d2c5dde5c4d5c
- 0x0a04dad98cd0a3b2c474b2d2fd3262628a95e8ffd42b64d36256932689c52e0a
- 0xb8cda798ddeca8ecc55aef7f5f6d3c134cb1259dd5ac4fa8153dee66eb20b6f1
- 0xf1b7c84572f14030fd833e96a295b52d84759ca8f204732612837e1dfa8a00ba
- 0x7dd437c898d20229e76a7faab5e409af0e7e8225e640982d9bcc230f9c2ab2be
- 0x7ac7cb68967f6959f2b6a4c2bd1261865c8bce61484defcaab7d55cd759f2223
- 0x9fb4eebd924fd42d4eb61d55691812de0db9242fc9c0dabb65c4054447246797
- 0x0c59b8770d2782eb535aefbb9b2f6810bab4757f51b37e00f5147713a1de9481
- 0x61ef83255d34604cb052882568ca1d1386ac3cfb8284509715bc1734cff77831
- 0x0c43c73b62a5d49ee1444b5dc4195fc5b16b141d3f4458e2e9fbd5fd6ecb367d
- Day root
- 0x0826c7ad6039e06a2360ca0a4a3a4fe7f2626c6dc19f71a37599386f78b39875
- Chained
- 0x36b4c8a1063758f0b8765fa1bdf75fa92fb543cc183add3e261880ee2bd1f822
- Published
- On Arc Testnet, block 69923247: 0x8704744146c6967c8abc9e9a99de4db7283b29e840922ea83a69b6fe776e6861