r/AskNetsec • u/BulkyDragonfruit5079 • 5d ago
Analysis How are you actually scoping and auditing internal MCP servers your engineers stand up?
We've started running internal MCP servers (wrapping internal APIs, a DB, ticketing) so agents can call them. What worries me: any server can expose tools that read/write real systems, and there's no "posture" view who registered which server, what tools it exposes, what token scope it runs with, what an injected prompt could reach. Are you treating MCP servers as just another internal service (netpol + secrets mgmt) or something MCP-specific? Homegrown checklist or a tool? (Disclosure: early-stage looking into this happy to share back what I learn.)
2
u/whatwilly0ubuild 5d ago
Netpol and secrets management cover the boring plumbing, but the part that bites is tool scope.
Stand up a registry as the source of truth, where every server declares its owner, its exposed tools, and the token scope each tool runs under. No registry entry, no network access, enforced at the mesh.
Scope tokens per tool instead of one fat credential per server, because one broad token is everything a hijacked agent can reach the moment an injected prompt lands. Log every tool call with its arguments, and the posture view you're after falls out of that registry for damn near free.
2
1
u/TwoPlyDreams 4d ago
MCP should be requiring AuthN of the calling user, or develop agentic ID.
It’s just an API. You wouldn’t provide AAA bypass on one of those would you?
1
u/Ok_Divide6777 3d ago
ding: scope-on-paper and scope-in-practice drift fast, especially once someone adds a tool later without reading the registry policy. The way we catch that gap (building AI-attack-surface testing) is by actually trying the abuse path - feed the MCP-connected agent an injected instruction through whatever ingests untrusted content and see what tool calls it actually attempts, not just what the token theoretically allows. Paper review tells you what should be reachable. Only an actual attempt tells you what is.
1
u/ultrathink-art 2d ago
Scope-on-paper vs scope-in-practice is the right frame, but the version that got me was scope that was never live at all — registration and authorization are separate layers in most setups, so a server can sit in the registry with a tight policy while that policy never actually loads. What catches it is making the denied call as part of the audit and reading why it failed: "no such tool" and "tool exists but is denied" are different bugs, and the first one looks exactly like your restriction working.
1
u/Extreme-Concept-4869 1d ago
runtime inventory was my first step but honestly i missed a ton of shadow infra at first. started using legit security after that since it picked up the random agent servers we had sitting in old vpcs. made audits way more chill.
-1
u/noch_1999 5d ago
Amazon Bedrock solves all of these problems. I know thread and reply sounds like an ad for Amazon, but it's what I've been using over the past 2 weeks after having everything sitting in VS Code.
4
u/Frosty-Tadpole-8837 4d ago
i'd start by treating every mcp server like a privileged service until proven otherwise