MCP Servers
Model Context Protocol (MCP) is an open standard for connecting AI models to external data sources and tools. Instead of every AI tool reinventing integrations, MCP provides a single protocol that any client โ Copilot, Cursor, Cline, Claude Code โ can use to talk to any server: a database, the GitHub API, your file system, a browser.
What Is MCP?โ
Introduced by Anthropic in November 2024 and quickly adopted across the ecosystem, MCP standardizes how AI models access context and invoke tools.
Architecture:
- Host โ the AI client (e.g., VS Code with Copilot, Cursor, Claude Desktop). It manages connections to servers and exposes their capabilities to the model.
- Server โ a local or remote process that exposes data or functions. You run one server per integration.
- Client โ the connection layer inside the host that handles the protocol.
A server can provide three things:
| Type | Description |
|---|---|
| Resources | Structured data the model can read โ file contents, database records, API responses |
| Tools | Callable functions the model can invoke โ run a SQL query, create a GitHub issue, fetch a URL |
| Prompts | Reusable prompt templates the host surfaces to the user |
Key Serversโ
Reference Serversโ
The MCP project maintains a small set of reference servers in the modelcontextprotocol/servers repository. They are intended as examples and building blocks; the most useful ones day to day:
| Server | What it does |
|---|---|
filesystem | Read and write local files within a specified directory |
fetch | Fetch a URL and convert it to Markdown โ useful for reading docs or live APIs |
git | Read, search, and manipulate a local Git repository |
memory | Persistent knowledge-graph memory across sessions |
Several servers that used to live there โ including the old github, postgres, sqlite, puppeteer, and brave-search servers โ have been archived and no longer receive fixes. Don't use them in new setups.
Vendor-Maintained Serversโ
For most integrations, prefer the server maintained by the vendor itself:
| Server | Maintainer | What it does |
|---|---|---|
| GitHub MCP Server | GitHub | Repos, issues, PRs, Actions, code search. Available as a hosted remote server โ no local install |
| Playwright MCP | Microsoft | Browser automation through accessibility snapshots |
| Chrome DevTools MCP | Google Chrome team | Inspect and debug a running Chrome instance: network, console, performance traces |
| Figma MCP | Figma | Read Figma designs and components for design-to-code workflows |
| MDN MCP | Mozilla | MDN documentation and browser compatibility data |
GitHub + fetch + filesystem covers the majority of useful AI-assisted developer workflows. Many editors already include file access and web fetch as built-in tools, so you often only need the GitHub server.
MDN Web Docs MCP Serverโ
Mozilla maintains a remote HTTP MCP server at https://mcp.mdn.mozilla.net/ that gives AI assistants direct access to MDN documentation and browser compatibility data. Unlike most MCP servers, it requires no local installation โ just an HTTP connection.
It exposes three tools:
| Tool | What it does |
|---|---|
mcp_mdn_search | Search MDN by keyword; returns summaries, doc paths, and compat-key values |
mcp_mdn_get-doc | Fetch full MDN page content as Markdown using a path from search results |
mcp_mdn_get-compat | Retrieve browser compatibility data by compat-key from search results |
This server is already configured in this repository's .vscode/mcp.json:
{
"servers": {
"mdn": {
"type": "http",
"url": "https://mcp.mdn.mozilla.net/"
}
}
}
Browser compatibility is where generic AI answers most often go wrong. The mcp_mdn_get-compat tool provides exact, up-to-date support tables instead of relying on a model's stale training data.
See MDN's MCP Server Brings Authoritative Web Docs Into Your Editor for setup instructions covering VS Code, Claude Code, Cursor, and Claude Desktop, plus MDN's benchmark results.
When an AI agent has access to git or the github MCP server, it can commit, push, create PRs, and โ if given write permissions โ overwrite or delete branches. Always review exactly what repository permissions you have granted and ensure the agent operates with the principle of least privilege. Never give an agent push access to a main or protected branch.
For a broader catalog, see the official MCP Registry and the GitHub MCP Registry, or community directories such as mcp.so and Smithery. Community-listed servers are unvetted โ see Agent Security before installing one.
Setting Up MCP in VS Code (Copilot)โ
Requires GitHub Copilot with agent mode enabled.
Configure servers in .vscode/mcp.json at the workspace root. Commit this file so the whole team shares the same server configuration.
{
"inputs": [
{
"type": "promptString",
"id": "postgres-url",
"description": "PostgreSQL connection string (read-only user)",
"password": true
}
],
"servers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/"
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem@<exact-version>", "${workspaceFolder}"]
},
"my-db-server": {
"command": "npx",
"args": ["-y", "<db-mcp-package>@<exact-version>"],
"env": {
"DATABASE_URL": "${input:postgres-url}"
}
}
}
}
- Remote servers (
"type": "http") like GitHub's sign in with OAuth โ VS Code shows an Auth prompt the first time. No token ends up in the file. inputswith"password": trueprompt each developer for a secret once and store it securely in VS Code, so the committed file never contains it.- Pin local servers to an exact version (
package@1.2.3).npx -y packagewithout a version runs whatever was published most recently โ the same supply-chain risk as an unpinned dependency.
Never commit real tokens or secrets to .vscode/mcp.json. Use inputs, OAuth, or ${env:VARIABLE_NAME} to reference values from your shell environment.
To activate: open Copilot Chat, switch to Agent mode, and the configured servers are available as tools. Use the tools picker in the chat input to turn individual tools off when you don't need them โ every enabled tool's description is sent with each request.
Reference: VS Code MCP documentation
Setting Up MCP in Cursorโ
Configure servers in .cursor/mcp.json in the project (or ~/.cursor/mcp.json for all projects). Note that Cursor uses an mcpServers key, not VS Code's servers โ the same file won't work in both editors without changing it.
{
"mcpServers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer ${env:GITHUB_TOKEN}"
}
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem@<exact-version>", "."]
}
}
}
Once configured, MCP tools are available to Cursor's agent; enable or disable them in Cursor Settings โ MCP.
Reference: Cursor MCP documentation
Claude Code uses a project-level .mcp.json at the repo root, also with an mcpServers key. See Claude Code Customization.
MCP Specification 2026-07-28โ
The 2026-07-28 revision of the MCP specification was released on July 28, 2026, with SDK support shipping alongside it. Client support is rolling out across hosts, so check your tool's release notes before relying on the new features. The changes matter mostly for server implementers and integrators.
Stateless core โ the largest change. The initialize/initialized handshake and Mcp-Session-Id headers are removed. Protocol version, client info, and capabilities now travel in a _meta field on every request, allowing any server instance to handle any request without sticky routing or shared session stores โ so servers can run on serverless and edge infrastructure.
New capabilities:
- MCP Apps โ servers can deliver interactive HTML/JS interfaces rendered in sandboxed iframes inside host environments (Claude Desktop, VS Code Copilot, Microsoft 365 Copilot). See MCP Apps.
- Tasks extension โ a handle-based pattern for long-running work:
tools/callreturns a task handle, thentasks/get/tasks/update/tasks/cancelmanage the lifecycle. - Observability headers โ
Mcp-MethodandMcp-NameHTTP headers for load-balancer routing without parsing JSON-RPC; W3C Trace Context (traceparent,tracestate) for distributed tracing.
Deprecated (12-month sunset, removal no earlier than July 28, 2027):
- Roots โ replaced by tool parameters, resource URIs, or server configuration.
- Sampling โ replaced by direct LLM provider API calls.
- Logging โ replaced by stderr (stdio transports) or OpenTelemetry (structured observability).
See MCP Goes Stateless: Inside the 2026-07-28 Specification Release Candidate for the full breakdown (written at the release-candidate stage).
Resourcesโ
- MCP official specification โ the spec and introduction from Anthropic
- MCP reference servers โ the official reference implementations
- GitHub MCP Server โ setup for VS Code, Cursor, Claude Code, and other hosts
- VS Code MCP docs
- Cursor MCP docs
- Burke Holland's YouTube channel โ covers MCP setup in VS Code and Copilot as a Microsoft Developer Advocate; browse for MCP-specific videos
- VS Code YouTube channel โ search "MCP" for setup walkthroughs and demos
- awesome-copilot โ Tools โ curated directory of MCP-compatible tools and integrations for Copilot, complementing the mcp.so and Smithery registries mentioned above