ARK. 1System · Standardy

JSON-RPC i OpenAPI — jeden mówi, jak zawołać, drugi opisuje, co można zawołać.

Te dwa standardy często stoją obok siebie, ale robią co innego. JSON-RPC 2.0 to format wiadomości: „wywołaj metodę z tymi parametrami” i „oto wynik albo błąd z kodem” — przez dowolny transport. OpenAPI to dokument opisujący API HTTP: jakie są ścieżki, co przyjmują, co zwracają. Agent AI styka się z oboma: narzędzia Claude Code działają przez MCP, który jest JSON-RPC, a z dokumentu OpenAPI da się wygenerować klienta i opis narzędzi. Poniżej oba standardy i interfejsy LAB247 — czym są opisane dziś i co da się dołożyć.

Źródło: JSON-RPC 2.0 (26.03.2010), OpenAPI 3.2.1 (10.09.2026), MCP 2026-07-28; odczyt 26.09.2026. Opisy są naszym opracowaniem. Liczby tras i próba JSON Schema — z kodu LAB247 i skanera. Pozostałe standardy serii: ECS (nazwy pól zdarzeń), Bazy podatności (rekord CVE JSON 5).

JSON-RPC
2.0od 26.03.2010 · 6 kodów zarezerwowanych
OpenAPI
3.2.110.09.2026 · 3.2.0 z 19.09.2025
Ingest · API skanera
11 · 37rodzaje ingestu · trasy GET skanera
Schematy zod → JSON Schema
10 / 10próba 26.09.2026
RYS. 1Kto z kim rozmawia i czym to jest opisaneciągła = HTTP z opisem w repo · przerywana = MCP (JSON-RPC)

Wszystko, co wchodzi do LAB247, idzie przez HTTP z JSON-em i schematem zod — to materiał na dokument OpenAPI. JSON-RPC jest dziś tylko po stronie agentów, w MCP. Nazwa pod interfejsem mówi, gdzie leży jego opis.

TAB. 1Dwa standardy, dwie roleformat wywołania · opis API
JSON-RPC 2.0OpenAPI 3.2.1
Czym jestFormat wiadomości: wywołaj metodę z parametrami, dostań wynik albo błąd.Opis API HTTP: ścieżki, metody, parametry, schematy treści, odpowiedzi, uwierzytelnianie.
Co standaryzujeKopertę (jsonrpc, method, params, id) i kody błędów — nie treść parametrów.Dokument maszynowy o API — samo API może być dowolnym HTTP.
TransportDowolny: HTTP, WebSocket, gniazdo, stdin/stdout procesu.HTTP.
AdresJeden punkt wejścia; co robić mówi method.Wiele ścieżek i metod HTTP; co robić mówi adres + metoda.
BłędyObiekt error z kodem liczbowym (TAB. 3); status HTTP bez znaczenia.Statusy HTTP + opisany schemat treści błędu.
Po co agentowi AIMCP: narzędzia agenta są metodami JSON-RPC (tools/list, tools/call).Z dokumentu OpenAPI da się wygenerować klienta, walidację i opis narzędzi dla agenta.
TAB. 2JSON-RPC 2.0: obiektyspecyfikacja
Żądaniejsonrpc = „2.0” (dokładnie), method (nazwy od rpc. zarezerwowane), params (obiekt albo tablica, opcjonalnie), id (tekst, liczba albo null — null odradzany, liczby bez części ułamkowej).
PowiadomienieŻądanie bez id. Serwer NIE odpowiada — także w paczce. Wygodne do zdarzeń, ale nadawca nie wie, czy doszło.
Odpowiedźjsonrpc, id takie jak w żądaniu i dokładnie jedno z: result albo error.
Błądcode (liczba całkowita), message (krótki opis), data (opcjonalnie — szczegóły).
Paczka (batch)Tablica żądań; odpowiedzi w dowolnej kolejności, parowane po id. Pusta tablica albo niepoprawny JSON = jedna odpowiedź z błędem. Same powiadomienia = brak odpowiedzi, nie pusta tablica.
Transport„Niezależny od transportu” — ten sam format w procesie, przez gniazdo, HTTP albo kolejkę.
→ {"jsonrpc": "2.0", "method": "strona.usterki", "params": {"domena": "example.pl"}, "id": 7}
← {"jsonrpc": "2.0", "result": {"wskaznik": 4, "usterki": ["vuln_cve"]}, "id": 7}
← {"jsonrpc": "2.0", "error": {"code": -32602, "message": "Invalid params", "data": "domena"}, "id": 7}

Przykład nasz — metoda i dane zmyślone.

TAB. 3JSON-RPC 2.0: kody błędówzarezerwowane przez specyfikację
KodKomunikatZnaczy
-32700Parse errorserwer dostał niepoprawny JSON
-32600Invalid RequestJSON nie jest poprawnym żądaniem
-32601Method not foundmetoda nie istnieje albo jest niedostępna
-32602Invalid paramsniepoprawne parametry metody
-32603Internal errorwewnętrzny błąd JSON-RPC
-32000 … -32099Server errorzarezerwowane dla błędów implementacji
TAB. 4OpenAPI: dokument i historiaobiekt główny · 3.2.1
openapiWersja specyfikacji dokumentu (np. 3.2.1) — wymagane.
infoTytuł, wersja API, opis, kontakt, licencja — wymagane.
$selfWłasny adres dokumentu (baza dla odwołań) — nowe w 3.2.
jsonSchemaDialectDomyślny dialekt schematów; od 3.1 pełny JSON Schema 2020-12.
serversAdresy, pod którymi API działa.
pathsŚcieżki i ich operacje (GET, POST…; w 3.2 także QUERY i additionalOperations).
webhooksWywołania przychodzące, które API wysyła do odbiorców (od 3.1).
componentsSchematy, odpowiedzi, parametry, zabezpieczenia do wielokrotnego użycia; w 3.2 także mediaTypes.
securityWymagane mechanizmy (np. Bearer).
tags · externalDocsGrupowanie operacji (w 3.2 z hierarchią) i dokumentacja zewnętrzna.
2011Swagger — format opisu API firmy Wordnik, potem SmartBear.
2014Swagger 2.0.
2015–2016Specyfikacja przekazana do OpenAPI Initiative (Linux Foundation), nazwa zmieniona na OpenAPI.
2017OpenAPI 3.0.0 — components, requestBody, callbacks.
20213.1.0 — schematy w pełni zgodne z JSON Schema 2020-12, webhooks.
19.09.20253.2.0 — $self, metoda QUERY, strumienie (JSON Lines, zdarzenia SSE), hierarchia tagów, mediaTypes.
10.09.20263.2.1 — poprawki, obecna wersja.

Wymagane są tylko openapi i info oraz co najmniej jedno z paths, webhooks, components.

TAB. 5Interfejsy LAB247kto do kogo · czym opisane
NadawcaInterfejsOdbiorcaOpisTrasUwaga
Wtyczka Creato PingPOST /api/v1/ingest/agent-messagebaza LAB247zod + Markdown1Bearer, zdarzenia krytyczne od razu, komunikat dobowy.
Helpery i skaner PINGPOST /api/v1/ingest/{rodzaj}baza LAB247zod + Markdown11 rodzajówchecks, sites, findings, plugin-report, audit, vulnerabilities, software, news, schedule, agent-message, work-report.
WordfencePOST /api/v1/hooks/wordfencebaza LAB247HMAC + zod1Jedyna trasa publiczna z zewnątrz; podpis HMAC na surowym ciele.
Panel LAB247API skanera 127.0.0.1baza skaneradocstring37 GET · 13 POST · 5 PUTTylko lokalnie. Docstring wymienia 35 tras GET, kod ma 37 — opis już się rozjechał.
Claude Code (Agenci AI)MCPClickUp, Notion…JSON-RPC (MCP)—Narzędzia agenta to metody JSON-RPC; LAB247 nie wystawia własnego serwera MCP.
TAB. 6Błędy LAB247 i próba JSON Schemadziś REST + zod · jutro OpenAPI z tego samego
StatusZnaczenie w API LAB247
400niepoprawny JSON — odpowiednik -32700
401 / 403brak albo zły token, zła rola
404nieznany rodzaj ingestu — odpowiednik -32601
413ciało powyżej 2 MB
422zły kształt po schemacie zod — odpowiednik -32602
Treść{"status": "fail", "error": "…", "details"?: …} — jeden kształt we wszystkich trasach (app/api/respond.ts).
Schemat ingestuJSON Schema (znaki)Wynik
checks2495bez błędu
sites1543bez błędu
findings1277bez błędu
plugin-report1538bez błędu
audit558bez błędu
software1981bez błędu
agent-message1202bez błędu
work-report3936bez błędu
schedule2510bez błędu
wordfence (webhook i vulnerabilities)5266bez błędu

OpenAPI 3.1 i 3.2 używają JSON Schema 2020-12 wprost, więc te schematy wchodzą do components.schemas bez tłumaczenia. Brakuje tylko ścieżek, uwierzytelniania i odpowiedzi — to kilkadziesiąt linii opisu, nie przepisanie API.

TAB. 7Standard w LAB247co jest, co warto, czego nie
CoStanJak
Kontrakt ingestudziałaKażdy rodzaj ma schemat zod walidowany przy wejściu i opis w docs/ingest-contract.md. Jeden kształt błędu, statusy HTTP jak w TAB. 6.
Dokument OpenAPIdługNie ma. Próba z 26.09: z.toJSONSchema() zamienia 10 z 10 schematów bez błędu (TAB. 6) — dokument OpenAPI 3.1/3.2 da się złożyć z tego, co jest, bez przepisywania walidacji. Zysk: opis nie rozjedzie się z kodem, klient i narzędzia agenta z generatora.
Opis API skaneradługDocstring w skaner/api.py — już dziś 2 trasy GET za mało. Kandydat na ten sam dokument OpenAPI (serwer 127.0.0.1).
JSON-RPC między skanerem a LAB247nie robimyInterfejsy są REST-owe (rodzaj w adresie, status HTTP), a nadawca wysyła paczki raz na przebieg. Zamiana na JSON-RPC nic by nie dała poza kopertą.
Serwer MCP LAB247 dla Agentów AInie robimyAgenci czytają dziś bazę i ClickUp przez własne narzędzia. Serwer MCP (JSON-RPC) z narzędziami „strona”, „usterki”, „podatności” byłby naturalnym miejscem dla tego standardu — już zapisany jako dług katalogu Rozszerzeń („endpoint dla Agentów AI”, spec §8).
TAB. 8Graniceczego protokół i opis nie dają
Koperta ≠ treśćJSON-RPC ustala kształt wywołania, nie znaczenie parametrów. „Ustrukturyzowane Znaleziska” daje schemat (zod, JSON Schema), nie protokół.
Opis ≠ zachowanieDokument OpenAPI może kłamać tak samo jak docstring, jeśli nie powstaje z kodu. Wartość jest w generowaniu, nie w pisaniu ręcznie.
Powiadomienie bez potwierdzeniaPowiadomienie JSON-RPC nie dostaje odpowiedzi — dla zdarzeń bezpieczeństwa (wtyczka) potrzebne jest potwierdzenie przyjęcia, które mamy w HTTP.
Status HTTP w JSON-RPC nic nie znaczyPrzez HTTP odpowiedź z błędem bywa 200. Monitoring patrzący tylko na status nie zobaczy awarii.
TAB. 9Jak czytać liczby i skąd się wzięłykod LAB247 i skanera · 26.09.2026
Wersje
JSON-RPC 2.0 (2010, poprawka 2013), OpenAPI 3.2.1 (10.09.2026), MCP 2026-07-28 — strony specyfikacji odczytane 26.09.2026.
Trasy LAB247
Policzone z kodu: 12 plików route.ts w site/src/app/api, 11 rodzajów w INGEST_KINDS; skaner: 37 wyrażeń w _TRASY_GET, docstring modułu 35 GET, 13 POST, 5 PUT.
Próba JSON Schema
Skrypt jednorazowy (tsx) wywołał z.toJSONSchema (zod 4.5, io: input) na 10 schematach ingestu; rozmiar = długość wynikowego JSON-a w znakach. news i vulnerabilities mają osobne parsery — vulnerabilities dzieli schemat z webhookiem Wordfence.
Blog 24/7
26.09Fałszywe SMS-y o opłacie parkingowej wyłudzają dane karty, ostrzega CERT Polskadobreprogramy.pl26.09Grupa UNC6240 omija filtry WAF i masowo atakuje krytyczną lukę bez poprawkithehackernews.com26.09Kiteworks zaleca klientom wyłączenie serwerów na sześć godzin w sobotę 26 wrześniableepingcomputer.com25.09Elementor 4.3.0 i 4.3.1: jeden link zakłada napastnikowi konto administratorapatchstack.com25.09Atak na system Medyc: sprawcy twierdzą, że mają dane 5 mln pacjentów i 8 mln zdjęćzaufanatrzeciastrona.pl25.09Fałszywe aplikacje płacowe instalują ScreenConnect na komputerach działu płachelpnetsecurity.com24.09Zdrowit S.A. potwierdza cyberatak, przestępcy opublikowali plik 90 GBtelepolis.pl24.09Fałszywa „aktualizacja PDF” z Facebooka prowadziła do aplikacji Messenger Pro w Googleinstalki.pl24.09Fałszywa weryfikacja Cloudflare na przejętych stronach firm instaluje stealer Psychedelicthehackernews.com24.09Luka prompt injection w aplikacji agentowej AI pozwalała wykonać kod przez mailadarkreading.com