mcp-server-plus
mcp-server-plus
Введение
mcp-server-plus — это набор инструментов для MCP-серверов: небольшой TypeScript-фреймворк для создания серверов Model Context Protocol без повторения шаблонного кода.
Примечание о названии пакета:
mcp-server-toolkitуже занято на npm, поэтому этот пакет публикуется какmcp-server-plus.
Related MCP server: MCP Framework
Зачем существует этот пакет
Разработчики, начинающие создавать MCP-серверы, снова и снова реализуют регистрацию инструментов, подсказки, ресурсы, аутентификацию, логирование и тесты. Популярные библиотеки, такие как Express и Hono, успешны, потому что делают очевидный путь очевидным. mcp-server-plus стремится к такому же DX поверх официального @modelcontextprotocol/sdk.
Установка
npm install mcp-server-plus zodТребуется Node.js 18+.
Возможности
Регистрация инструментов
Реестр подсказок
Ресурсы
Аутентификация / авторизация
Логирование
Метрики
Потоковая передача (через MCP stdio transport)
Middleware
CLI-генератор каркаса
Вспомогательные средства для тестирования
Быстрый старт
import { z } from "zod";
import { createServer, toolResult } from "mcp-server-plus";
const weatherTool = {
description: "Get weather",
inputSchema: { city: z.string() },
async handler({ city }: { city: string }) {
return toolResult(`Weather in ${city}: sunny`);
},
};
const server = createServer({
name: "demo",
version: "1.0.0",
});
server.tool("weather", weatherTool);
await server.start(); // stdioCLI
npx mcp-server-plus init my-weather-server
cd my-weather-server
npm install
npm startСправочник API
createServer(options) / createMcpServer(options)
Создаёт McpKitServer.
Параметр | Тип | Описание |
|
| Имя сервера |
|
| Версия сервера |
|
| Необязательные MCP-инструкции |
|
| API-ключ / пользовательская аутентификация |
|
| Глобальный middleware |
|
| Пользовательский логгер |
server.tool(name, definition)
Регистрирует инструмент (также подключается к MCP SDK).
server.prompt(name, definition)
Регистрирует шаблон подсказки.
server.resource(uri, definition)
Регистрирует ресурс.
server.use(middleware)
Добавляет middleware вокруг вызовов инструментов.
server.start()
Подключает MCP stdio transport (потоковая передача обрабатывается SDK).
server.invokeTool(name, args, meta?)
Вызов в процессе для тестов/скриптов.
Вспомогательные средства для тестирования
import { callTool, expectText } from "mcp-server-plus/testing";Примеры
server.tool("weather", weatherTool);
server.prompt("greet", {
description: "Greeting",
arguments: [{ name: "name", required: true }],
handler: async ({ name }) => ({
messages: [
{ role: "user", content: { type: "text", text: `Hello ${name}` } },
],
}),
});
server.resource("memo://hello", {
mimeType: "text/plain",
handler: async (uri) => ({
contents: [{ uri: uri.href, text: "Hello", mimeType: "text/plain" }],
}),
});Расширенные примеры
Аутентификация + RBAC
const server = createServer({
name: "secure",
version: "1.0.0",
// MCP_API_KEY is the expected secret only. Callers must still send meta.apiKey.
auth: { apiKey: process.env.MCP_API_KEY, required: true },
});
server.tool("deploy", {
roles: ["admin"],
scopes: ["deploy"],
handler: async () => toolResult("deployed"),
});Middleware + метрики
server.use(async (ctx, next) => {
const started = Date.now();
try {
return await next();
} finally {
ctx.log.info("tool timing", ctx.toolName, Date.now() - started);
}
});
console.log(server.metricsSnapshot());Интеграция с фреймворками
Работает с любым MCP-хостом, поддерживающим stdio-серверы. Укажите хосту ваш процесс node dist/index.js (или npm start).
Пример конфигурации MCP-хоста:
{
"mcpServers": {
"demo": {
"command": "node",
"args": ["/path/to/server/src/index.js"]
}
}
}Использование TypeScript
Полноценная поддержка TypeScript. Аргументы инструментов выводятся из Zod inputSchema, если вы явно типизируете обработчик. Включите strict для лучших результатов.
Обработка ошибок
Типизированные ошибки: McpKitError, AuthError, ForbiddenError.
Сбои инструментов возвращают { isError: true, content: [...] }, чтобы хосты могли безопасно их отображать.
Производительность
Тонкая обёртка над официальным SDK (без дополнительных сетевых переходов)
Middleware только при вызовах инструментов
Метрики используют простые счётчики (низкие накладные расходы)
Лучшие практики
Держите инструменты небольшими и учитывайте побочные эффекты
Проверяйте входные данные с помощью Zod-схем
Используйте
optionalаутентификацию для локальной/разработки,requiredдля общих хостовПредпочитайте
invokeToolв модульных тестах; используйте stdio для интеграционных
FAQ
Это официальный SDK?
Нет — он построен на @modelcontextprotocol/sdk с улучшенным DX.
Поддерживает ли потоковую передачу?
Да, через MCP stdio transport, используемый server.start().
CJS или ESM?
Двойная публикация; ESM в приоритете.
Руководство по миграции
С сырого SDK McpServer
Замените шаблонный код registerTool на server.tool(name, definition) и сохраните Zod-схемы. Вызывайте server.start() вместо ручного подключения StdioServerTransport.
SemVer
Критические изменения выходят в мажорных версиях и документируются в CHANGELOG.md.
Устранение неполадок
Симптом | Исправление |
Хост не может запустить сервер | Убедитесь, что вызывается |
Неавторизованные вызовы инструментов | Отправьте |
Отсутствуют типы | Импортируйте из |
Вклад
См. CONTRIBUTING.md.
Лицензия
MIT
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
MCP-first toolbox for agents: KV storage, auth, queue, and utility tools. Free in early access.
A simple Typescript MCP server built using the official MCP Typescript SDK and smithery/cli. This…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA TypeScript implementation of a Model Context Protocol server that provides a frictionless framework for developers to build and deploy AI tools and prompts, focusing on developer experience with zero boilerplate and automatic tool registration.2,01314MIT
- FlicenseNot gradedqualityDmaintenanceA TypeScript framework for building Model Context Protocol (MCP) servers with automatic discovery and loading of tools, resources, and prompts.9-
- AlicenseNot gradedqualityDmaintenanceA TypeScript wrapper library for the Model Context Protocol SDK that provides a simplified interface for creating MCP servers with tools, resources, and prompts without needing to work directly with the protocol.23AGPL 3.0
- FlicenseNot gradedqualityDmaintenanceA clean, reusable TypeScript boilerplate for building Model Context Protocol servers with support for custom tools and resources.0-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/theinfyark/mcp-server-plus'
If you have feedback or need assistance with the MCP directory API, please join our Discord server