What is an MCP server?
TL;DR
An MCP server is software that exposes tools, resources, or prompts through the Model Context Protocol so an AI client can interact with an external system. A server may run locally over stdio or remotely over HTTP. The client discovers the server's capabilities through MCP and calls them through the protocol.
What a server exposes
Every server can expose any combination of tools, resources, and prompts. A database server might expose a query tool; a search server might expose a search tool and a results resource. Nothing in the protocol requires a server to expose all three.
Local server
A local server runs on the same machine as the client and communicates over stdio: the client spawns the server process and exchanges JSON-RPC over standard input and output. This is the simplest deployment and requires no network exposure or authentication.
Remote server
A remote server runs on another host and is reachable over HTTP. A client establishes a session over the network. Authentication is the server's responsibility; the specification supports OAuth-based authorization for protected resources.
How servers are discovered
A client learns a server's capabilities by sending tools/list, resources/list, and prompts/list and reading the returned schemas. There is no global registry requirement; discovery comes from the protocol conversation itself.
How to choose a server
Before using a server, verify what tools or resources it actually exposes, whether it needs credentials, whether it can mutate state, and whether it follows a transport and authentication you can support. Read the server's source or documentation rather than trusting a name alone.