MCP field guide

What Is an MCP Server?

A practical guide to the programs that connect AI applications with tools, data, and real-world actions through the Model Context Protocol.

Reviewed July 19, 202610 minute readBased on the official MCP specification

The short answer

An MCP server gives an AI application a standard way to use an outside capability.

An MCP server is a program that exposes tools, data, or reusable workflows to an AI application through the Model Context Protocol. Instead of building a different integration for every AI product, a service can implement MCP once and be discovered by compatible clients.

The server does not have to be a large cloud service. It can be a local command that reads one folder, a remote service that connects to a SaaS API, or an internal gateway that provides carefully scoped access to company systems. “Server” describes its protocol role, not where it runs.

Portable integration

A compatible host can discover the same server without every vendor inventing a new plugin contract.

Structured discovery

Names, descriptions, schemas, and capabilities tell the client what is available before it makes a request.

Clear boundaries

Each server has a focused connection and permission surface instead of receiving unrestricted access to the host.

Architecture

Host, client, server, and the system behind it

People often call the AI app the client, but MCP uses more precise roles. The host is the application you interact with; it creates a dedicated MCP client for each server connection.

MCP host

Claude, ChatGPT, an IDE, or another AI app

MCP client

Maintains one server connection

MCP server

Advertises capabilities and handles requests

External system

Files, APIs, databases, browsers, or services

A host can connect to multiple servers. It normally creates a separate client connection for each one, keeping capabilities and security boundaries isolated.

Core primitives

What an MCP server can expose

During initialization, the client and server negotiate capabilities. A server can implement one or more of these primitives; it does not need to provide all three.

Tools

Model-controlled

Executable functions the AI can call, such as searching documentation, querying a database, creating an issue, or sending a message.

tools/list → tools/call

Resources

Application-controlled

Data that an application can read and add to context, such as file contents, database schemas, records, logs, or API responses.

resources/list → resources/read

Prompts

User-controlled

Reusable instruction templates that package a known workflow, expected inputs, and guidance for using a server well.

prompts/list → prompts/get

Transports

Local and remote MCP servers

The same protocol concepts apply in both cases. The main difference is how the client starts or reaches the server, and where credentials and data cross a boundary.

Local server

Usually launched by the host as a child process and connected over stdio. It can work with local files or developer tools without exposing a network endpoint.

  • Low network overhead
  • Runs with the local user’s permissions
  • Credentials commonly come from the environment

Remote server

Runs on internet-accessible infrastructure and commonly uses Streamable HTTP, with optional streaming. It can serve multiple users and integrate with hosted services.

  • No local package installation
  • Requires a trusted HTTPS endpoint
  • Often uses OAuth or another access-control flow

Lifecycle

What happens when an AI uses an MCP tool

  1. 1

    Connect and initialize

    The client and server exchange protocol versions, identity information, and supported capabilities.

  2. 2

    Discover capabilities

    The client lists the server’s tools, resources, or prompts and makes their descriptions available to the host.

  3. 3

    Choose an action

    The user or model selects a capability. For a tool, the client sends structured arguments that follow its input schema.

  4. 4

    Execute within the server

    The server validates the request, checks authorization, calls the underlying system, and builds a structured result.

  5. 5

    Return the result

    The client gives the result to the host, which can show it to the user or use it as context for the next model response.

Configuration

A local MCP server configuration example

Client configuration formats differ, but local servers commonly define a command, its arguments, and optional environment variables. This example grants a filesystem server access to one directory.

mcp-config.jsonExample
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/you/Documents"
      ]
    }
  }
}
Only grant directories and credentials the workflow actually needs. A local server inherits the permissions of the account that launches it.

Troubleshooting

Common MCP server setup problems

Most connection failures happen before the model is involved. Check the process, transport, credentials, and capability exchange in that order.

The server does not appear

Validate the client config, use an absolute executable path when necessary, run the command manually, and restart clients that only load server configuration at launch.

The process starts but initialization fails

Keep protocol messages on stdout for stdio servers and send diagnostics to stderr. Then compare the client, SDK, and server protocol versions.

Authentication or permission errors

Confirm environment variables, OAuth scopes, allowed filesystem paths, and the account being used. A successful connection does not guarantee access to every operation.

Tools are listed but calls fail

Inspect the tool input schema and server logs, then test the underlying API or service directly for validation errors, rate limits, and expired credentials.

Use cases

Common MCP server examples

A useful server usually has a focused responsibility and a clear permission boundary.

Other common categories include source control, issue tracking, cloud infrastructure, observability, calendars, messaging, design tools, search, and internal knowledge systems.

Selection guide

How to choose an MCP server

Capability fit

Confirm it exposes the exact tools or resources your workflow needs, not just a broad category match.

Client compatibility

Check the supported transport, setup format, authentication method, and any platform requirements.

Source and maintenance

Prefer an official or clearly maintained repository with releases, documentation, and a visible issue history.

Permission scope

Understand which files, accounts, APIs, and write actions become available after connection.

Output quality

Test whether tool descriptions, schemas, errors, and returned data are clear enough for an AI client to use reliably.

Operational limits

Review rate limits, pricing, latency, data retention, and whether the server can be self-hosted if required.

Security

Treat every MCP server as a real integration

MCP standardizes communication; it does not make every server or requested action trustworthy. The host, server, and user still need explicit security controls.

Before you connect

  • Review the publisher, source code, package, and recent maintenance history.
  • Use least-privilege accounts, scopes, filesystem paths, and API credentials.
  • Keep secrets in environment variables or an approved secret store—not in shared config files.
  • Require confirmation for writes, payments, messages, deployments, and destructive actions.
  • Test with non-sensitive data and inspect tool descriptions before enabling autonomous use.
  • For remote servers, verify HTTPS, authorization behavior, data handling, and retention policies.

Terminology

MCP server vs. API, function calling, and plugins

These concepts can work together. An MCP server often wraps an existing API and exposes it as model-usable tools.

ConceptPrimary purposeKey distinction
Traditional APIApplication-specific interface for data or actionsThe developer writes custom integration logic for each API.
Function callingA model emits structured arguments for functionsIt describes the model interaction, but not a portable server discovery and connection protocol.
Plugin or extensionAdds features to one host applicationPackaging, permissions, and compatibility are usually specific to that host.
MCP serverExposes capabilities through a shared protocolOne server can work with multiple MCP-compatible hosts and clients.
WebMCPExposes in-page tools on a website for AI agentsA proposed web standard: tools run inside the web page itself instead of a separate server process.

Curious how in-page tools compare to MCP servers in detail? Read What is WebMCP?

Frequently asked questions

MCP server FAQ

What does MCP stand for?

MCP stands for Model Context Protocol, an open standard for connecting AI applications to external systems such as tools, data sources, and reusable workflows.

What is the difference between an MCP host, client, and server?

The host is the AI application a person uses. The host creates an MCP client for each server connection. The server is the program that exposes tools, resources, or prompts through the protocol.

Do MCP servers run locally or remotely?

Both. Local servers commonly run as child processes over stdio. Remote servers run on internet-accessible infrastructure and commonly communicate over Streamable HTTP.

Is an MCP server the same as an API?

No. An API exposes application-specific endpoints. An MCP server can wrap one or more APIs and describe their capabilities through a common discovery and invocation protocol that MCP-compatible clients understand.

Does every MCP server provide tools?

No. A server declares the capabilities it supports during initialization. It may expose tools, resources, prompts, or a combination of them.

Can one AI application connect to multiple MCP servers?

Yes. A host can manage multiple MCP clients, with each client maintaining a dedicated connection to one server. This lets an application combine capabilities while keeping server connections isolated.

Are MCP servers safe to use?

Safety depends on the server, its permissions, and the client. Review the source and requested access, use least-privilege credentials, require confirmation for consequential actions, and test with non-sensitive data first.

Official MCP references

MCP evolves through versioned specifications. Use the official documentation for implementation details and the latest protocol requirements.