# What is an MCP server, in plain terms?

Source: https://codelifter.com/forum/posts/what-is-an-mcp-server-in-plain-terms/
Site: CodeLifter Forum, category MCP and tools
Published: 2026-10-27. Updated: 2026-11-02. Replies: 2.

## Question by CodeLifter editors (staff), 2026-10-27

An MCP server is a small program that gives an AI application a fixed menu of actions and data through the Model Context Protocol, an open standard. The AI app connects, asks what the server offers, then calls its tools, such as "read this file" or "open an issue", usually after you approve each call.

## What does MCP stand for, and who runs it?

MCP is the Model Context Protocol. The project's own [introduction](https://modelcontextprotocol.io/docs/getting-started/intro) calls it "an open-source standard for connecting AI applications to external systems." A protocol is an agreed message format, so any AI application that speaks MCP can use any server that speaks it, whoever wrote either side.

The project publishes a specification, official SDKs (software development kits, the libraries you build with) for several languages, a testing tool called the MCP Inspector, and a set of reference servers. As of the docs read on 16 October 2026, the current specification version is dated 2026-07-28, according to the [architecture overview](https://modelcontextprotocol.io/docs/learn/architecture).

## Host, client, server: who does what?

The architecture page names three participants. The names are confusing at first because "client" here is not the app you see.

| Participant | What it is | Example |
| --- | --- | --- |
| MCP host | The AI application you use, which manages one or more connections | Claude Code, Claude Desktop, Visual Studio Code |
| MCP client | A component inside the host that keeps one connection to one server | The host creates one client per server it connects to |
| MCP server | "A program that provides context to MCP clients" | The Filesystem server, the GitHub server, the Sentry server |

So when you add three servers to VS Code, VS Code (the host) runs three clients, one for each server. The model never talks to a server directly. The host decides what to send, runs the call, and passes the result back into the conversation.

## What does an MCP server actually expose?

A server offers up to three kinds of thing, which the specification calls primitives:

1. **Tools.** Functions the AI application can call to do something, such as run a database query, call an API or write a file. Each tool has a name, a description and a schema for its inputs.
2. **Resources.** Data the application can read for context, such as file contents, database records or an API response.
3. **Prompts.** Reusable templates that help structure a request, such as a system prompt or worked examples.

The host first asks the server for its list (for tools, a `tools/list` request), then calls an item from that list (for tools, `tools/call`). Most servers you will meet are mainly tools. The architecture page gives a database example: a server can expose tools to query the database, a resource holding its schema, and a prompt with examples of how to use the tools.

Servers can also ask the user for input through the host, a feature called elicitation. The page notes that sampling, where a server asks the host's model for a completion, is deprecated as of protocol version 2026-07-28.

## Local or remote: how does a server connect?

MCP defines two standard transports, meaning the channel the messages travel over.

| | Local server | Remote server |
| --- | --- | --- |
| Transport | stdio: standard input and output between two processes on your machine | Streamable HTTP: HTTP POST, with optional server-sent events for streaming |
| How you add it | A command, such as `npx -y @modelcontextprotocol/server-filesystem /path` | A URL, such as `https://api.githubcopilot.com/mcp/` |
| Who it usually serves | One client | Many clients |
| Sign-in | Inherits your local permissions | HTTP authentication; the docs recommend OAuth for tokens |

Whether to run a service's server locally or use its hosted version is a real trade-off; the [remote or local GitHub MCP server thread](/forum/posts/remote-or-local-github-mcp-server-which-should-you-run/) works through it for one case.

## What can go wrong?

An MCP server is code that acts with your permissions. The project's [security best practices](https://modelcontextprotocol.io/docs/tutorials/security/security_best_practices) tell client authors to "Warn that MCP servers run with the same privileges as the client", and the [tools specification](https://modelcontextprotocol.io/specification/latest/server/tools) says "there SHOULD always be a human in the loop with the ability to deny tool invocations." The other risk is prompt injection: text a server fetches (a web page, a support ticket, an issue comment) can contain instructions that the model may follow. Stripe's [MCP documentation](https://docs.stripe.com/mcp) warns users to "exercise caution when using the Stripe MCP with other servers to avoid prompt injection attacks."

To try a server safely:

1. Start with a read-only mode where the server offers one; GitHub, Linear and Supabase all document one.
2. Give it the narrowest folder or token that works. The [Filesystem sandbox thread](/forum/posts/how-do-you-sandbox-the-filesystem-mcp-server/) shows how for one server.
3. Keep per-call approval on, and read each call before you approve it.
4. Install from the vendor's own repository or documentation, not a copy.

The CodeLifter [MCP directory](https://codelifter.com/mcp/) lists 15 servers with their install line, licence and what each can read, write or reach. If you would rather make one, see how to build a simple MCP server.

## Short version

- An MCP server is a program that offers tools, resources and prompts to an AI application over a standard protocol.
- The host (the app) runs one client per server; the model never calls a server directly.
- Local servers run as a command over stdio; remote servers are a URL over Streamable HTTP.
- A server acts with your permissions, so scope it narrowly and approve calls by hand.

## Reply 1 by CodeLifter editors (staff), 2026-10-27

**Is an MCP server the same as an API?** No, but it usually sits in front of one. The [MCP Python SDK README](https://raw.githubusercontent.com/modelcontextprotocol/python-sdk/main/README.md) puts it as "Think of it like a web API, but designed for LLM interactions." The difference is in who reads the description. A REST API is documented for a programmer, who writes code against each endpoint. An MCP server describes itself to the AI application at run time: the [architecture overview](https://modelcontextprotocol.io/docs/learn/architecture) shows a `tools/list` response where each tool carries a `name`, a `title`, a plain-language `description` and an `inputSchema`, which is a JSON Schema for its arguments. The host gathers the tools from every connected server into one registry the model can choose from.

Underneath, MCP messages are JSON-RPC 2.0 requests and responses. As of protocol version 2026-07-28 the docs describe MCP as stateless: every request carries the protocol version and the client's capabilities in a `_meta` field, and a server must answer a `server/discover` request listing its supported versions and capabilities. So a GitHub MCP server, for example, still calls GitHub's API; MCP is the layer that lets any compatible AI app find and call it without custom glue code.

## Reply 2 by CodeLifter editors (staff), 2026-11-02

**What is the difference between an MCP server and a skill?** A skill is instructions; an MCP server is a running program. The [Agent Skills specification](https://agentskills.io/specification) defines a skill as "a directory containing, at minimum, a SKILL.md file", a Markdown file with a `name` and `description` in its front matter. The specification says those two fields "are loaded at startup for all skills", and the full body only when the skill is activated. A skill can also bundle scripts in a `scripts/` folder that the agent may run.

An MCP server, by contrast, is a separate process or hosted service that the AI application connects to and calls through the protocol. It can hold credentials, reach a network service and return live data, which a folder of Markdown cannot do on its own.

They often work together. A skill can tell the assistant when and how to use a server's tools, for example "run the tests with the browser tools before you report success". Anthropic's public skills repository even includes one, `mcp-builder`, whose description says it guides building servers in "Python (FastMCP) or Node/TypeScript (MCP SDK)". The CodeLifter [skills directory](https://codelifter.com/skills/) lists it with nine others, and the skills in Claude Code thread covers installing one.

---
Cite as: CodeLifter Forum, "What is an MCP server, in plain terms?", https://codelifter.com/forum/posts/what-is-an-mcp-server-in-plain-terms/, accessed 2026-11-12.
