What is an MCP Server? A Practical Guide for Developers
Learn how MCP servers expose tools and data to AI applications, how to connect one, and what to check before giving it access.
An AI coding tool can work with the files and services you give it access to. To connect another system, such as an issue tracker or internal API, you can use a Model Context Protocol (MCP) server.
What an MCP server does
MCP is an open protocol for connecting AI applications to external tools and data. An MCP server exposes capabilities that a compatible client can discover and use:
- Tools let the client request an action, such as searching issues or running a query.
- Resources provide data the client can read, such as a document or file.
- Prompts provide reusable templates that a client can offer to users.
The AI application is the MCP client. The server sits between that client and the system it connects to. For example, a GitHub MCP server might offer an issue search tool. The client sends a request to the server and receives a result it can use in the conversation.
The protocol gives clients and servers a common way to exchange these requests. It doesn't guarantee that every client supports every server feature or that a server will work without configuration. Check the client's supported transports, the server's setup instructions, and any required credentials.
How the connection works
A local server can run as a process that communicates with the client over stdio. A remote server can use Streamable HTTP. The older HTTP+SSE transport is deprecated and remains relevant mainly for existing integrations. See the MCP transport specification for the current protocol details.
MCP messages use JSON-RPC. After connecting, a client can list the server's available capabilities and request a tool call or resource. What the AI application does with the result depends on that client and its permissions.
Connect an existing server
Start with a server you trust and follow its own setup instructions. For Claude Code, the official MCP connection guide covers local stdio servers, remote HTTP servers, authentication, and checking connection status. For servers published to the official MCP Registry, check the listing and the maintainer's documentation before installing or connecting.
Don't assume every server is an npm package. Its setup might use a remote URL, a local executable, credentials, or a client-specific configuration file. Once connected, inspect the tools it exposes and try a read-only request before granting broader access.
Build your own server
If you need to expose an internal API, define the smallest useful set of tools or resources. Give tools clear names and input schemas, validate arguments, and decide which operations need authentication or user approval. Choose stdio for a locally launched process or Streamable HTTP for a remote endpoint.
For a runnable TypeScript example and current SDK imports, use the official TypeScript server tutorial. The SDK and protocol evolve, so copy the example for the version you're installing rather than relying on an old snippet.
Check the data path before connecting
Where data goes depends on the server, the client, and the model provider. A local server can still call external APIs, and a remote server receives the requests sent to it. Tool results can also enter the AI application's context. Review the server's permissions and data handling, use narrow credentials, and avoid exposing secrets through tools or resources.
MCP gives you a standard connection, not a privacy guarantee. Test what a server can read or change before using it with sensitive data.
Toolblip's directory lists browser-based developer tools, not MCP servers. If you built a browser tool that belongs there, use the tool submission page. To find MCP servers, use the official MCP Registry.
Related posts
Ready to try it yourself?
Browse Free Tools →