TL;DR
- An MCP gateway provides centralized visibility into Model Context Protocol communications, preventing point-to-point blind spots between AI agents and external systems.
- Bifrost ranks as the best MCP gateway for observability due to its sub-millisecond logging pipeline, native OpenTelemetry export, and sustained 11-microsecond request overhead at 5,000 RPS.
- Capturing tool execution requires recording five discrete data dimensions on every call: execution metadata, identity context, input schemas, output payloads, and runtime security policy evaluations.
- Native MCP protocol logging via RFC 5424 notifications is insufficient for production audit compliance because it is ephemeral, server-initiated, and lacks caller attribution.
- Bifrost Edge extends centralized gateway telemetry to developer laptops and desktop agents, closing the visibility gap on shadow tool usage.
Production AI agent architectures that connect autonomous models to enterprise tools introduce severe operational risks when tool execution occurs without centralized instrumentation. A 2026 industry survey on AI agent security across regulated industries revealed that 88% of organizations confirmed or suspected security incidents involving autonomous agents, yet only 24.4% reported having comprehensive visibility into agent interactions. The Model Context Protocol (MCP), created by Anthropic, has established an open standard for connecting large language models to external data sources and execution sandboxes. However, managing unmonitored point-to-point connections between clients and servers creates an unmaintainable mesh. Bifrost, an open-source AI gateway written in Go by Maxim AI, acts as a high-performance intermediary that unifies LLM routing with an MCP gateway to provide structured logging, tracing, and access control across all tool invocations. This article evaluates the best MCP gateways for observability and outlines the exact telemetry engineers must capture on every tool call.
What is MCP Observability and Why Standard Logging Fails
MCP observability is the continuous collection, structured aggregation, and real-time analysis of runtime interactions between Model Context Protocol clients, gateways, and backend tool servers. In a standard MCP deployment without a dedicated gateway, client applications such as Claude Code, Cursor, or custom multi-agent frameworks negotiate execution directly with individual MCP servers over standard input/output (stdio) streams, HTTP, or Server-Sent Events (SSE). This point-to-point architecture creates immediate telemetry fragmentation. Because each tool server operates in its own isolated process or network container, logging is left entirely to individual server authors. Some servers write basic text strings to standard error; others emit nothing at all.
The official Model Context Protocol specification includes a logging utility that allows servers to emit structured notifications to clients. This mechanism uses the notifications/message method and adopts the syslog severity levels defined in RFC 5424, spanning eight discrete levels from debug and info to critical and emergency. While useful for real-time console feedback in interactive development, this native protocol logging suffers from four structural flaws that prevent it from serving as an enterprise observability backbone:
-
Client-Controlled Verbosity: Under the MCP specification, the client dictates log verbosity by sending
logging/setLevelrequests. If a client chooses not to set a level or specifies an elevated threshold, critical operational warnings generated by the server are dropped silently at the transport layer. - Ephemeral, Unidirectional Flow: Protocol log notifications stream from server to client over the active session. If the network drops or the client process terminates, log messages are lost forever because the protocol provides no built-in log store or retransmission buffer.
-
Absence of Caller Context: A standalone MCP server understands the parameters passed to its
tools/callmethod, but it has no cryptographic visibility into the end-user identity, the virtual key allocated to the request, or the parent workflow trace ID generated by an upstream orchestration platform. - No Guarantee of Delivery: Servers that implement stateless HTTP transports cannot reliably push asynchronous log notifications back to clients unless an open, persistent Server-Sent Events connection is maintained simultaneously.
An MCP gateway eliminates these structural flaws by sitting in the request path. Instead of relying on individual servers to self-report, the gateway intercepts every incoming JSON-RPC request and outgoing response. It normalizes telemetry into structured records, correlates tool calls with the LLM prompts that triggered them, redacts sensitive payload variables, and exports spans to standard telemetry collectors.
The Core Telemetry Matrix: What to Capture on Every Tool Call
Capturing an auditable, actionable record of autonomous agent operations requires collecting structured metadata across every stage of the tool execution lifecycle. When an LLM generates a tool call, a gateway must not treat the event as a generic HTTP exchange. Instead, it must log five distinct dimensions: contextual identity, invocation parameters, schema validations, execution responses, and runtime governance decisions.
| Telemetry Dimension | Required Fields | Operational Significance |
|---|---|---|
| Identity & Routing |
virtual_key_id, user_id, client_app, upstream_server, protocol_transport
|
Maps actions to responsible human users, allocated budgets, and network targets. |
| Trace Context |
trace_id, span_id, parent_span_id, session_id, agent_turn_index
|
Reconstructs multi-turn conversational trajectories across distributed agent pipelines. |
| Invocation Schema |
tool_name, arguments_json, sanitized_arguments, schema_validation_status
|
Records exact model intent while verifying arguments match advertised tool definitions. |
| Execution Performance |
duration_ms, queue_wait_ms, status_code, response_bytes, digest_sha256
|
Monitors tool latency degradation, infrastructure bottlenecks, and payload integrity. |
| Governance & Safety |
policy_action, guardrail_flags, redacted_tokens_count, budget_consumed
|
Verifies compliance against data access control, rate limits, and content inspection. |
1. Identity and Contextual Attribution
Every log record must identify the principal initiating the action. Traditional access logs capture only an IP address or proxy token. An MCP-aware gateway links each tool call to a specific virtual key, the downstream user identity verified via OpenID Connect (OIDC), the calling client application (such as Cursor or Claude Code), and the destination server name. This attribution allows security teams to answer who invoked a tool and which service account permitted the action.
2. Distributed Tracing Identifiers
Autonomous agents often execute chains of ten or more sequential tool invocations to complete a single task. Telemetry emitted on an individual tool execution must correlate directly with the broader conversation. In accordance with the OpenTelemetry Semantic Conventions for Generative AI, the gateway must inject and record a unified trace_id, a dedicated span_id representing the tool operation, and custom attributes detailing the session_id and the turn index within the agent loop.
3. Sanitized Arguments and Input Schema Validation
Recording input parameters is mandatory for forensic debugging, yet raw tool inputs regularly contain private data, session tokens, or API credentials. The gateway must execute schema validation against the registered MCP tool definition while simultaneously running regex or machine-learning detection passes to mask sensitive parameters before persistence. Storing an unmasked API key in an audit log creates a compliance failure under GDPR and SOC 2 frameworks.
4. Response Payloads and Cryptographic Digests
Tool outputs can be enormous, sometimes returning megabytes of structured JSON, file listings, or database query records. To maintain high logging throughput without unbounded storage costs, the gateway must record the execution status (success or failure), the total response byte size, and a cryptographic hash (such as SHA-256) of the raw output payload. In regulated environments, storing a deterministic hash ensures non-repudiation: auditors can verify that data retrieved by an agent has not been altered post-execution.
5. Policy Enforcement and Security Guardrails
Modern agent governance requires recording not just what happened, but what was evaluated. If a tool call passed through content safety filters, secret scanning algorithms, or budget meters, the log entry must capture those outcomes. For example, if an agent attempts an unauthorized file deletion via an MCP filesystem server, the gateway must log the rejected call along with the specific policy rule that blocked execution.
{
"timestamp": "2026-09-16T13:15:22.842Z",
"trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
"span_id": "00f067aa0ba902b7",
"parent_span_id": "5fb397be34d23b0f",
"session_id": "sess_98234ab81c",
"client": {
"app_name": "claude-code",
"virtual_key_id": "vk_dev_infrastructure_prod",
"user_email": "engineer@company.internal",
"caller_ip": "10.140.2.18"
},
"mcp": {
"server_name": "production-database-tools",
"transport": "sse",
"method": "tools/call",
"tool_name": "execute_readonly_query",
"input_schema_valid": true,
"arguments": {
"query": "SELECT id, name, created_at FROM users WHERE org_id = 42;",
"timeout_sec": 5
}
},
"execution": {
"status": "ok",
"duration_ms": 14.82,
"gateway_overhead_us": 11,
"response_bytes": 1042,
"response_digest": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
"governance": {
"policy_decision": "allow",
"guardrails_evaluated": ["secrets_detection", "sql_injection_filter"],
"rate_limit_remaining": 4982,
"cost_usd": 0.00004
}
}
Key Criteria for Evaluating MCP Gateways in Observability
Selecting an MCP gateway requires evaluating how effectively the proxy captures runtime events without introducing operational drag. In high-throughput environments where agents execute dozens of parallel tool requests, an inefficient gateway becomes an infrastructure bottleneck. Engineering teams must evaluate candidate platforms against four objective technical criteria:
- Processing Overhead and Latency Added: Every hop through a proxy introduces delay. If a gateway adds 10 to 50 milliseconds to inspect payloads, agents executing multi-step workflows suffer severe degradation. The gateway must process, inspect, and route JSON-RPC traffic in sub-millisecond intervals.
- Asynchronous Telemetry Pipeline: Logging must never sit directly in the synchronous critical path of request execution. A gateway must buffer and flush trace spans, access logs, and metrics asynchronously to prevent log-collector outages from causing downstream tool timeouts.
- Open Standards Integration: Proprietary logging interfaces lock engineering teams into vendor silos. An enterprise gateway must natively export metrics in Prometheus format and traces via standard OpenTelemetry (OTLP) gRPC/HTTP protocols to platforms like Grafana, Datadog, or Honeycomb.
- Zero-Trust Policy Enforcement and Default-Deny Architecture: Observability without runtime governance leaves infrastructure vulnerable to confused deputy attacks and unauthorized operations. The gateway must support default-deny tool access, virtual key scoped permissions, and granular filtering over which client can execute which tool.
Top MCP Gateways for Observability Compared
Engineering teams evaluating dedicated proxy solutions for Model Context Protocol traffic encounter diverse approaches, ranging from high-throughput AI gateways to enterprise API proxies adapted for LLM tooling. The table below compares the leading production options for MCP logging and observability.
| Gateway Platform | Primary Architecture | Gateway Overhead | Native OTel / Prometheus | Dedicated MCP Tool Call Logs | Execution Control Modes |
|---|---|---|---|---|---|
| Bifrost | Go-based compiled binary | 11 µs (at 5,000 RPS) | Native (Prometheus + OTLP) | Full structured payloads, digests, and audit trails | Standard, Agent Mode, Code Mode |
| Kong AI Gateway | Lua / OpenResty reverse proxy | 2 to 15 ms | Via external plugins | Basic access logs (MCP method/primitive) | Standard proxy pass-through |
| Cloudflare AI Gateway | Edge worker network | 5 to 30 ms | Proprietary Cloudflare analytics | Request logs without stdio transport | Standard proxy pass-through |
1. Bifrost
Bifrost ranks first as the best MCP gateway for observability and production tool execution. Built in Go by Maxim AI, Bifrost is an open-source AI gateway engineered specifically for enterprise workloads that require high throughput, granular security controls, and deep observability. In sustained benchmarks conducted at 5,000 requests per second, Bifrost adds only 11 microseconds of overhead per request, ensuring that instrumentation never slows down agent execution pipelines.
Bifrost functions as both an MCP client and an MCP server through a unified runtime. It connects outward to external tool servers across all standard MCP transports (stdio, HTTP, and Server-Sent Events) while presenting a single, unified gateway URL to downstream client applications like Claude Desktop, Cursor, or custom orchestration frameworks. This design allows Bifrost to capture full bidirectional visibility over all model-to-tool communications.
+-------------------------------------------------------------+
| Downstream Clients |
| (Claude Code, Cursor, Custom Agent Frameworks) |
+-------------------------------------------------------------+
|
v (OpenAI-compatible / MCP JSON-RPC)
+-------------------------------------------------------------+
| BIFROST |
| - 11 µs Gateway Overhead |
| - Virtual Keys & Deny-by-Default Tool Filtering |
| - Asynchronous OpenTelemetry & Prometheus Emitter |
| - HMAC-Signed Audit Logging Engine |
+-------------------------------------------------------------+
|
+----------------------+----------------------+
| (stdio) | (HTTP/REST) | (SSE)
v v v
+---------------+ +---------------+ +---------------+
| Filesystem | | Production DB | | External API |
| MCP Server | | MCP Server | | MCP Server |
+---------------+ +---------------+ +---------------+
The gateway records comprehensive execution data for every tool call, including input parameters, output structures, token consumption, execution latencies, and security policy outcomes. Because Bifrost separates administrative audit logs from runtime request telemetry, infrastructure teams can securely stream execution metrics to Prometheus and OpenTelemetry collectors while routing tamper-evident, HMAC-signed audit logs to long-term compliance storage.
Beyond basic execution logging, Bifrost provides advanced execution architectures that directly optimize observability and cost. With Agent Mode, teams configure autonomous auto-approval for non-destructive, read-only tools while enforcing human-in-the-loop review for mutating operations. In Code Mode, models write Python code executed in a secure sandbox to orchestrate multiple tools, cutting token consumption by more than 50% and reducing latency by 40% compared to traditional back-and-forth tool calling.
Best for: Enterprise engineering teams running mission-critical agent workflows that demand ultra-low-latency execution, native OpenTelemetry export, comprehensive audit compliance, and unified governance across both LLMs and MCP servers.
2. Kong AI Gateway
Kong AI Gateway extends the established Kong API management platform to handle artificial intelligence workloads and Model Context Protocol endpoints. By building upon Kong's NGINX-based core, it allows organizations that already run Kong across their enterprise architecture to route MCP traffic through existing gateway clusters.
From an observability perspective, Kong captures protocol-level metadata by parsing JSON-RPC messages and generating access log records that identify the api_type, mcp_method, and the invoked primitive name. Teams can route these access logs to enterprise SIEM platforms using Kong's extensive library of logging plugins.
However, Kong operates primarily as a traditional REST/HTTP reverse proxy. It does not provide native management for local stdio-based MCP servers, and parsing complex multi-step MCP agent loops requires configuring multiple external Lua plugins. In addition, the architectural overhead of the OpenResty processing pipeline introduces 2 to 15 milliseconds of proxy latency per request, which compounds across deep, multi-turn agent execution trees.
Best for: Organizations with existing, widespread Kong Enterprise API gateway deployments that require basic MCP traffic logging alongside standard REST services.
3. Cloudflare AI Gateway
Cloudflare AI Gateway operates as an edge-native proxy designed to deliver caching, rate limiting, and basic observability for artificial intelligence requests. Sitting on Cloudflare's global anycast network, it intercepts requests routed through its endpoints and presents usage metrics inside the Cloudflare dashboard.
For observability, Cloudflare provides immediate visibility into request counts, aggregate token consumption, operational costs, and client error codes. Its logging dashboard enables developers to inspect recent requests, search historical parameters, and monitor high-level traffic trends without provisioning local database storage.
Despite its ease of deployment, Cloudflare AI Gateway has notable limitations for production MCP architectures. Because it operates entirely in the public cloud, it cannot natively connect to or monitor local stdio MCP servers running inside developer workstations or private Kubernetes pods. Furthermore, its telemetry export capabilities rely heavily on Cloudflare's proprietary log streams rather than native, pull-based Prometheus exposition, and it lacks fine-grained schema validation for individual MCP tool calls.
Best for: Developers and startups seeking hosted, zero-maintenance analytics and edge caching for cloud-hosted AI APIs and remote HTTP-based MCP services.
How Bifrost Implements Zero-Overhead MCP Logging and Tracing
Maintaining complete observability across high-throughput agent deployments often forces teams to compromise between visibility depth and execution speed. Bifrost resolves this trade-off through a high-concurrency Go architecture designed for zero-allocation request paths and non-blocking background telemetry pipelines.
Non-Blocking Asynchronous Telemetry Pipeline
When an agent submits an inference or tool execution request to Bifrost, the gateway evaluates security policies and routes the request synchronously. However, the logging subsystem operates entirely out-of-band. Bifrost dispatches execution records to an internal, lock-free ring buffer managed by worker goroutines. This design ensures that serializing large payload digests, computing token accounting metrics, and flushing spans to OpenTelemetry collectors never adds latency to the client response path.
// Conceptual Go snippet representing Bifrost's asynchronous event dispatch
type MCPTelemetryEvent struct {
TraceID string `json:"trace_id"`
VirtualKey string `json:"virtual_key"`
ToolName string `json:"tool_name"`
DurationMicros int64 `json:"duration_us"`
InputPayload map[string]interface{} `json:"input_payload"`
SecurityDigest string `json:"security_digest"`
}
func (gw *Gateway) RouteToolCall(ctx context.Context, call *ToolCall) (*ToolResult, error) {
startTime := time.Now()
// 1. Synchronous policy check & validation (sub-microsecond)
if err := gw.EnforceVirtualKeyPolicy(call.KeyID, call.ToolName); err != nil {
return nil, err
}
// 2. Forward execution to upstream MCP server
result, err := gw.mcpClient.Execute(ctx, call)
// 3. Dispatch telemetry to lock-free ring buffer out-of-band
gw.telemetryQueue.TryEnqueue(&MCPTelemetryEvent{
TraceID: call.TraceID,
VirtualKey: call.KeyID,
ToolName: call.ToolName,
DurationMicros: time.Since(startTime).Microseconds(),
SecurityDigest: computeSHA256(result.Bytes()),
})
return result, err
}
Distributed Tracing via OpenTelemetry
Bifrost natively integrates with the OpenTelemetry (OTLP) standard, generating structured spans for every model completion, tool lookup, and execution event. When an agent makes a call, Bifrost extracts incoming W3C trace context headers or initializes a new trace root. It records detailed span attributes adhering to open standards:
-
gen_ai.system: The model provider (such as Anthropic, OpenAI, or AWS Bedrock). -
mcp.tool.name: The fully qualified primitive name (such asfilesystem_read_file). -
mcp.server.transport: The transport type (stdio,http, orsse). -
mcp.execution.status: The final status code returned by the tool server.
These spans can be pushed directly to any OTLP-compatible collector or visualized in Datadog via the native Datadog connector.
Native Prometheus Metrics
For infrastructure monitoring and real-time alerting, Bifrost exposes pull-based metrics in standard Prometheus exposition format. Key metrics emitted for MCP traffic include:
-
bifrost_mcp_tool_calls_total: A counter tracking invocations segmented bytool_name,virtual_key, andstatus. -
bifrost_mcp_tool_duration_seconds: A high-resolution histogram tracking tool execution latencies across p50, p95, and p99 percentiles. -
bifrost_mcp_active_connections: A gauge tracking open Server-Sent Events and stdio streams connected to upstream servers.
Beyond infrastructure monitoring, Bifrost applies centralized governance and security controls (virtual keys, budgets, guardrails, and audit logs) centrally, and Bifrost Edge extends that same governance and security to AI traffic on employee machines, with endpoint enforcement on each device.
Endpoint MCP Observability: Closing the Shadow AI Gap with Bifrost Edge
A centralized gateway captures all traffic intentionally routed through it. In enterprise environments, however, developers regularly run coding assistants, terminal agents, and local desktop applications that bypass central gateways entirely. A developer might configure Claude Desktop or Cursor to connect directly to local filesystem or database MCP servers using personal API tokens. This practice creates shadow AI: unmonitored tool execution that leaks proprietary code, accesses unapproved databases, and generates zero telemetry for security teams.
The solution requires pairing the centralized gateway with endpoint governance. Bifrost Edge, an endpoint agent currently in alpha, runs natively on macOS, Windows, and Linux devices across an enterprise fleet. Bifrost Edge sits between local desktop applications and the tools they invoke, routing all endpoint AI traffic transparently through the central Bifrost gateway control plane.
+-------------------------------------------------------------+
| Employee Laptop |
| |
| +-------------------+ +-------------------+ |
| | Claude Desktop | | Cursor IDE | |
| +-------------------+ +-------------------+ |
| \ / |
| v v |
| +-------------------------------------------+ |
| | BIFROST EDGE | |
| | - Local App & MCP Server Discovery | |
| | - Endpoint Policy Enforcement | |
| | - Device Identity Sync via Corporate SSO | |
| +-------------------------------------------+ |
+------------------------------|------------------------------+
| (Secure Governed Egress)
v
+-------------------------------------------------------------+
| Central Bifrost Gateway Cluster |
| |
| - Virtual Key Enforcement - OTLP Traces & Prometheus |
| - Content Safety Guardrails - HMAC-Signed Audit Logs |
+-------------------------------------------------------------+
With MCP governance enabled on Bifrost Edge, the agent automatically discovers every MCP server configured inside tools like Claude Code, Cursor, and Gemini CLI. It builds a real-time, fleet-wide inventory in the gateway administrative console. Administrators can enforce global allow-lists and deny-lists on specific MCP servers: if an engineer connects an unapproved or insecure community MCP tool, Bifrost Edge blocks execution on the device before any sensitive payload leaves the workstation.
Furthermore, every tool call initiated on an employee laptop inherits the organization's centralized guardrails and audit policies. Prompts, arguments, and returned results are scanned for credentials via native secrets detection and filtered for sensitive customer records before hitting model APIs. By combining the high-speed processing of the central Bifrost gateway with the fleet-wide reach of Bifrost Edge, organizations achieve 100% visibility over model-to-tool operations across both cloud clusters and developer workstations.
Frequently Asked Questions
What is the difference between MCP request logs and audit logs?
MCP request logs record operational runtime metrics, including trace IDs, request latencies, tool argument schemas, and HTTP status codes, optimized for high-volume streaming into monitoring platforms like Prometheus and Datadog. In contrast, audit logs provide an immutable, compliance-oriented trail of administrative events and governance actions, such as virtual key generation, policy updates, and rejected tool calls, often protected by HMAC signatures to satisfy SOC 2 and GDPR compliance.
Why are native Model Context Protocol log notifications not enough for monitoring?
Native Model Context Protocol log notifications rely on the notifications/message method, which is ephemeral, server-initiated, and strictly bounded by the active client connection. They do not record cryptographic hashes of outputs, they lack unified trace IDs across multi-turn agent conversations, and they cannot capture client identity or budget allocations enforced by an external gateway.
How does an MCP gateway handle sensitive data in tool arguments?
An MCP gateway inspects input arguments against data loss prevention rules and secrets detection patterns before persisting logs. Sensitive variables, such as private keys, database passwords, or personal identifying information, are redacted or masked in the stored telemetry while the validated payload is routed safely to the destination tool server.
Does logging every tool call add noticeable latency to AI agent execution?
When logging is implemented naively in synchronous request handlers, payload serialization and network writes can add 10 to 50 milliseconds per invocation. However, an optimized gateway like Bifrost uses an asynchronous, lock-free ring buffer that dispatches telemetry out-of-band, preserving a sustained gateway overhead of just 11 microseconds at 5,000 RPS.
Can an MCP gateway trace tools that connect over stdio rather than HTTP?
Yes. An advanced gateway like Bifrost acts as a local or containerized MCP client that spawns and manages stdio child processes directly. The gateway intercepts the standard input and output pipes, parses the JSON-RPC messages passing across the process boundary, and emits standard OpenTelemetry spans and Prometheus metrics identical to network-based HTTP or SSE connections.
What happens when an autonomous agent invokes an unapproved MCP tool?
Under a default-deny governance architecture, the gateway intercepts the unapproved tool execution request, rejects the call before it reaches any backend server, and returns an informative error to the calling model. Simultaneously, the gateway logs a security policy violation event containing the caller identity, tool name, and timestamp for administrative review.
Recommended Next Steps
Establishing rigorous observability over Model Context Protocol traffic is essential for moving autonomous AI agents from experimental prototypes to secure enterprise deployments. Without centralized telemetry, engineering teams remain blind to silent tool failures, shadow agent usage, and accidental data exfiltration.
Bifrost delivers the fastest, most comprehensive platform for securing and observing MCP ecosystems, combining an ultra-low 11-microsecond overhead with native OpenTelemetry support, strict access controls, and fleet-wide endpoint governance. Teams evaluating AI gateways can request a Bifrost demo or review the open-source repository to begin auditing tool execution today.
Sources
-
Model Context Protocol Tools Specification: Official standard detailing tool discovery, execution interfaces, and JSON-RPC lifecycle requirements (
https://modelcontextprotocol.io/). -
Model Context Protocol Logging Specification: Official standard defining the
notifications/messageprotocol utility and RFC 5424 severity mappings (https://modelcontextprotocol.io/specification/2024-11-05/server/utilities/logging). -
OpenTelemetry Semantic Conventions for Generative AI Operations: Telemetry specifications for instrumenting model execution, tool calls, and agent spans (
https://opentelemetry.io/docs/specs/semconv/gen-ai/). -
RFC 5424 (The Syslog Protocol): Internet Engineering Task Force standard defining system event severity levels and message structure (
https://datatracker.ietf.org/doc/html/rfc5424). -
Bishop Fox Security Research on MCP Server Visibility: Empirical analysis of logging gaps, attack surfaces, and visibility deficits across enterprise Model Context Protocol deployments (
https://bishopfox.com/blog/logging-and-visibility-in-mcp-servers).



Top comments (0)