---
title: "Šta beležiti za svaki poziv MCP alata"
description: "Klijent vidi udaljeni MCP server kao jedan neproziran span, a komandna tabla direktorijuma vidi zbirove. Samo je server video poziv. Red koji Tajo MCP serveri upisuju za svaki poziv, polje po polje, šta se iz njega uklanja i šta nije izgrađeno."
url: https://tajo.io/sr/blog/what-to-log-for-every-mcp-tool-call/
markdown: https://tajo.io/sr/blog/what-to-log-for-every-mcp-tool-call.md
lang: sr-Latn-RS
author: "Set Noa"
author_url: https://tajo.io/sr/set-noa/
published: 2026-11-06
updated: 2026-11-06
alternates: {en-US: /blog/what-to-log-for-every-mcp-tool-call.md, bg-BG: /bg/blog/what-to-log-for-every-mcp-tool-call.md, cs-CZ: /cz/blog/what-to-log-for-every-mcp-tool-call.md, de-DE: /de/blog/what-to-log-for-every-mcp-tool-call.md, da-DK: /dk/blog/what-to-log-for-every-mcp-tool-call.md, es-ES: /es/blog/what-to-log-for-every-mcp-tool-call.md, fr-FR: /fr/blog/what-to-log-for-every-mcp-tool-call.md, el-GR: /gr/blog/what-to-log-for-every-mcp-tool-call.md, hi-IN: /hi/blog/what-to-log-for-every-mcp-tool-call.md, id-ID: /in/blog/what-to-log-for-every-mcp-tool-call.md, hr-HR: /hr/blog/what-to-log-for-every-mcp-tool-call.md, hu-HU: /hu/blog/what-to-log-for-every-mcp-tool-call.md, it-IT: /it/blog/what-to-log-for-every-mcp-tool-call.md, ja-JP: /jp/blog/what-to-log-for-every-mcp-tool-call.md, ko-KR: /kr/blog/what-to-log-for-every-mcp-tool-call.md, ar-SA: /ar/blog/what-to-log-for-every-mcp-tool-call.md, nl-NL: /nl/blog/what-to-log-for-every-mcp-tool-call.md, no-NO: /no/blog/what-to-log-for-every-mcp-tool-call.md, pl-PL: /pl/blog/what-to-log-for-every-mcp-tool-call.md, pt-BR: /pt/blog/what-to-log-for-every-mcp-tool-call.md, ro-RO: /ro/blog/what-to-log-for-every-mcp-tool-call.md, ru-RU: /ru/blog/what-to-log-for-every-mcp-tool-call.md, sv-SE: /se/blog/what-to-log-for-every-mcp-tool-call.md, zh-CN: /zh-cn/blog/what-to-log-for-every-mcp-tool-call.md, sl-SI: /sl/blog/what-to-log-for-every-mcp-tool-call.md, th-TH: /th/blog/what-to-log-for-every-mcp-tool-call.md, tr-TR: /tr/blog/what-to-log-for-every-mcp-tool-call.md, ur-PK: /ur/blog/what-to-log-for-every-mcp-tool-call.md, vi-VN: /vi/blog/what-to-log-for-every-mcp-tool-call.md, sk-SK: /sk/blog/what-to-log-for-every-mcp-tool-call.md}
---

[AI agenti](https://tajo.io/sr/blog/?category=ai-agents)

# Šta beležiti za svaki poziv MCP alata

Klijent vidi udaljeni MCP server kao jedan neproziran span, a komandna tabla direktorijuma vidi zbirove. Samo je server video poziv. Red koji Tajo MCP serveri upisuju za svaki poziv, polje po polje, šta se iz njega uklanja i šta nije izgrađeno.

logovanje MCP servera

Šta MCP server treba da zabeleži za svaki poziv alata?

Beležite jedan red po pozivu alata, na serveru, jer je server jedino mesto koje je taj poziv videlo. Tajo MCP serveri beleže ko je pozvao (ID ključa, nikada njegovu tajnu), koji server i konektor, alat ako postoji, njegovu klasu efekta, ok ili kratak kod greške, trajanje, veličinu rezultata, ID traga, zapise koje je poziv dotakao, i argumente i odgovor očišćene od tajni i ličnih podataka. Redovi se čitaju pomoću logs.list i logs.get i brišu se posle 30 dana. Čuvaju se odvojeno od revizorskog dnevnika sa heš lancem, u kome se čuvaju odobrenja i heševi njihovih ulaza. Nije izgrađeno: ocena zdravlja, upozorenje na stopu grešaka, pretraga po alatu ili ID-ju traga i izvoz u vaš sopstveni sistem za praćenje.

[Saznajte više](https://tajo.io/sr/blog/what-to-log-for-every-mcp-tool-call/#jedan-red-po-pozivu)

Anthropic je 8. juna 2026. vlasnicima konektora u Claude direktorijumu dao komandnu tablu. Ona prikazuje aktivne korisnike, ukupan broj poziva alata i rang u direktorijumu. Prikazuje „[ocenu zdravlja, stope grešaka i latenciju na prvi pogled, sa raščlanjavanjem grešaka po alatu da biste tačno utvrdili šta ne radi](https://claude.com/resources/articles/observability-for-developers-building-connectors)“.

Godinu dana ranije, Alex Volkov iz kompanije Weights & Biases opisao je isti problem s druge strane. Kada je njegov agent počeo da poziva alate preko MCP-a, „[sva ta opservabilnost na koju sam navikao dok se moj sopstveni kod izvršava od početka do kraja pomalo je potamnela](https://www.youtube.com/watch?v=Lcqat4iP_lE&t=61s)“. Njegov kolega na predavanju, Benjamin Eckel iz kompanije Dylibso, pokazao je zašto. Udaljeni MCP server „[nam se u tragu pojavljuje kao jedan servisni span](https://www.youtube.com/watch?v=Lcqat4iP_lE&t=447s)“ jer radi izvan kontrole pozivaoca.

Oba pogleda stoje izvan servera. Klijent vidi jedan neproziran span. Direktorijum vidi zbirove. Nijedan nije video šta je server upitan, šta je odbio i šta je dotakao. Video je samo server, pa samo server može to da zapiše.

Ovo je ono što Tajo MCP serveri zapisuju, pročitano iz koda koji ih pokreće i [navedeno u dokumentaciji](https://tajo.io/sr/docs/mcp/#mcp-request-log). [Šta je MCP server](https://tajo.io/sr/blog/what-is-an-mcp-server/) objašnjava protokol. Ovaj tekst objašnjava red.

## Jedan red po pozivu

Komandna tabla je pogled lučkog kapetana: brodovi ulaze, brodovi izlaze, koji su kasnili. Dnevnik zahteva je brodski dnevnik, pisan na samom brodu, u trenutku kada se nešto dešava.

Svaki `tools/call` na Tajo serveru radnog prostora i na svakom serveru konektora [završava se jednim redom](https://tajo.io/sr/docs/mcp/#mcp-request-log). Red se upisuje nakon što je odgovor sastavljen, kakav god da je odgovor bio. Poziv odbijen zato što ključ ne sme da piše, ili zato što je krajnja tačka samo za čitanje, dobija red kao i svaki drugi. Isto važi i za poziv alata koji ne postoji.

Evo šta red sadrži i šta odbija da sadrži.

| Polje | Čuva se | Ne čuva se |
| --- | --- | --- |
| Ko | ID API ključa koji je pozvao. Token iz OAuth prijave je takođe ključ. | Tajna ključa ili njegov prefiks. |
| Gde | Server radnog prostora ili server konektora, sa njegovim konektorom i profilom. |  |
| Alat | Naziv, kada server ima alat tog naziva. | Svaki drugi naziv koji klijent pošalje: čuva se kao `(unknown)`. |
| Efekat | `read`, `write`, `send` ili `destructive`: najteži efekat koji poziv može da ima. |  |
| Ishod | `ok`, ili kratak kod greške u snake\_case obliku, kao što je `unknown_tool`. | Opis greške u slobodnom tekstu: sve što nije kod čuva se kao `tool_error`. |
| Trajanje i veličina | Milisekunde od dolaska do odgovora i bajtovi koje je pozivalac primio. |  |
| ID traga | ID zahteva, iz zaglavlja `x-request-id`, `x-trace-id` ili W3C `traceparent`, a inače novi. | Vrednost zaglavlja koja nije heksadecimalna ni UUID. |
| Zapisi | Do 20 ID-jeva zapisa koje je poziv imenovao ili proizveo: kontakt, poruka, odobrenje. | Sami zapisi. |
| Tela | Argumenti i odgovor, [očišćeni](https://tajo.io/sr/docs/mcp/#mcp-request-log), najviše 4 KB svaki. | Tajne, slobodan tekst i lični podaci navedeni ispod. |

Tri od tih odbijanja tiču se klijenta, a ne podataka. Naziv alata, kod greške i ID traga stižu spolja. Svaki se čuva samo u obliku za koji server može da garantuje. Dnevnik koji čuva šta god je pozivalac poslao može se napuniti bilo čim, uključujući i imejl adresu kupca u koloni za naziv alata.

Otvoreno pitanje Benjamina Eckela na kraju predavanja bilo je kako kolektor zna „[da je to poziv MCP alata koji ima grešku](https://www.youtube.com/watch?v=Lcqat4iP_lE&t=906s)“. Na jednom serveru odgovor je kolona. `ok` je false, a kod kaže koja je greška.

## Argumenti: pravilo koje smo preokrenuli

Prigovor je fer, i naš je. Ako beležite argumente, napravili ste drugu kopiju podataka svojih kupaca, izvan dometa svakog zahteva za brisanje. Do 18. oktobra 2026. to je bilo [naše sopstveno pravilo](https://tajo.io/sr/docs/mcp/#mcp-request-log). Dnevnik nije čuvao ni argumente ni telo rezultata, jer i jedno i drugo mogu da nose lične podatke.

To je bila pogrešna razmena. Dnevnik zahteva koji ne može da pokaže šta je poslato i šta se vratilo ne može da odgovori na jedino pitanje zbog kog postoji: zašto poziv mog agenta nije uspeo?

Zato se tela čuvaju, a razlog zbog kog se nisu čuvala rešava se na drugi način. Svako telo prolazi kroz [jedan deterministički prolaz](https://tajo.io/sr/docs/mcp/#mcp-request-log) pre nego što uđe u red čekanja.

- **Nijedna tajna ne preživljava.** Polje čiji naziv ukazuje na token, lozinku, tajnu, potpis, kolačić, sesiju ili dvadesetak sličnih reči zadržava samo `[secret]`. Isto važi i za vrednost u poznatom obliku akreditiva, gde god da se pojavi. To obuhvata bearer tokene, JWT-ove, privatne ključeve, URL-ove sa lozinkom i svaki neproziran niz od 40 ili više znakova ključa.
- **Slobodan tekst se uopšte ne čuva.** Polje nazvano `html`, `text`, `body`, `markdown` ili `content` zadržava samo `[redacted]`. Slobodan tekst sadrži imena i ulične adrese koje nijedan obrazac ne pronalazi.
- **Lični podaci se maskiraju zauvek.** Polje čiji naziv označava lične podatke, kao što su imejl, telefon, ime, adresa ili beleška, zadržava samo `[redacted]`. Imejl adresa, broj telefona, kartica ili IBAN unutar bilo kog drugog stringa se maskira.
- **Tela ostaju mala.** [Stringovi se seku na 512 znakova](https://tajo.io/sr/docs/mcp/#mcp-request-log), liste na 20 stavki, objekti na 50 ključeva, a ugnežđivanje na 6 nivoa. Celo telo se [seče na 4 KB](https://tajo.io/sr/docs/mcp/#mcp-request-log) i označava kao skraćeno.

Dve vrste poziva čuvaju manje. Kontakti koje je razgovor neke osobe doneo iz druge aplikacije beleže se kao oznaka i broj, nikada kao telo. Poziv koji čita dnevnik ne čuva odgovor, jer bi odgovor bio samo drugi redovi dnevnika.

Sada cena. Maskiranje je trajno, a ne šifrovanje ključem koji neko drži. Dnevnik vam ne može pokazati imejl adresu na koju poruka nije isporučena. Pokazuje vam ID kontakta, a kontakt je, pod sopstvenim pravilima, udaljen jedan poziv. Dnevnik je izvan periodičnog brisanja podataka radnog prostora, i zato maskiranje ne može da čeka na to brisanje.

## Zašto dnevnik nije revizorski trag

Tajo već ima [revizorski dnevnik u koji se samo dodaje](https://tajo.io/sr/docs/mcp/#mcp-request-log). Svaki red nosi heš prethodnog reda, pa izmena bilo gde prekida lanac. Zašto ne upisivati pozive alata tamo?

Zato što lanac ima cenu. Svako dodavanje uzima zaključavanje po radnom prostoru i čita prethodni red da bi produžilo lanac. Upisivanje svakog čitanja kroz njega postrojilo bi pozive radnog prostora iza jednog zaključavanja. Takođe bi promene stanja, zbog kojih revizorski dnevnik postoji, zatrpalo hiljadama čitanja.

Zato se dva zapisa dele po pitanju. Dnevnik zahteva kaže šta je agent tražio i šta se dogodilo, [tokom 30 dana](https://tajo.io/sr/docs/mcp/#mcp-request-log). Revizorski dnevnik kaže šta se promenilo, ko je to dozvolio i da li je iko od tada menjao zapis.

Odobrenja su na strani revizije. Na Tajo profilima konektora [alat za predlog priprema deklarisanu radnju, a alat za primenu je izvršava kada bude odobrena](https://tajo.io/sr/docs/mcp/). Ništa ne stiže do provajdera dok predlog ne bude odobren, od strane osobe ili pravila koje je radni prostor uključio. Red poziva predloga među svojim zapisima navodi odobrenje koje je napravio. Samo odobrenje vezano je za SHA-256 heš tačnog ulaza. [Odobrenje pokriva tačno onaj ulaz koji ste videli](https://tajo.io/sr/docs/mcp/agent-specification/): promenite jedno polje i više se ne poklapa. Kada upis stigne, njegov revizorski red čuva heš ulaza i heš odgovora provajdera, nikada vrednosti iz odgovora.

## Koliko red košta

Red je upis u bazu podataka, a upis ima commit. [Do 8. oktobra 2026.](https://tajo.io/sr/docs/mcp/#mcp-request-log) svaki poziv je čekao sopstveni commit pre odgovora, oko 2,6 ms na našem hostu. Za jednog klijenta to je bila četvrtina malog poziva alata.

Sada se red sastavlja kada se poziv završi i stavlja u red čekanja. Pražnjenje upisuje red čekanja [najviše 100 ms kasnije](https://tajo.io/sr/docs/mcp/#mcp-request-log), u jednoj transakciji po radnom prostoru, pa mnogo poziva deli jedan commit. Ništa se u redu ne menja, uključujući i njegovu vremensku oznaku. Ako [čeka 5.000 redova](https://tajo.io/sr/docs/mcp/#mcp-request-log), sledeći poziv čeka pražnjenje umesto da se red odbaci.

Beleženje nikada ne obara poziv. Upis koji ne uspe ponavlja se red po red, a zatim se beleži i odbacuje. Ono što nasilno gašenje procesa izgubi jeste sve što je stajalo u redu čekanja: [najviše poslednjih 100 ms poziva](https://tajo.io/sr/docs/mcp/#mcp-request-log).

## Ponovno čitanje

[`logs.list`](https://tajo.io/sr/docs/mcp/#mcp-request-log) vraća pozive radnog prostora, od najnovijeg, bez tela. Filtrira po vremenu, po ishodu ili HTTP statusu, po izvoru (MCP ili REST API, koji deli istu tabelu) i po API ključu. Podrazumevano vraća 50 po stranici, najviše 100. `logs.get` vraća jedan poziv sa trenutnim nazivom ključa, njegovim statusom, trajanjem, očišćenim zahtevom i odgovorom i zapisima koje je dotakao.

Oba čitaju samo radni prostor pozivaoca. ID reda iz drugog radnog prostora se ne pronalazi.

Greška alata nosi ID zahteva. Kada je taj ID napravio server, ili je stigao kao heksadecimalna vrednost ili UUID, on je ID traga tog reda. Agent koji je dobio grešku može osobi da preda jedinu vrednost koja imenuje poziv.

## Šta je izgrađeno, a šta nije

Izgrađeno, u trenutku pisanja:

- Jedan red po `tools/call` na serveru radnog prostora i na svakom serveru konektora, uključujući odbijene i nepoznate pozive.
- [ID ključa, server, konektor, profil, alat, efekat, ishod, trajanje, veličina rezultata, ID traga i do 20 dotaknutih zapisa](https://tajo.io/sr/docs/mcp/#mcp-request-log).
- [Očišćeni argumenti i odgovori](https://tajo.io/sr/docs/mcp/#mcp-request-log), najviše 4 KB svaki.
- [`logs.list` i `logs.get`](https://tajo.io/sr/docs/mcp/#mcp-request-log), ograničeni na radni prostor, sa čuvanjem od 30 dana.
- Odobrenja vezana za heš ulaza i primenjeni upisi zabeleženi sa heševima ulaza i izlaza u revizorskom dnevniku sa heš lancem.

Nije izgrađeno, i vredi znati pre nego što se oslonite na ovo:

- Nema ocene zdravlja, nema grafikona po alatu i nema upozorenja na rastuću stopu grešaka. Pregled poziva, grešaka i najsporijih trajanja po alatu [postoji za Tajo operatere](https://tajo.io/sr/docs/mcp/#mcp-request-log), ali ni na jednoj površini koju vi možete da otvorite.
- `logs.list` ne može da filtrira po nazivu alata ni po ID-ju traga. Da biste pronašli red iza ID-ja zahteva, suzite pretragu po vremenu i ključu.
- Redovi se ne izvoze u sistem za praćenje koji vi vodite. ID traga čita se samo iz HTTP zaglavlja, a ne iz MCP polja `_meta` koje je predavanje koristilo da [prenese kontekst traga](https://www.youtube.com/watch?v=Lcqat4iP_lE&t=535s).
- [Posle 30 dana red se briše](https://tajo.io/sr/docs/mcp/#mcp-request-log). Nema arhive ni izvoza.
- Ono što je maskirano ne može se povratiti iz dnevnika.
- [Nasilno gašenje može izgubiti poslednjih 100 ms redova](https://tajo.io/sr/docs/mcp/#mcp-request-log).

Predavanje se završilo konstatacijom da opservabilnost u MCP-u „[nije ravnomerno raspoređena](https://www.youtube.com/watch?v=Lcqat4iP_lE&t=841s)“. Komandna tabla nizvodno to ne može da popravi, a ne može ni trag koji se zaustavlja na vratima servera. [Sinhronizaciji koja ne uspe potreban je sopstveni zapis](https://tajo.io/sr/blog/worker-died-sync-didnt/); isto važi i za svaki poziv koji ga je tražio.

Server je video poziv. Niko drugi nije. Zapišite ga tamo.

## Često Postavljana Pitanja

**Šta MCP server treba da beleži za svaki poziv alata?**

Jedan red po pozivu, koji upisuje server: koji API ključ je pozvao, koji server i konektor, naziv alata ako alat postoji, njegova klasa efekta, ok ili kratak kod greške, trajanje, veličina rezultata, ID traga zahteva, ID-jevi zapisa koje je poziv imenovao ili proizveo, i argumenti i odgovor iz kojih su uklonjene tajne i lični podaci. Tajo MCP serveri upisuju taj red za svaki tools/call, uključujući i odbijene pozive, i čuvaju ga 30 dana.

**Da li MCP dnevnik zahteva treba da čuva argumente alata?**

Da, očišćene. Dnevnik bez argumenata ne može da kaže zašto poziv nije uspeo. Tajo nije čuvao tela do 18. oktobra 2026, a sada čuva oba, posle jednog determinističkog prolaza: tajne postaju \[secret\], slobodan tekst i lična polja postaju \[redacted\], imejlovi, telefoni, kartice i IBAN-ovi se maskiraju, a svako telo se seče na 4 KB. Maskiranje je trajno, pa dnevnik upućuje na zapis po ID-ju umesto da ga kopira.

**Zašto držati dnevnik poziva MCP alata odvojeno od revizorskog dnevnika?**

Zato što odgovaraju na različita pitanja po različitoj ceni. Tajo revizorski dnevnik je heš lanac promena stanja, i svako dodavanje uzima zaključavanje po radnom prostoru da bi produžilo lanac. Upisivanje svakog čitanja kroz njega postrojilo bi pozive radnog prostora iza tog zaključavanja i zatrpalo promene među čitanjima. Pozivi alata idu u zasebnu tabelu bez lanca koja se čuva 30 dana; upisi koje poziv pripremi i dalje ostavljaju sopstvene revizorske redove.

## Povezani članci

### [Šta je MCP server? Kako MCP i MCP UI funkcionišu u 2026. godini](https://tajo.io/sr/blog/what-is-an-mcp-server/)

3\. okt 2026. · 14 min čitanja

Korak 1 → Korak 6

### [Grok Bot i Brevo: zatvorite krug povratnih informacija o proizvodu](https://tajo.io/sr/blog/grok-bot-brevo-product-feedback/)

7\. okt 2026. · 4 min čitanja

3 odeljka

### [MCP ili CLI je pogrešno pitanje. Pitajte gde živi stanje.](https://tajo.io/sr/blog/mcp-or-cli-is-the-wrong-question/)

4\. nov 2026. · 7 min čitanja

5 odeljaka
