Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,536Letters: 14Defects: 1,322counted 3 min ago
teppi

Server definition

Hash
sha256:a53b5faf467cf44127ad4bf8c9c0e5964036d3fe8fcc142014f0d04e64623280
What it is
What a remote MCP server returned when asked what it offers: 11 tools

The blob, as servednamed by its sha256

{ "instructions": "Energy performance certificates (świadectwa charakterystyki energetycznej) for properties in Poland, from swiadectwo-energetyczne24.pl. All form values and all messages for the end user are in Polish.\n\nOrder flow:\n1. get_certificate_options / get_certificate_information — answer questions about the offer (property types, base prices, add-ons, process, lead times) from our data, never from your own knowledge.\n2. create_certificate_order — create the order as soon as you know the property type. Always pass idempotency_key. KEEP the returned access_token: it is the only key to that order and every other order tool needs it. Never show it to the user.\n3. get_certificate_order_requirements — the backend decides what is still missing and gives you a ready Polish question plus the allowed values for each field. Ask ONE question at a time; never guess technical parameters.\n4. update_certificate_order — send the answers. Enum values must match the allowed options verbatim.\n5. calculate_certificate_price — the only source of prices. Never compute or recall a price yourself.\n6. get_payment_link — ONLY after you showed the price and the user explicitly agreed to it. Returns a secure link to our payment page; the user adds the building photo, accepts the terms and pays there. Never ask for card data and never collect legal consents yourself.\n7. get_certificate_order_status — progress of a placed order (no personal data). get_certificate_order returns the full stored data when you need to read back what was collected.\nDocuments: create_document_upload_url then add_property_document. This server never downloads files from URLs you provide. Unpaid orders expire after 30 days.", "tools": [ { "description": "Dołącza wgrany wcześniej plik do zamówienia. file_id musi pochodzić z create_document_upload_url dla TEGO zamówienia. Zdjęcie budynku (property_photo) jest potrzebne do wystawienia świadectwa, ale nie blokuje płatności — jeśli go nie dodasz, użytkownik doda je na stronie płatności albo dośle później na stronie zamówienia.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "access_token": { "description": "access_token zwrócony JEDEN RAZ przez create_certificate_order. Bez niego zamówienie jest niedostępne — zachowaj go na czas rozmowy i nigdy nie pokazuj użytkownikowi.", "maxLength": 200, "minLength": 20, "type": "string" }, "document_type": { "enum": [ "property_photo", "floor_plan", "building_project", "technical_project", "energy_document", "other" ], "type": "string" }, "file_id": { "description": "file_id zwrócony przez create_document_upload_url", "maxLength": 500, "minLength": 1, "type": "string" }, "filename": { "maxLength": 255, "minLength": 1, "type": "string" }, "order_id": { "description": "order_id zwrócony przez create_certificate_order", "format": "uuid", "type": "string" } }, "required": [ "order_id", "access_token", "document_type", "file_id" ], "type": "object" }, "name": "add_property_document", "outputSchema": null }, { "description": "Wiążąca cena wyliczona przez nasz backend. Podaj order_id + access_token dla ceny konkretnego zamówienia albo samo property_type dla wyceny orientacyjnej. NIGDY nie licz ceny samodzielnie i nie podawaj kwot z pamięci.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "access_token": { "description": "access_token zwrócony JEDEN RAZ przez create_certificate_order. Bez niego zamówienie jest niedostępne — zachowaj go na czas rozmowy i nigdy nie pokazuj użytkownikowi.", "maxLength": 200, "minLength": 20, "type": "string" }, "discount_code": { "description": "Kod rabatowy podany przez użytkownika. Sam go nie wymyślaj ani nie proponuj.", "maxLength": 40, "type": "string" }, "options": { "additionalProperties": false, "properties": { "express_24h": { "description": "Dodatek Express 8H – realizacja w 8 godzin roboczych (nazwa pola historyczna).", "type": "boolean" }, "paper_version": { "type": "boolean" } }, "type": "object" }, "order_id": { "description": "order_id zwrócony przez create_certificate_order", "format": "uuid", "type": "string" }, "property_type": { "description": "Wymagane, gdy nie podajesz order_id.", "enum": [ "mieszkanie", "dom", "lokal-uzytkowy", "budynek-nieogrzewany" ], "type": "string" } }, "type": "object" }, "name": "calculate_certificate_price", "outputSchema": null }, { "description": "Tworzy zamówienie świadectwa charakterystyki energetycznej. NIE musisz mieć wszystkich danych — podaj, co już wiesz; odpowiedź zawiera brakujące pola i pytanie, które zadać jako następne. Zwrócony access_token jest jedynym kluczem do tego zamówienia: zapamiętaj go i przekazuj do pozostałych narzędzi. Zamówienie nie jest opłacone dopóki użytkownik nie przejdzie przez link z get_payment_link.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "address": { "additionalProperties": false, "description": "Adres nieruchomości.", "properties": { "apartment_number": { "maxLength": 30, "type": "string" }, "building_number": { "maxLength": 30, "type": "string" }, "city": { "maxLength": 120, "type": "string" }, "postal_code": { "maxLength": 10, "type": "string" }, "street": { "maxLength": 200, "type": "string" } }, "type": "object" }, "customer": { "additionalProperties": false, "description": "Dane kontaktowe klienta.", "properties": { "email": { "maxLength": 200, "type": "string" }, "first_name": { "maxLength": 100, "type": "string" }, "last_name": { "maxLength": 100, "type": "string" }, "phone": { "maxLength": 40, "type": "string" } }, "type": "object" }, "doors": { "description": "Tylko dla `dom`: drzwi zewnętrzne i bramy w ogrzewanej bryle.", "items": { "additionalProperties": false, "properties": { "count": { "maximum": 50, "minimum": 1, "type": "integer" }, "height_cm": { "exclusiveMinimum": 0, "maximum": 1000, "type": "number" }, "material": { "enum": [ "Stalowe", "Aluminiowe", "PVC", "Drewniane", "Nie wiem" ], "type": "string" }, "width_cm": { "exclusiveMinimum": 0, "maximum": 1000, "type": "number" } }, "required": [ "material", "count" ], "type": "object" }, "maxItems": 20, "type": "array" }, "fields": { "description": "Pola specyficzne dla typu nieruchomości, w formie ścieżka → wartość.", "items": { "additionalProperties": false, "properties": { "path": { "description": "Ścieżka pola z get_certificate_order_requirements, np. \"heating.heating\".", "maxLength": 200, "type": "string" }, "value": { "anyOf": [ { "maxLength": 2000, "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "items": { "maxLength": 200, "type": "string" }, "maxItems": 20, "type": "array" } ], "description": "Wartość pola. Dla pól enum użyj DOKŁADNIE jednej z wartości z `options` — inna wartość jest odrzucana błędem INVALID_FIELD_VALUE." } }, "required": [ "path", "value" ], "type": "object" }, "maxItems": 80, "type": "array" }, "idempotency_key": { "description": "Dowolny stały identyfikator tej próby zamówienia. Ponowne wywołanie z tym samym kluczem zwraca istniejące zamówienie zamiast tworzyć duplikat. Ustawiaj zawsze.", "maxLength": 200, "minLength": 8, "type": "string" }, "options": { "additionalProperties": false, "description": "Płatne dodatki: express_24h (Express 8H – 8 godzin roboczych; nazwa pola historyczna), paper_version.", "properties": { "express_24h": { "description": "Dodatek Express 8H – realizacja w 8 godzin roboczych (nazwa pola historyczna).", "type": "boolean" }, "paper_version": { "type": "boolean" } }, "type": "object" }, "property": { "additionalProperties": false, "description": "Podstawowe parametry: powierzchnia użytkowa, wysokość pomieszczeń, rok oddania do użytkowania.", "properties": { "area_m2": { "exclusiveMinimum": 0, "maximum": 10000, "type": "number" }, "height_m": { "exclusiveMinimum": 0, "maximum": 20, "type": "number" }, "year_built": { "maximum": 2100, "minimum": 1800, "type": "integer" } }, "type": "object" }, "property_type": { "description": "Typ nieruchomości. mieszkanie = apartment, dom = house, lokal-uzytkowy = commercial unit, budynek-nieogrzewany = unheated building up to 70 m² (summer cabin, outbuilding, workshop) with no heating or air conditioning.", "enum": [ "mieszkanie", "dom", "lokal-uzytkowy", "budynek-nieogrzewany" ], "type": "string" }, "windows": { "description": "Tylko dla `dom`: wymiary okien. Jednakowe okna podaje się raz z liczbą sztuk.", "items": { "additionalProperties": false, "properties": { "count": { "maximum": 50, "minimum": 1, "type": "integer" }, "height_cm": { "exclusiveMinimum": 0, "maximum": 1000, "type": "number" }, "width_cm": { "exclusiveMinimum": 0, "maximum": 1000, "type": "number" } }, "required": [ "width_cm", "height_cm", "count" ], "type": "object" }, "maxItems": 30, "type": "array" } }, "required": [ "property_type" ], "type": "object" }, "name": "create_certificate_order", "outputSchema": null }, { "description": "Zwraca jednorazowy URL do wgrania pliku (metodą PUT) i file_id, którym potem dołączysz plik przez add_property_document. MCP nigdy nie pobiera plików z Internetu — bajty wysyła ten, kto je ma.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "access_token": { "description": "access_token zwrócony JEDEN RAZ przez create_certificate_order. Bez niego zamówienie jest niedostępne — zachowaj go na czas rozmowy i nigdy nie pokazuj użytkownikowi.", "maxLength": 200, "minLength": 20, "type": "string" }, "document_type": { "enum": [ "property_photo", "floor_plan", "building_project", "technical_project", "energy_document", "other" ], "type": "string" }, "filename": { "maxLength": 255, "minLength": 1, "type": "string" }, "mime": { "description": "image/jpeg, image/png, image/webp lub application/pdf (HEIC nie przyjmujemy)", "maxLength": 100, "minLength": 1, "type": "string" }, "order_id": { "description": "order_id zwrócony przez create_certificate_order", "format": "uuid", "type": "string" }, "size_bytes": { "exclusiveMinimum": 0, "type": "integer" } }, "required": [ "order_id", "access_token", "document_type", "filename", "mime", "size_bytes" ], "type": "object" }, "name": "create_document_upload_url", "outputSchema": null }, { "description": "Fakty o usłudze pochodzące z naszego systemu: dla jakich nieruchomości wystawiamy świadectwo, przebieg procesu, czasy realizacji, wymagane dokumenty, podstawa prawna, FAQ i kontakt. Używaj tego zamiast odpowiadać z własnej wiedzy.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "topics": { "description": "Zawęź odpowiedź do wybranych tematów. Domyślnie zwracane są wszystkie.", "items": { "enum": [ "overview", "property_types", "pricing", "process", "lead_time", "documents", "legal", "faq", "contact" ], "type": "string" }, "maxItems": 9, "type": "array" } }, "type": "object" }, "name": "get_certificate_information", "outputSchema": null }, { "description": "Oferta: typy nieruchomości, dla których wystawiamy świadectwo (z ceną bazową brutto PLN), płatne dodatki (Express 8H, wersja papierowa), obsługiwane typy dokumentów i listy dozwolonych wartości (ogrzewanie, CWU, wentylacja, okna, drzwi). Wywołaj jako pierwsze, jeśli użytkownik nie określił typu nieruchomości. Ceny tu są cennikowe — cenę konkretnego zamówienia liczy calculate_certificate_price. Wartości enum podawaj później DOKŁADNIE tak, jak tu wyglądają.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "property_type": { "description": "Zawęź listę typów nieruchomości do jednego typu.", "enum": [ "mieszkanie", "dom", "lokal-uzytkowy", "budynek-nieogrzewany" ], "type": "string" } }, "type": "object" }, "name": "get_certificate_options", "outputSchema": null }, { "description": "Pełny stan zamówienia: zebrane wartości pól, dołączone dokumenty, cena, status i braki. Używaj, gdy musisz odczytać, co już zapisano; do samego postępu realizacji wystarczy get_certificate_order_status. Dane osobowe zwracamy tylko posiadaczowi access_token.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "access_token": { "description": "access_token zwrócony JEDEN RAZ przez create_certificate_order. Bez niego zamówienie jest niedostępne — zachowaj go na czas rozmowy i nigdy nie pokazuj użytkownikowi.", "maxLength": 200, "minLength": 20, "type": "string" }, "order_id": { "description": "order_id zwrócony przez create_certificate_order", "format": "uuid", "type": "string" } }, "required": [ "order_id", "access_token" ], "type": "object" }, "name": "get_certificate_order", "outputSchema": null }, { "description": "Zwraca listę pól, których brakuje, żeby zamówienie było gotowe do płatności — razem z gotowym pytaniem po polsku i dozwolonymi wartościami. To backend decyduje, czego brakuje; nie zgaduj i nie pytaj o pola spoza tej listy.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "access_token": { "description": "access_token zwrócony JEDEN RAZ przez create_certificate_order. Bez niego zamówienie jest niedostępne — zachowaj go na czas rozmowy i nigdy nie pokazuj użytkownikowi.", "maxLength": 200, "minLength": 20, "type": "string" }, "order_id": { "description": "order_id zwrócony przez create_certificate_order", "format": "uuid", "type": "string" } }, "required": [ "order_id", "access_token" ], "type": "object" }, "name": "get_certificate_order_requirements", "outputSchema": null }, { "description": "Skrócony status zamówienia — bez danych osobowych i bez wartości pól. Używaj do informowania użytkownika o postępie realizacji (płatność, przygotowanie świadectwa, wysyłka).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "access_token": { "description": "access_token zwrócony JEDEN RAZ przez create_certificate_order. Bez niego zamówienie jest niedostępne — zachowaj go na czas rozmowy i nigdy nie pokazuj użytkownikowi.", "maxLength": 200, "minLength": 20, "type": "string" }, "order_id": { "description": "order_id zwrócony przez create_certificate_order", "format": "uuid", "type": "string" } }, "required": [ "order_id", "access_token" ], "type": "object" }, "name": "get_certificate_order_status", "outputSchema": null }, { "description": "Zwraca bezpieczny link do strony płatności dla kompletnego zamówienia. Na tej stronie użytkownik widzi podsumowanie i cenę, może dodać zdjęcie budynku (jeśli go jeszcze nie ma — da się je też dosłać po płatności), akceptuje regulamin i płaci u operatora płatności. WYWOŁUJ WYŁĄCZNIE po tym, jak pokażesz użytkownikowi cenę i dostaniesz od niego wyraźną zgodę. MCP nigdy nie przyjmuje danych karty.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "access_token": { "description": "access_token zwrócony JEDEN RAZ przez create_certificate_order. Bez niego zamówienie jest niedostępne — zachowaj go na czas rozmowy i nigdy nie pokazuj użytkownikowi.", "maxLength": 200, "minLength": 20, "type": "string" }, "order_id": { "description": "order_id zwrócony przez create_certificate_order", "format": "uuid", "type": "string" } }, "required": [ "order_id", "access_token" ], "type": "object" }, "name": "get_payment_link", "outputSchema": null }, { "description": "Częściowa aktualizacja zamówienia — podajesz tylko te pola, które chcesz ustawić lub zmienić; reszta zostaje nienaruszona. Zwraca aktualny status i pozostałe braki. Jeśli którakolwiek wartość jest spoza dozwolonej listy, NIC nie zostaje zapisane i dostajesz błąd INVALID_FIELD_VALUE.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "access_token": { "description": "access_token zwrócony JEDEN RAZ przez create_certificate_order. Bez niego zamówienie jest niedostępne — zachowaj go na czas rozmowy i nigdy nie pokazuj użytkownikowi.", "maxLength": 200, "minLength": 20, "type": "string" }, "address": { "additionalProperties": false, "description": "Adres nieruchomości.", "properties": { "apartment_number": { "maxLength": 30, "type": "string" }, "building_number": { "maxLength": 30, "type": "string" }, "city": { "maxLength": 120, "type": "string" }, "postal_code": { "maxLength": 10, "type": "string" }, "street": { "maxLength": 200, "type": "string" } }, "type": "object" }, "customer": { "additionalProperties": false, "description": "Dane kontaktowe klienta.", "properties": { "email": { "maxLength": 200, "type": "string" }, "first_name": { "maxLength": 100, "type": "string" }, "last_name": { "maxLength": 100, "type": "string" }, "phone": { "maxLength": 40, "type": "string" } }, "type": "object" }, "doors": { "description": "Tylko dla `dom`: drzwi zewnętrzne i bramy w ogrzewanej bryle.", "items": { "additionalProperties": false, "properties": { "count": { "maximum": 50, "minimum": 1, "type": "integer" }, "height_cm": { "exclusiveMinimum": 0, "maximum": 1000, "type": "number" }, "material": { "enum": [ "Stalowe", "Aluminiowe", "PVC", "Drewniane", "Nie wiem" ], "type": "string" }, "width_cm": { "exclusiveMinimum": 0, "maximum": 1000, "type": "number" } }, "required": [ "material", "count" ], "type": "object" }, "maxItems": 20, "type": "array" }, "fields": { "description": "Pola specyficzne dla typu nieruchomości, w formie ścieżka → wartość.", "items": { "additionalProperties": false, "properties": { "path": { "description": "Ścieżka pola z get_certificate_order_requirements, np. \"heating.heating\".", "maxLength": 200, "type": "string" }, "value": { "anyOf": [ { "maxLength": 2000, "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "items": { "maxLength": 200, "type": "string" }, "maxItems": 20, "type": "array" } ], "description": "Wartość pola. Dla pól enum użyj DOKŁADNIE jednej z wartości z `options` — inna wartość jest odrzucana błędem INVALID_FIELD_VALUE." } }, "required": [ "path", "value" ], "type": "object" }, "maxItems": 80, "type": "array" }, "options": { "additionalProperties": false, "description": "Płatne dodatki: express_24h (Express 8H – 8 godzin roboczych; nazwa pola historyczna), paper_version.", "properties": { "express_24h": { "description": "Dodatek Express 8H – realizacja w 8 godzin roboczych (nazwa pola historyczna).", "type": "boolean" }, "paper_version": { "type": "boolean" } }, "type": "object" }, "order_id": { "description": "order_id zwrócony przez create_certificate_order", "format": "uuid", "type": "string" }, "property": { "additionalProperties": false, "description": "Podstawowe parametry: powierzchnia użytkowa, wysokość pomieszczeń, rok oddania do użytkowania.", "properties": { "area_m2": { "exclusiveMinimum": 0, "maximum": 10000, "type": "number" }, "height_m": { "exclusiveMinimum": 0, "maximum": 20, "type": "number" }, "year_built": { "maximum": 2100, "minimum": 1800, "type": "integer" } }, "type": "object" }, "windows": { "description": "Tylko dla `dom`: wymiary okien. Jednakowe okna podaje się raz z liczbą sztuk.", "items": { "additionalProperties": false, "properties": { "count": { "maximum": 50, "minimum": 1, "type": "integer" }, "height_cm": { "exclusiveMinimum": 0, "maximum": 1000, "type": "number" }, "width_cm": { "exclusiveMinimum": 0, "maximum": 1000, "type": "number" } }, "required": [ "width_cm", "height_cm", "count" ], "type": "object" }, "maxItems": 30, "type": "array" } }, "required": [ "order_id", "access_token" ], "type": "object" }, "name": "update_certificate_order", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:a53b5faf467cf44127ad4bf8c9c0e5964036d3fe8fcc142014f0d04e64623280 | sha256sum