← The evidence ledger
Evidence row 1739792
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 7bc5ee27-a0a9-48f7-848c-ddfbe577ae65
- Recorded
- Previous row
- #1295104
- Body SHA-256
- da4c4fd16ecbc8e01ee8a91c81fd6e9808ac16ec3cf066a972dae17430049ba9
- Leaf
- 0x8d724ce25ebe181d74719e852018dcd5b6a917d24a53bacd700dc71510fea813
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 the procedure (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. Do not add up awards[].amount, result.sum is the sum: amount_is_shared_ceiling marks an amount several winners share, never that winner's own sum, amount_covers_several_lots a bid over several lots.",
"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":"da4c4fd16ecbc8e01ee8a91c81fd6e9808ac16ec3cf066a972dae17430049ba9","id":1739792,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793509972808101,"prev":1295104,"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 (302406 rows).
- 0x8d72ab8ef10e5b8fdcea64df7ec35564f5f08abc2db3229dbf7ed3b240f4946f
- 0x1de3937dd8c14b3e3a51f27bc0c16372a856d8e555ab36befdc1f060857b3fa3
- 0x3dab8b8192f99a54fe09859efd936cfea10fa47486f01958fa1daec315713e4e
- 0xbbbce7bd50dce59429dd1c4af81e748b9b642857add1d9996e3cdf7b4786cdfa
- 0xd4192f0420ceeb820584aa6f82fbf76210d84caaaf179ea1edc5f3b3052b62a8
- 0x19bd2fbc3f00daaed0166d7e696cdd583a8c51bd51762758fb582a8d369c1b01
- 0xfc158607fe6a0f2907b41d08f130698a9e46a826d754459ae7cfd084642e1bd4
- 0xa7f9ae0a7e4762de60ce727fb69f2e7fefdcc02ceeda739c3abe772fd854c9a4
- 0x866585ca656af889d8bbe5fb0ebd0c087e0a5138365974dab9c308ea1ad77466
- 0x17ecc7466623f37f6a363e2f28f39a3340ff9b8bbc218753fe1ff5e012cb78aa
- 0x591aea021f7cf8b6c9f92a3c371a7c64cdf7150c58a37b14b2626a676a919f49
- 0x29d7a2a4df0d7fa79f3b537becdf01ca611b7c70fbde18f9fae82bb3e270cc73
- 0x6129eb29b7f3727c333751ed672fa6e4b231f839ed64750b5d1005800847c8dd
- 0x43a0d126875c656347b68ba3c0196959406aa8df8a7cd284fd2814ddd386322c
- 0x23107b06227fe01d939429fa5248f5555093c421dfc6b8bc6ba3518a65263d17
- 0xc2b1c84ef3531511a3d8d9db5ff9eeca2725a3782e7f9c4ac87fc0f1588349fa
- 0x0c618c42b286ad61acd8204aa6dcf024b8b041d3759aa585bf4e221abc39cb5d
- 0x6142ac48fda269c17791c79da99c2456ac6acfe98268f4d168a404fd6040c703
- 0x3315fd2757fdd435852cc277377234a3f3909a6d2a089d0e36f6d59aacfda910
- Day root
- 0x7fa2cba1cf3d6b35630896f5fe1a650adb307ea2c376e80a5f2d9276b7cb5ab3
- Chained
- 0x577ff89ba012beeff3197bcff7fa86752074bdf54205a24359cc437be2a952a4
- Published
- On Arc Testnet, block 70262758: 0x435bc1b9331471d72e1998f2e420983b5189d4da65ffbd6f27ef40daf5e1ea90