>_Skillful
Need help with advanced AI agent engineering?Contact FirmAdapt
All Posts

How to Set Up a Local MCP Server Development Environment

Building MCP servers locally requires the right tooling and workflow. A practical setup guide covering SDKs, debugging, testing, and iteration patterns.

April 26, 2026Basel Ismail
mcp development tutorial local-setup

Prerequisites

Building MCP servers requires either Node.js (for the TypeScript SDK) or Python (for the Python SDK). Both SDKs are well-maintained and provide the same core capabilities, so choose based on your preferred language.

For TypeScript development, you need Node.js 18 or later and npm or yarn. For Python, you need Python 3.10 or later and pip. Both SDKs are installable as regular packages.

You also need an MCP client for testing. Claude Desktop is the most common choice because it provides a user-friendly interface for connecting to and testing MCP servers. Install it and ensure it's working before you start building.

Project Setup

Create a new project directory and initialize it with your language's package manager. For TypeScript, npm init followed by npm install @modelcontextprotocol/sdk gets you started. For Python, create a virtual environment and install the MCP SDK.

The SDK provides the framework for defining tools, handling requests, and managing the server lifecycle. Your job is to implement the tool logic: what your server does when the AI model calls each tool.

Start with the simplest possible server: one tool that does one thing. Get that working end-to-end before adding complexity. A common first server is one that reads a specific API or data source. The TypeScript SDK tutorial walks through this process in detail.

The Development Loop

The development loop for MCP servers has a specific pattern. Write or modify your server code. Start the server (or restart it if it was already running). Connect to it from Claude Desktop. Test a tool call by asking the AI a question that triggers the tool. Check the results. Iterate.

Hot reloading speeds up this loop significantly. For TypeScript servers, tools like tsx --watch or nodemon automatically restart the server when you save changes. For Python, the SDK supports similar live-reloading patterns. Reducing the restart time from seconds to near-instant makes the development experience much smoother.

Debugging

When a tool call fails, the debugging process starts with the server's log output. Console logging in your tool implementation shows what parameters the server received, what operations it performed, and where it encountered errors. Verbose logging during development is cheap insurance against confusing failures.

The MCP Inspector is a useful debugging tool that lets you interact with your server outside of Claude Desktop. It sends tool calls directly and shows the responses, bypassing the AI model's interpretation. This isolates server behavior from model behavior, making it easier to determine whether an issue is in your server or in how the model uses it.

Testing

Test your MCP server at two levels: unit tests for individual tool implementations and integration tests for the full server. Unit tests verify that your business logic works correctly given specific inputs. Integration tests verify that the MCP protocol handling works correctly and that tools are properly exposed.

For integration testing, automated tool calls using the SDK's client libraries let you write tests that simulate what Claude Desktop does. These tests catch issues with parameter validation, error handling, and response formatting that unit tests alone would miss.


Related Reading

Browse MCP servers on Skillful.sh. Search 137,000+ AI tools.