返回技能列表

scaffold-mcp-server

pjt222
更新于 2 days ago
8 次查看
17
2
17
在 GitHub 上查看
测试testingmcpdesign

关于

This Claude Skill generates the complete project structure for a new Model Context Protocol (MCP) server from templates. It sets up project configuration, tool definitions, transport handling, and testing for TypeScript, Python, or R. Use it to kickstart a new MCP server project, ensure a consistent foundation, or accelerate initial development.

快速安装

Claude Code

推荐
主要方式
npx skills add pjt222/agent-almanac -a claude-code
插件命令备选方式
/plugin add https://github.com/pjt222/agent-almanac
Git 克隆备选方式
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/scaffold-mcp-server

在 Claude Code 中复制并粘贴此命令以安装该技能

技能文档


name: scaffold-mcp-server locale: es source_locale: en source_commit: 6f65f316 translator: claude-sonnet-4-6 translation_date: 2026-03-16 description: > Generar la estructura de un nuevo servidor MCP desde plantillas, incluyendo configuración del proyecto, definición de herramientas, manejo de transporte, y configuración de testing. Soportar TypeScript, Python y R como lenguajes de implementación. Usar cuando se inicie un nuevo proyecto de servidor MCP, se necesite una estructura consistente, o se quiera acelerar el desarrollo inicial. license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: mcp-integration complexity: intermediate language: multi tags: mcp, scaffold, template, server, project-structure

Crear Andamiaje de Servidor MCP

Generar la estructura de un nuevo proyecto de servidor MCP desde plantillas.

Cuándo Usar

  • Iniciando un nuevo proyecto de servidor MCP
  • Necesitando una estructura de proyecto consistente y probada
  • Acelerando el desarrollo inicial con plantillas pre-configuradas
  • Estandarizando la creación de servidores MCP en un equipo
  • Prototipando rápidamente integraciones MCP

Entradas

  • Requerido: Nombre del servidor MCP
  • Requerido: Lenguaje de implementación (TypeScript, Python, R)
  • Requerido: Lista de herramientas a implementar
  • Opcional: Tipo de transporte (stdio, HTTP/SSE)
  • Opcional: Servicios externos a integrar
  • Opcional: Requisitos de autenticación

Procedimiento

Paso 1: Crear Estructura del Proyecto (TypeScript)

mkdir mi-mcp-server && cd mi-mcp-server

# Inicializar proyecto
npm init -y
npm install @modelcontextprotocol/sdk zod
npm install -D typescript @types/node tsx vitest

# Configurar TypeScript
npx tsc --init --outDir dist --rootDir src --strict true \
  --module nodenext --moduleResolution nodenext --target es2022

Estructura generada:

mi-mcp-server/
├── src/
│   ├── index.ts          # Punto de entrada
│   ├── server.ts         # Configuración del servidor
│   ├── tools/            # Definiciones de herramientas
│   │   ├── index.ts
│   │   └── ejemplo.ts
│   ├── resources/        # Definiciones de recursos
│   │   └── index.ts
│   └── utils/            # Utilidades compartidas
│       └── logger.ts
├── tests/
│   └── tools.test.ts
├── package.json
├── tsconfig.json
└── README.md

Esperado: Estructura del proyecto creada con todas las dependencias instaladas.

En caso de fallo: Verificar versión de Node.js (18+), comprobar acceso a npm.

Paso 2: Implementar Servidor Base

// src/server.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { registrarHerramientas } from "./tools/index.js";
import { registrarRecursos } from "./resources/index.js";

export async function iniciarServidor() {
  const server = new McpServer({
    name: "mi-mcp-server",
    version: "1.0.0",
  });

  // Registrar herramientas y recursos
  registrarHerramientas(server);
  registrarRecursos(server);

  // Conectar transporte
  const transport = new StdioServerTransport();
  await server.connect(transport);

  console.error("Servidor MCP iniciado exitosamente");
}
// src/index.ts
import { iniciarServidor } from "./server.js";
iniciarServidor().catch(console.error);

Esperado: Servidor base que inicia y acepta conexiones MCP.

En caso de fallo: Verificar importaciones de módulos, comprobar configuración de TypeScript.

Paso 3: Definir Herramientas con Plantilla

// src/tools/ejemplo.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";

export function registrarHerramientaEjemplo(server: McpServer) {
  server.tool(
    "ejemplo-saludo",
    "Genera un saludo personalizado",
    {
      nombre: z.string().describe("Nombre de la persona a saludar"),
      idioma: z.enum(["es", "en", "de"]).optional().default("es")
        .describe("Idioma del saludo"),
    },
    async ({ nombre, idioma }) => {
      const saludos: Record<string, string> = {
        es: `¡Hola, ${nombre}!`,
        en: `Hello, ${nombre}!`,
        de: `Hallo, ${nombre}!`,
      };

      return {
        content: [{
          type: "text",
          text: saludos[idioma] ?? saludos.es,
        }],
      };
    }
  );
}
// src/tools/index.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { registrarHerramientaEjemplo } from "./ejemplo.js";

export function registrarHerramientas(server: McpServer) {
  registrarHerramientaEjemplo(server);
  // Agregar más herramientas aquí
}

Esperado: Herramientas definidas con esquemas claros, descripciones, y manejo de errores.

En caso de fallo: Verificar que los esquemas zod son válidos, comprobar que las descripciones son informativas.

Paso 4: Configurar Scripts y Testing

// package.json (scripts)
{
  "scripts": {
    "build": "tsc",
    "start": "node dist/index.js",
    "dev": "tsx src/index.ts",
    "test": "vitest",
    "lint": "tsc --noEmit"
  }
}
// tests/tools.test.ts
import { describe, it, expect } from "vitest";

describe("Herramienta ejemplo-saludo", () => {
  it("genera saludo en español por defecto", async () => {
    // Implementar test de integración
  });
});
# Compilar y probar
npm run build
npm run start

# Agregar a Claude Code
claude mcp add mi-mcp-server stdio node -- dist/index.js

Esperado: El servidor se compila, pruebas pasan, y se registra exitosamente en Claude Code.

En caso de fallo: Revisar errores de compilación de TypeScript, verificar paths de importación.

Paso 5: Crear Estructura Python (Alternativa)

mkdir mi-mcp-server && cd mi-mcp-server
python -m venv venv
source venv/bin/activate
pip install mcp pydantic pytest
# src/server.py
from mcp.server import Server
from mcp.server.stdio import stdio_server
from mcp.types import Tool, TextContent
import json

app = Server("mi-mcp-server")

@app.tool()
async def ejemplo_saludo(nombre: str, idioma: str = "es") -> list[TextContent]:
    """Genera un saludo personalizado."""
    saludos = {"es": f"¡Hola, {nombre}!", "en": f"Hello, {nombre}!"}
    return [TextContent(type="text", text=saludos.get(idioma, saludos["es"]))]

async def main():
    async with stdio_server() as (read_stream, write_stream):
        await app.run(read_stream, write_stream)

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

Esperado: Servidor Python funcionando con herramientas registradas.

En caso de fallo: Verificar versión de Python (3.10+), comprobar instalación de dependencias.

Validación

  • La estructura del proyecto sigue las convenciones del lenguaje
  • El servidor compila/ejecuta sin errores
  • Las herramientas están registradas y son accesibles
  • Los tests están configurados y ejecutan
  • El servidor se puede agregar a Claude Code exitosamente
  • La documentación del proyecto está incluida (README)

Errores Comunes

  • Estructura desorganizada: Separar herramientas, recursos, y utilidades en directorios distintos.
  • Sin validación de entrada: Siempre usar zod (TS) o pydantic (Python) para validar parámetros.
  • Sin manejo de errores global: Envolver el punto de entrada en try/catch para errores fatales.
  • Descripción de herramientas faltante: Cada herramienta necesita una descripción clara para que el modelo sepa cuándo usarla.
  • No documentar la instalación: Incluir instrucciones claras de setup en el README.

Habilidades Relacionadas

  • build-custom-mcp-server - Implementación detallada de servidores MCP
  • configure-mcp-server - Configurar el servidor en clientes MCP
  • analyze-codebase-for-mcp - Analizar código para decidir qué exponer
  • containerize-mcp-server - Contenerizar el servidor MCP resultante

GitHub 仓库

pjt222/agent-almanac
路径: i18n/es/skills/scaffold-mcp-server
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

相关推荐技能

evaluating-llms-harness

测试

该Skill通过60+个学术基准测试(如MMLU、GSM8K等)评估大语言模型质量,适用于模型对比、学术研究及训练进度追踪。它支持HuggingFace、vLLM和API接口,被EleutherAI等行业领先机构广泛采用。开发者可通过简单命令行快速对模型进行多任务批量评估。

查看技能

cloudflare-cron-triggers

测试

这个Claude Skill提供了关于Cloudflare Cron Triggers的完整知识库,用于通过cron表达式定时执行Workers。它支持配置周期性任务、维护作业和自动化工作流,并能处理常见的cron触发错误。开发者可以用它来设置定时任务、测试cron处理器,并集成Workflows和Green Compute功能。

查看技能

webapp-testing

测试

该Skill为开发者提供了基于Playwright的本地Web应用测试工具集,支持自动化测试前端功能、调试UI行为、捕获屏幕截图和查看浏览器日志。它包含管理服务器生命周期的辅助脚本,可直接作为黑盒工具运行而无需阅读源码。适用于需要快速验证本地Web应用界面和交互功能的开发场景。

查看技能

finishing-a-development-branch

测试

这个Skill用于开发分支完成后的集成决策,当代码实现完成且测试通过时,它会引导开发者选择合适的工作流。它首先验证测试状态,然后提供合并、创建PR或清理等结构化选项。核心价值在于确保代码质量的同时,标准化分支收尾流程。

查看技能