mcp-builder
Create a new MCP server — clarify purpose, choose transport, scaffold, implement, test, and register
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Create a new MCP server — clarify purpose, choose transport, scaffold, implement, test, and register
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Set up and manage GitHub Actions workflows that use Copilot coding agents for automated PR handling and issue resolution
Inspect active GitHub Actions workflows before commit or push, run matching local checks for staged or unpushed files, ask which missing tools to install via askQuestions, and fix in-scope issues so the Commit agent can proceed.
Write a commit message following the Conventional Commits specification with scope and body
Create an Architectural Decision Record (ADR) to document a significant design or technology choice
Audit VS Code extensions against the current project stack and recommend keep/add/remove actions
Diagnose and fix a failing CI pipeline or GitHub Actions workflow
| name | mcp-builder |
| description | Create a new MCP server — clarify purpose, choose transport, scaffold, implement, test, and register |
| compatibility | >=2.0 |
Skill metadata: version "1.2"; license MIT; tags [mcp, server, tool, integration, scaffold]; compatibility ">=2.0"; recommended tools [codebase, editFiles, runCommands].
Build a new Model Context Protocol (MCP) server from scratch. This skill walks through the full lifecycle: clarifying the server's purpose, choosing transport, scaffolding, implementing tools/resources, testing, and registering the server in .vscode/mcp.json.
Ask the user:
| Transport | When to use | Trade-offs |
|---|---|---|
| stdio (recommended) | Local servers, same machine as VS Code | Simplest setup, no network config, most secure |
| SSE | Remote servers, shared team servers | Requires HTTPS in production, more complex deployment |
| Streamable HTTP | New servers targeting latest MCP spec | Newest transport, best for stateless operations |
Default to stdio unless the user has a specific reason for a remote transport.
Choose the implementation language based on the project's primary stack:
TypeScript/JavaScript (recommended for most projects):
mkdir -p .mcp-servers/<server-name>
cd .mcp-servers/<server-name>
npm init -y
npm install @modelcontextprotocol/sdk zod
npm install --save-dev tsx typescript @types/node
Create the entry point (src/index.ts or index.js):
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: "<server-name>",
version: "1.0.0",
});
// Tools are registered here (Step 4)
const transport = new StdioServerTransport();
await server.connect(transport);
Python (alternative):
mkdir -p .mcp-servers/<server-name>
cd .mcp-servers/<server-name>
uv init && uv add mcp
For each tool identified in Step 1:
server.tool(
"<tool-name>",
"<one-sentence description>",
{ param: z.string().describe("what this parameter does") },
async ({ param }) => {
// Implementation
return { content: [{ type: "text", text: result }] };
}
);
Rules:
npx @modelcontextprotocol/inspector tsx .mcp-servers/<server-name>/src/index.ts
Python alternative:
npx @modelcontextprotocol/inspector python .mcp-servers/<server-name>/main.py
Verify:
Beyond tools, MCP servers can expose:
| Capability | Purpose | VS Code access |
|---|---|---|
| Resources | Read-only data context (files, schemas, API docs) | Chat → Add Context → MCP Resources |
| Prompts | Pre-configured prompt templates | Type /<server>.<prompt> in chat |
| MCP Apps | Interactive UI (forms, visualisations, drag-and-drop) | Rendered inline in chat |
Add resources when the server has data the agent should reference. Add prompts when there are common task patterns. Consider MCP Apps (using @modelcontextprotocol/ext-apps SDK) for interactive output.
.vscode/mcp.jsonAdd the server to the project's MCP configuration:
{
"<server-name>": {
"type": "stdio",
"command": "npx",
"args": ["tsx", ".mcp-servers/<server-name>/src/index.ts"],
"env": {
"API_KEY": "${env:SERVER_NAME_API_KEY}"
}
}
}
Note: For production use, compile TypeScript first (
npx tsc) and reference the compiled JS output instead of runningtsxat runtime.
.github/copilot-instructions.mdTo bundle the server as part of an agent plugin for sharing:
Create .mcp.json at the plugin root (uses mcpServers key, not servers):
{
"mcpServers": {
"<server-name>": {
"command": "${CLAUDE_PLUGIN_ROOT}/servers/<server-name>",
"args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"]
}
}
}
Use ${CLAUDE_PLUGIN_ROOT} for all path references within the plugin
Plugin MCP servers start automatically on enable and are implicitly trusted
initialize request.vscode/mcp.json is valid JSON with the new server entry