TL;DR: MCP servers can see request volume and latency, but not reliably distinguish Claude Code, Cursor, cloud-hosted agents, or spoofed clients from one another, according to Fingerprint. That visibility gap turns MCP analytics into an identity problem, not a dashboard problem, because user agent strings and HTTP metadata alone do not establish trustworthy caller identity.
NHIMG editorial — based on content published by Fingerprint: AI tools are calling MCP servers, but identity attribution remains unclear
By the numbers:
- Only 18% of MCP server deployments implement any form of access scoping for tool permissions.
- 53% of MCP servers expose credentials through hard-coded values in configuration files.
Questions worth separating out
Q: How should security teams classify AI tools calling an MCP server?
A: Use identity states that reflect trust, not just traffic labels.
Q: Why do user-agent strings fail as a governance signal for MCP traffic?
A: Because they are self-reported, often generic, and easy to imitate.
Q: How can teams tell whether MCP usage is human-led or autonomous in practice?
A: Look at network context, verified identity, and execution environment together.
Practitioner guidance
- Classify caller identity before you optimise telemetry Record verified, signed, spoofed, and unknown states next to each MCP request so product and security teams can separate real adoption from impersonation.
- Treat User-Agent as a hint, not a control Use User-Agent only as a secondary tag alongside source IP, ASN type, and verification status, because self-reported client strings are easy to fake.
- Scope MCP tools by trust tier Separate local developer clients from hosted agent runners and unknown automation, then assign different tool permissions to each group instead of one broad policy.
What's in the full article
Fingerprint's full article covers the operational detail this post intentionally leaves for the source:
- Step-by-step request inspection code for preserving raw headers, blanking credentials, and forwarding MCP metadata safely.
- A working integration pattern for posting request metadata to the Collect Intelligence endpoint and recording bot_info and ip_info.
- Examples of response fields that distinguish signed, verified, spoofed, and unknown identities in MCP traffic.
- Operational guidance for keeping analytics off the request path so telemetry never blocks tool execution.
👉 Read Fingerprint's analysis of AI tool identity visibility for MCP servers →
MCP server analytics: can you trust the identity behind tool calls?
Explore further
MCP visibility gaps are really NHI governance gaps. The article shows that teams can observe traffic volume and tool names while still lacking trustworthy attribution for the calling identity. That is the same failure mode that appears whenever machine identity is reduced to a string rather than a verifiable subject. The practitioner conclusion is straightforward: if the caller cannot be trusted, the telemetry cannot be trusted either.
A few things that frame the scale:
- 53% of MCP servers expose credentials through hard-coded values in configuration files, according to The State of MCP Server Security 2025.
- Hard-coded credentials and opaque caller identity often appear together in NHI environments, which is why machine trust cannot be inferred from endpoint telemetry alone.
A question worth separating out:
Q: What should IAM teams do when an MCP client fails identity verification?
A: Treat the event as a governance signal, not just a noisy metric. Quarantine the caller from privileged tools, review the claimed identity against the verified state, and investigate whether the request reflects spoofing, misconfiguration, or an unmanaged automation path. The goal is to protect tool access before trust assumptions spread further.
👉 Read our full editorial: AI tool identity visibility is the missing layer in MCP analytics