Как создать свой MCP-сервер на Python (за 10 минут)
Создайте, протестируйте и подключите минимальный MCP-сервер на официальном Python SDK и MCPServer; плюс советы по проектированию.
Выберите SDK
Официальные SDK есть для TypeScript, Python, C#, Java, Kotlin, Go и других языков. В этом руководстве используется официальный Python SDK 2.x, которому нужен Python 3.11 или новее. В старых версиях 1.x вместо MCPServer использовался FastMCP из mcp.server.fastmcp.
1. Подготовьте проект
uv init demo && cd demo
uv add "mcp[cli]"2. Напишите сервер
Инструмент — это обычная функция с аннотациями типов и docstring; SDK превращает их в схему и описание инструмента. mcp.run() запускает stdio-сервер.
# server.py
from mcp.server import MCPServer
mcp = MCPServer("demo")
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers."""
return a + b
if __name__ == "__main__":
mcp.run()3. Протестируйте
Откройте его в MCP Inspector, чтобы вызывать инструменты через веб-интерфейс:
uv run mcp dev server.py4. Подключите к клиенту
Используйте абсолютный путь. Claude Desktop и Cursor принимают эту запись; в Claude Code выполните claude mcp add demo -- uv run --with "mcp[cli]" mcp run /абсолютный/путь/server.py.
{
"mcpServers": {
"demo": {
"command": "uv",
"args": ["run", "--with", "mcp[cli]", "mcp", "run", "/absolute/path/to/server.py"]
}
}
}Советы по проектированию
- Давайте инструментам понятные названия и описания — модель выбирает инструменты, читая их.
- Проверяйте входные данные и возвращайте короткий полезный текст.
- Не открывайте разрушительные действия без подтверждения.
- Добавьте тему
mcp-serverв свой репозиторий на GitHub, и Socketlist добавит его автоматически.