mcp-server-plus
mcp-server-plus
Introducción
mcp-server-plus es un kit de herramientas para servidores MCP: un pequeño framework en TypeScript para construir servidores del Model Context Protocol sin repetir código repetitivo.
Nota sobre el nombre del paquete:
mcp-server-toolkitya estaba ocupado en npm, por lo que este se distribuye comomcp-server-plus.
Related MCP server: MCP Framework
Por qué existe este paquete
Los desarrolladores que inician servidores MCP reimplementan repetidamente el registro de herramientas, prompts, recursos, autenticación, registro de actividad y pruebas. Bibliotecas populares como Express y Hono tienen éxito porque hacen que el camino feliz sea obvio. mcp-server-plus busca esa misma experiencia de desarrollo sobre el @modelcontextprotocol/sdk oficial.
Instalación
npm install mcp-server-plus zodRequiere Node.js 18+.
Características
Registro de herramientas
Registro de prompts
Recursos
Autenticación / autorización
Registro de actividad
Métricas
Streaming (a través del transporte stdio de MCP)
Middleware
Generador de andamiaje CLI
Utilidades de prueba
Inicio rápido
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 startReferencia de la API
createServer(options) / createMcpServer(options)
Crea un McpKitServer.
Opción | Tipo | Descripción |
|
| Nombre del servidor |
|
| Versión del servidor |
|
| Instrucciones MCP opcionales |
|
| Clave API / autenticación personalizada |
|
| Middleware global |
|
| Registrador personalizado |
server.tool(name, definition)
Registra una herramienta (también integrada en el SDK de MCP).
server.prompt(name, definition)
Registra una plantilla de prompt.
server.resource(uri, definition)
Registra un recurso.
server.use(middleware)
Añade middleware alrededor de las llamadas a herramientas.
server.start()
Conecta un transporte stdio de MCP (el streaming lo maneja el SDK).
server.invokeTool(name, args, meta?)
Invocación en proceso para pruebas/scripts.
Utilidades de prueba
import { callTool, expectText } from "mcp-server-plus/testing";Ejemplos
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" }],
}),
});Ejemplos avanzados
Autenticación + 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 + métricas
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());Integración con frameworks
Funciona con cualquier host de MCP que admita servidores stdio. Apunta el host a tu proceso node dist/index.js (o npm start).
Ejemplo de configuración de host MCP:
{
"mcpServers": {
"demo": {
"command": "node",
"args": ["/path/to/server/src/index.js"]
}
}
}Uso de TypeScript
TypeScript de primera clase. Los argumentos de las herramientas se infieren del inputSchema de Zod cuando escribes el handler explícitamente. Activa strict para obtener los mejores resultados.
Manejo de errores
Errores tipados: McpKitError, AuthError, ForbiddenError.
Los fallos de las herramientas devuelven { isError: true, content: [...] } para que los hosts puedan mostrarlos de forma segura.
Rendimiento
Capa delgada sobre el SDK oficial (sin saltos de red adicionales)
Middleware solo en invocaciones de herramientas
Las métricas usan contadores simples (baja sobrecarga)
Mejores prácticas
Mantén las herramientas pequeñas y conscientes de los efectos secundarios
Valida las entradas con esquemas de Zod
Usa autenticación
optionalpara local/desarrollo,requiredpara hosts compartidosPrefiere
invokeToolen pruebas unitarias; usa stdio para integración
Preguntas frecuentes
¿Es un SDK oficial?
No — se basa en @modelcontextprotocol/sdk con una mejor experiencia de desarrollo.
¿Admite streaming?
Sí, a través del transporte stdio de MCP utilizado por server.start().
¿CJS o ESM?
Publicado dual; ESM primero.
Guía de migración
Desde el SDK sin procesar McpServer
Reemplaza el código repetitivo de registerTool con server.tool(name, definition) y mantén los esquemas de Zod. Llama a server.start() en lugar de conectar manualmente StdioServerTransport.
SemVer
Los cambios incompatibles se publican en versiones principales y se documentan en CHANGELOG.md.
Solución de problemas
Síntoma | Solución |
El host no puede iniciar el servidor | Asegúrate de que se llame a |
Llamadas a herramientas no autorizadas | Envía |
Faltan tipos | Importa desde |
Contribuciones
Consulta CONTRIBUTING.md.
Licencia
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