Academy · MCP security

What is an MCP server?

An MCP server exposes tools and data to AI agents through the Model Context Protocol, and calls other systems using its own credentials.

.vscode/mcp.json
{
  "servers": {
    "crm": {
      "command": "npx",
      "args": ["-y", "crm-mcp-server"],
      "env": { "CRM_TOKEN": "••••••" }
    }
  }
}
KEY TAKEAWAYS
  • An MCP server exposes tools to agents and calls other systems with its own credential.
  • Every agent allowed to call it inherits that credential reach.
  • Local and remote servers fail differently: a token on a machine, or a breach at an operator.
  • Its tool descriptions are agent input, which makes provenance an access question.

Published Last reviewed

MCP SERVER

In practice

From a security point of view an MCP server is a non-human identity. Whatever credentials sit behind its tools, such as API keys, OAuth tokens or service accounts, define what an agent using it can reach. A server shared by several agents concentrates their access.

See MCP server access and our MCP security checklist.

DEFINITION

An MCP server exposes tools and data to AI agents through the Model Context Protocol, and calls other systems using its own credentials.

IN PRACTICE

The parts, and where each one fails.

Four parts, each of which is somebody else problem in a typical review.

PartWhat it isHow it fails
ToolsWhat the agent can call.Broader than the task needs.
CredentialWhat the tools authenticate with.One credential wide enough for every tool.
TransportLocal process, or remote over HTTP.Plain text token, or an operator breach.
DescriptionsHow the agent decides what to call.Untrusted text entering agent context.
HOW IT WORKS

How it works. Step by step.

The parts that make it up, in an environment with AI agents.

01Tools

The server exposes tools and data an agent can call.

02Credentials

Each tool calls other systems with the server’s own keys or tokens.

03Shared use

Several agents can call the same server and inherit its access.

04Reach

Whatever those credentials reach is reachable by every agent using it.

EXAMPLE

What it looks like in Elmoz

A real path shape, drawn the way the Elmoz security graph shows it.

Security GraphFocus: Cursor agentAll assetsIdentitiesData stores
ATTACK PATH1 API call · 9 seconds
Cursor agentClaude Opus · staging task!Unrelated fileHolds the tokenStagingAssigned environment!Railway CLI tokenCreated for domainsCustom domainsIntended use!All environmentsToken scope: root1GraphQL APIvolumeDelete · no confirm3Findings3 issuesProduction volumeRailway volumeReservationsCustomer data!Volume backupsSame volume
FAQ

Questions, answered.

Short answers about MCP server.

Is an MCP server a non-human identity?

In practice yes. It calls other systems with credentials such as API keys, OAuth tokens or service accounts, and those credentials define what it can reach.

What is the difference between local and remote MCP servers?

Local servers usually run on the user’s machine over stdio and use credentials from local config. Remote servers are reached over HTTP and handle authentication themselves, often with OAuth.

How do I secure an MCP server?

Scope the credentials behind each tool, avoid long-lived static keys, give shared servers their own identity per agent where possible and review which agents can call it.

See what your agents can reach. Before someone else does.

Book a demo and we walk through the access paths in an environment like yours.