Конфигурация MCP и каркасы серверов
Готовые к копированию стартеры для подключения Claude к инструментам через MCP. Оставьте только то, что вам нужно.
.mcp.json — объявление серверов (общее для проекта)
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" }
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "${DATABASE_URL}"]
}
}
}
:::warning Не храните секреты в файле
Ссылайтесь на переменные окружения (${GITHUB_TOKEN}) — не зашивайте токены жёстко в закоммиченный файл.
:::
Минимальный stdio-сервер (TypeScript)
Крошечный сервер, предоставляющий один инструмент. Адаптируйте обработчик под свои данные.
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({ name: "echo", version: "1.0.0" });
server.tool(
"echo",
{ text: z.string().describe("Text to echo back") },
async ({ text }) => ({ content: [{ type: "text", text: `You said: ${text}` }] }),
);
await server.connect(new StdioServerTransport());
Минимальный stdio-сервер (Python)
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("echo")
@mcp.tool()
def echo(text: str) -> str:
"""Echo the text back."""
return f"You said: {text}"
if __name__ == "__main__":
mcp.run() # stdio transport
Прежде чем выпускать сервер
- Минимум привилегий — только те данные/действия, которые ему нужны (Защита агентов).
- Валидируйте входные данные; возвращайте ошибки как результаты, не аварийно завершайтесь.
- Проверяйте сторонние серверы перед подключением (Проверка стороннего кода).