---
title: "Planning an MCP server, what belongs in it — StudioMeyer Academy"
description: "The most important questions before you write code. Most servers fail here, not at the code."
canonical: "https://studiomeyer.academy/en/lernwege/fuer-entwickler/lektionen/01-mcp-server-planen"
language: en
image: "https://studiomeyer.academy/og/academy-og-share.png"
publisher: "StudioMeyer Academy, https://studiomeyer.academy (llms.txt: https://studiomeyer.academy/llms.txt)"
---

## The wrong order

Many devs start like this: "I have an idea for an MCP server. Let me run `npx create-mcp` and get going."

Three weeks later: it works technically, but no one installs it. Because the fundamental question never got answered.

## The five questions before code

**1\. Which problem does the server solve?**

Not "what does it do", but "which problem does it shrink". Example: "Claude has no access to my Lexoffice" is not a problem. "I have to manually look up invoices every morning to transfer them to the CRM" is a problem.

If you can't answer that in one sentence, don't build a server yet.

**2\. Who uses this?**

Just you? Then build local, don't invest time in docs, distribution, pricing.

A team? Then you need install instructions, config, maybe multi-tenant.

A public audience? Then it's a product. With pricing, marketing, support. Far more work than you think.

**3\. Which tools belong in?**

Common trap: "My server does EVERYTHING with X." Too broad a tool list confuses the model. It calls the wrong tool, gives wrong parameters.

Rule of thumb: 5-15 tools. If you have 40, split the server in two.

And: every tool needs a clear, unique purpose. Not `get_data`, `fetch_data` and `read_data` that all do the same thing.

**4\. Stdio or HTTP?**

Stdio MCP servers run locally on the user's machine, start automatically when Claude needs them. Easier to install (npm install -g), no hosting cost.

HTTP MCP servers run remote, the user provides a URL, does OAuth. Need hosting, but allow central updates and user management.

Rule of thumb: if the server works with user-private data (files, credentials), stdio. If it has a central database that's shared, HTTP.

**5\. How do you monetize?**

Ask early. Three models clearly visible today:

- **Free + Open Source** (community, GitHub stars, pull requests; may lead to consulting).
- **SaaS with tiers** (central hosting, users pay monthly; mcp-nex does that).
- **Desktop/Local + Pro** (server is free to install, Pro features unlock with payment).

Decision BEFORE the code, not after.

## What to write down now

Before you `npm init`, have this page:

- **Problem:** one sentence.
- **Audience:** who, how many.
- **Tool list:** names + one-sentence purpose.
- **Transport:** stdio or HTTP.
- **Monetization:** if at all.

If all five are clear, you can build the skeleton in two hours. If not, it'll be a month.

## The work-to-value rule

MCP server code is simple. 200 lines for a good 5-tool server. The work is:

- 30% code
- 30% data integration (APIs, rate limits, errors)
- 20% documentation
- 20% distribution (npm, GitHub, maybe marketplaces)

If you think you'll be done in two weeks, plan four.

## Next lesson

What the skeleton looks like. TypeScript, @modelcontextprotocol/sdk, the minimal server in 40 lines of code.

You can read everything freely. An account keeps your progress saved.

[Sign in](https://studiomeyer.academy/en/login?next=%2Fen%2Flernwege%2Ffuer-entwickler%2Flektionen%2F01-mcp-server-planen)

For developers · Module 1 of 1

## For developers

[Back to learning path](https://studiomeyer.academy/en/lernwege/fuer-entwickler)

## Your notes

Sign in to save your own notes for this lesson.

[Sign in](https://studiomeyer.academy/en/login?next=%2Fen%2Flernwege%2Ffuer-entwickler%2Flektionen%2F01-mcp-server-planen)

## Sitemap

Public pages of this site as Markdown: [sitemap](https://studiomeyer.academy/sitemap.md). Curated entry point: [llms.txt](https://studiomeyer.academy/llms.txt), full text: [llms-full.txt](https://studiomeyer.academy/llms-full.txt).
