К основному содержанию
скилл CX Codex

mcp-builder · shareai-lab — скилл для Claude Code: сборка MCP-серверов

Скилл, который помогает писать MCP-серверы на Python и TypeScript: инструменты, ресурсы, тесты и регистрация в конфиге.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add shareAI-lab/learn-claude-code --skill mcp-builder -a claude-code
Открыть на GitHub

Что делает mcp-builder

MCP-серверы дают агенту доступ к внешним сервисам через единый протокол. Скилл объясняет три вещи, которые такой сервер отдаёт наружу: инструменты, которые агент вызывает как функции, ресурсы для чтения данных и готовые шаблоны промптов. Дальше идут рабочие шаблоны на Python и TypeScript.

Внутри — пошаговый старт: создание проекта, виртуальное окружение, установка SDK (pip install mcp или npm install @modelcontextprotocol/sdk), базовый сервер на stdio и регистрация в ~/.claude/mcp.json. Отдельные разделы про интеграцию с внешним API через httpx, доступ к SQLite с проверкой, что запрос начинается с SELECT, и ресурсы вида file://{path}. Тестировать предлагается через MCP Inspector командой npx @anthropics/mcp-inspector python3 my_server.py или отправкой JSON-RPC сообщений напрямую.

Для серверов, которые ходят в чужие API, понадобится ключ: в примере погоды он подставляется в параметр key. Ещё в списке практик есть пункт про аутентификацию — если инструмент трогает что-то чувствительное, без неё его выставлять не стоит. Это повод проверить свой сервер до того, как подключите его к рабочему проекту.

Какие задачи решает

  • поднять MCP-сервер с нуля на Python или TypeScript
  • описать инструмент так, чтобы агент понимал, когда его вызывать
  • подключить внешний API и вернуть ответ в понятном агенту виде
  • дать агенту доступ к базе только на чтение
  • проверить сервер до регистрации в конфиге

Примеры запросов агенту

  • сделай MCP-сервер, который отдаёт список задач из нашего API
  • добавь инструмент для запроса к SQLite, только SELECT
  • как протестировать мой MCP-сервер через Inspector?

Как установить mcp-builder

1Через Skills CLI (Vercel)

npx skills add shareAI-lab/learn-claude-code --skill mcp-builder -a claude-code

2Вручную: положить файлы

~/.claude/skills/mcp-builder/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/mcp-builder/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о mcp-builder

Как установить mcp-builder в Claude?

Выполните npx skills add shareAI-lab/learn-claude-code --skill mcp-builder -a claude-code. Скилл появится в ~/.claude/skills/mcp-builder/SKILL.md.

Что делает mcp-builder?

Помогает писать MCP-серверы: даёт шаблоны на Python и TypeScript, примеры инструментов, ресурсов и интеграции с внешними API, а также команды для тестирования.

Что нужно, чтобы MCP-сервер заработал?

SDK mcp для Python или @modelcontextprotocol/sdk для TypeScript, а для серверов с внешними API — ключ доступа. Регистрация идёт через запись в ~/.claude/mcp.json.

Исходный текст

SKILL.md · MIT
---
name: mcp-builder
description: Build MCP (Model Context Protocol) servers that give Claude new capabilities. Use when user wants to create an MCP server, add tools to Claude, or integrate external services.
---

# MCP Server Building Skill

You now have expertise in building MCP (Model Context Protocol) servers. MCP enables Claude to interact with external services through a standardized protocol.

## What is MCP?

MCP servers expose:
- **Tools**: Functions Claude can call (like API endpoints)
- **Resources**: Data Claude can read (like files or database records)
- **Prompts**: Pre-built prompt templates

## Quick Start: Python MCP Server

### 1. Project Setup

```bash
# Create project
mkdir my-mcp-server && cd my-mcp-server
python3 -m venv venv && source venv/bin/activate

# Install MCP SDK
pip install mcp
```

### 2. Basic Server Template

```python
#!/usr/bin/env python3
"""my_server.py - A simple MCP server"""

from mcp.server import Server
from mcp.server.stdio import stdio_server
from mcp.types import Tool, TextContent

# Create server instance
server = Server("my-server")

# Define a tool
@server.tool()
async def hello(name: str) -> str:
    """Say hello to someone.

    Args:
        name: The name to greet
    """
    return f"Hello, {name}!"

@server.tool()
async def add_numbers(a: int, b: int) -> str:
    """Add two numbers together.

    Args:
        a: First number
        b: Second number
    """
    return str(a + b)

# Run server
async def main():
    async with stdio_server() as (read, write):
        await server.run(read, write)

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())
```

### 3. Register with Claude

Add to `~/.claude/mcp.json`:
```json
{
  "mcpServers": {
    "my-server": {
      "command": "python3",
      "args": ["/path/to/my_server.py"]
    }
  }
}
```

## TypeScript MCP Server

### 1. Setup

```bash
mkdir my-mcp-server && cd my-mcp-server
npm init -y
npm install @modelcontextprotocol/sdk
```

### 2. Template

```typescript
// src/index.ts
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const server = new Server({
  name: "my-server",
  version: "1.0.0",
});

// Define tools
server.setRequestHandler("tools/list", async () => ({
  tools: [
    {
      name: "hello",
      description: "Say hello to someone",
      inputSchema: {
        type: "object",
        properties: {
          name: { type: "string", description: "Name to greet" },
        },
        required: ["name"],
      },
    },
  ],
}));

server.setRequestHandler("tools/call", async (request) => {
  if (request.params.name === "hello") {
    const name = request.params.arguments.name;
    return { content: [{ type: "text", text: `Hello, ${name}!` }] };
  }
  throw new Error("Unknown tool");
});

// Start server
const transport = new StdioServerTransport();
server.connect(transport);
```

## Advanced Patterns

### External API Integration

```python
import httpx
from mcp.server import Server

server = Server("weather-server")

@server.tool()
async def get_weather(city: str) -> str:
    """Get current weather for a city."""
    async with httpx.AsyncClient() as client:
        resp = await client.get(
            f"https://api.weatherapi.com/v1/current.json",
            params={"key": "YOUR_API_KEY", "q": city}
        )
        data = resp.json()
        return f"{city}: {data['current']['temp_c']}C, {data['current']['condition']['text']}"
```

### Database Access

```python
import sqlite3
from mcp.server import Server

server = Server("db-server")

@server.tool()
async def query_db(sql: str) -> str:
    """Execute a read-only SQL query."""
    if not sql.strip().upper().startswith("SELECT"):
        return "Error: Only SELECT queries allowed"

    conn = sqlite3.connect("data.db")
    cursor = conn.execute(sql)
    rows = cursor.fetchall()
    conn.close()
    return str(rows)
```

### Resources (Read-only Data)

```python
@server.resource("config://settings")
async def get_settings() -> str:
    """Application settings."""
    return open("settings.json").read()

@server.resource("file://{path}")
async def read_file(path: str) -> str:
    """Read a file from the workspace."""
    return open(path).read()
```

## Testing

```bash
# Test with MCP Inspector
npx @anthropics/mcp-inspector python3 my_server.py

# Or send test messages directly
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | python3 my_server.py
```

## Best Practices

1. **Clear tool descriptions**: Claude uses these to decide when to call tools
2. **Input validation**: Always validate and sanitize inputs
3. **Error handling**: Return meaningful error messages
4. **Async by default**: Use async/await for I/O operations
5. **Security**: Never expose sensitive operations without auth
6. **Idempotency**: Tools should be safe to retry

© shareAI-lab · MIT · shareAI-lab/learn-claude-code

Похожие скиллы

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →

Сначала — mcp-builder от других авторов.

mcp-builder официальный anthropics Скилл проводит через создание MCP-сервера на TypeScript или Python: от изучения протокола до тестов и оценки качества. 130 949установок mcp-builder jezweb Скилл проводит от брифа до задеплоенного MCP-сервера на Python с FastMCP: описываете инструменты, получаете код, тесты и чек-лист перед выкладкой. CX Codex +1 1 400установок mcp-builder microsoft Пошаговое руководство по созданию MCP-серверов на TypeScript, Python и C# для интеграции сторонних API с языковыми моделями. 108установок build-with-exa Exa Подсказывает агенту, какой эндпоинт Exa выбрать и как собрать запрос: поиск, извлечение контента, ответы, Agent API. CX Codex +1 3 600установок mcp-server-builder Alireza Rezvani Собирает MCP-сервер из спецификации OpenAPI: манифест инструментов и стартовый код на Python или TypeScript, с валидатором в комплекте. 644установок context-matic официальный APIMatic Плагин подключает документацию сторонних SDK к GitHub Copilot. Он предотвращает галлюцинации моделей при интеграции платежей, карт и других сервисов. ★ 40 418звёзд репо notion-api sanjeed5 Правило для Cursor задаёт, как писать код интеграций с Notion API: модули, токены в переменных окружения, официальные SDK и пагинация. ★ 3 579звёзд репо dm-limits-and-best-practices cognitedata Справочный скилл про лимиты CDF Data Modeling: конкурентность и 429, пагинация, батчи, QueuedTaskRunner. Пригодится, когда код сыпет ошибками на нагрузке. CX Codex +1 1 900установок fastapi-python Mindrally Задаёт агенту стиль разработки на FastAPI: async, Pydantic v2, обработка ошибок и структура роутеров. Пригодится, когда пишете API на Python. CX Codex +1 13 900установок

Из того же набора3

Спонсоры проекта

Компании, которые помогают держать аналитику открытой