Claude Marketplaces
SkillsMCP serversMarketplacesDigestTools
Submit

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP servers by category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control
Claude Marketplaces

An independent directory of skills, plugins and MCP servers for Claude Code. Not affiliated with Anthropic.

Browse

  • Skills
  • MCP servers
  • Marketplaces
  • Weekly digest
  • Skill index
  • MCP index
  • Marketplace index

Site

  • About
  • Tools
  • Submit
  • Feedback
  • Privacy
  • llms.txt
  • Plugins reference

Maker

  • Snug
  • Agent Caffeine
  • knobs
  • Wax
  • Vectoys
  • mertduzgun.com
Crafted at
Skills/Backend & APIs
github avatar

Typescript Mcp Server Generator

github/awesome-copilotOfficial

The typescript-mcp-server-generator skill generates a complete Model Context Protocol (MCP) server project in TypeScript with tools, resources, and proper configuration, including project structure setup, transport selection (HTTP or stdio), tool implementation with Zod validation, and error handling. It is for developers building MCP servers who need a structured foundation with best practices for TypeScript configuration, async patterns, and separation of concerns. The skill solves the problem of scaffolding a production-ready MCP server from scratch by providing templates and requirements for server type selection, dependency management, tool registration, and code quality standards.

installs
12.1K
GitHub stars
40.5K
last updated
Aug 21, 2026
View on GitHubSave

Install

$ npx -y skills add github/awesome-copilot --skill typescript-mcp-server-generator --agent claude-code

Installs into .claude/skills of the current project.

Files

Generate TypeScript MCP Server

Create a complete Model Context Protocol (MCP) server in TypeScript using the MCP TypeScript SDK v2 with the following specifications:

Requirements

  1. Project Structure: Create a new TypeScript/Node.js project with proper directory structure
  2. NPM Packages: The v1 monolithic @modelcontextprotocol/sdk package is retired. Use the focused v2 packages:
    • @modelcontextprotocol/server — server implementation (stdio transport via the @modelcontextprotocol/server/stdio subpath)
    • @modelcontextprotocol/node — Node HTTP transport (NodeStreamableHTTPServerTransport), or a framework adapter: @modelcontextprotocol/express, @modelcontextprotocol/hono, @modelcontextprotocol/fastify — each adapter requires its peer framework to be installed alongside it (e.g. @modelcontextprotocol/express + express)
    • @modelcontextprotocol/core — shared protocol schemas (import *Schema constants from here, not from sdk/types.js)
    • zod@^4.2 — v2 requires Zod 4.2+; do not use zod@3
  3. Runtime: Node.js 20+ (v2 minimum); ESM-first with "type": "module" (a CommonJS build is also shipped, so require() works if needed)
  4. Server Type: Choose between HTTP (Streamable HTTP transport) or stdio-based server. SSE and WebSocket transports were removed in v2 — do not generate them.
  5. Tools: Create at least one useful tool with proper schema validation
  6. Error Handling: Include comprehensive error handling and validation

Implementation Details

Project Setup

  • Initialize with npm init and create package.json
  • Install dependencies: @modelcontextprotocol/server, zod@^4.2, and the transport package — @modelcontextprotocol/node for plain Node HTTP, or a framework adapter together with its peer framework (e.g. npm install @modelcontextprotocol/express express)
  • Configure TypeScript with ES modules: "type": "module" in package.json
  • Add dev dependencies: tsx or ts-node for development
  • Create proper .gitignore file

Server Configuration

  • Use McpServer class from @modelcontextprotocol/server for high-level implementation
  • Set server name and version
  • Choose the appropriate transport:
    • HTTP (Node): NodeStreamableHTTPServerTransport from @modelcontextprotocol/node
    • HTTP (Web Standard runtimes): WebStandardStreamableHTTPServerTransport from @modelcontextprotocol/server
    • stdio: StdioServerTransport from @modelcontextprotocol/server/stdio
  • For HTTP: prefer a framework adapter (@modelcontextprotocol/express, etc.) with proper middleware and error handling
  • Note that v2 uses Web Standard Headers/Request types; read headers with ctx.http?.req?.headers.get('x-custom')

Tool Implementation

  • Use registerTool() with a config object — v1 variadic .tool() signatures are gone:
    server.registerTool('greet', {
      description: 'Greet user',
      inputSchema: z.object({ name: z.string() })
    }, async ({ name }, ctx) => {
      return { content: [{ type: 'text', text: `Hello, ${name}!` }] };
    });
    
  • Schemas must be full Zod objects (z.object({...})) — raw shape objects ({ name: z.string() }) are deprecated
  • Provide clear title and description fields
  • Return both content and structuredContent in results
  • The handler's second parameter is a structured ctx object (replaces v1 extra): ctx.mcpReq.signal, ctx.mcpReq.id, ctx.mcpReq.send(...), ctx.mcpReq.notify(...)
  • Implement proper error handling with try-catch blocks; use the v2 error hierarchy (ProtocolError, SdkError, SdkHttpError with .status) instead of v1 McpError/StreamableHTTPError
  • Support async operations where appropriate

Resource/Prompt Setup (Optional)

  • Add resources using registerResource() with ResourceTemplate for dynamic URIs
  • Add prompts using registerPrompt() with argument schemas (same config-object style as registerTool())
  • Consider adding completion support for better UX; note the v2 completable() wrapper order: completable(z.string(), callback).optional() (optional applied outside)

Code Quality

  • Use TypeScript for type safety
  • Follow async/await patterns consistently
  • Implement proper cleanup on transport close events
  • Use environment variables for configuration
  • Add inline comments for complex logic
  • Structure code with clear separation of concerns

Example Tool Types to Consider

  • Data processing and transformation
  • External API integrations
  • File system operations (read, search, analyze)
  • Database queries
  • Text analysis or summarization (LLM-assisted via the multi-round input_required pattern)
  • System information retrieval

Configuration Options

  • For HTTP Servers:

    • Port configuration via environment variables
    • CORS setup for browser clients
    • Session management (stateless vs stateful)
    • DNS rebinding protection for local servers
    • Strict Content-Type handling: v2 rejects non-application/json POST bodies
  • For stdio Servers:

    • Proper stdin/stdout handling
    • Environment-based configuration
    • Process lifecycle management

Migrating an Existing v1 Server

  • Run the official codemod first: npx @modelcontextprotocol/codemod@latest v1-to-v2 .
  • Then search for @mcp-codemod-error markers for the parts requiring manual judgment (transport choice, header reads, error classification)
  • Swap McpError + ErrorCode checks for the new error classes; HTTP status now lives on error.status, not error.code
  • Server.createMessage(), listRoots(), sendLoggingMessage() and the roots/sampling/logging capability fields are deprecated in v2 — avoid them in new code

Testing Guidance

  • Explain how to run the server (npm start or npx tsx server.ts)
  • Provide MCP Inspector command: npx @modelcontextprotocol/inspector
  • For HTTP servers, include connection URL: http://localhost:PORT/mcp
  • Include example tool invocations
  • Add troubleshooting tips for common issues

Additional Features to Consider

  • LLM-powered tools using the multi-round input_required pattern (the v2 replacement for the deprecated sampling subsystem)
  • User input elicitation for interactive workflows
  • Dynamic tool registration with enable/disable capabilities
  • Notification debouncing for bulk updates
  • Resource links for efficient data references

Generate a complete, production-ready MCP server with comprehensive documentation, type safety, and error handling.

SKILL.md on GitHub

Sponsors

SnugThe clipboard manager you and your agent can use, safelyAgent CaffeineClose your lid, come back to finished workWaxBlock anything with supervision, without erasing your iPhoneOpen StepsSponsoredFree and open-source skills that make AI coding agents easier to understand, verify, and control.

Details

Repository
github.com/github/awesome-copilot
Categories
Backend & APIs, Git & Pull Requests, AI & Agent Building, Automation & Workflows

More from github/awesome-copilot

All 318
  • Java Junit11.7K
  • Dotnet Design Pattern Review11.6K
  • Dotnet Upgrade11.5K
  • Apple Appstore Reviewer11.3K
  • Update Implementation Plan11.1K
  • Make Repo Contribution11.1K
  • Review And Refactor11.1K
  • Editorconfig11K
  • Csharp Async10.9K
  • Java Docs10.8K
  • Create Github Action Workflow Specification10.8K
  • Python Mcp Server Generator10.4K
  • Csharp Xunit10.3K
  • Ai Prompt Engineering Safety Review10.3K
  • Agentic Eval10.2K
  • Create Architectural Decision Record10.2K
  • Breakdown Feature Prd10K
  • Refactor Method Complexity Reduce10K
  • Pdftk Server10K
  • Scoutqa Test10K
  • Powerbi Modeling9.9K
  • Nano Banana Pro Openrouter9.9K
  • Markdown To Html9.9K
  • Meeting Minutes9.9K

Recommended

More Backend & APIs
1hexiaochun avatarseedance2-apihexiaochun/seedance2-apiEnd-to-end AI video generation from storyboard concept to final output. Supports both MCP and standalone Python script modes; automatically detects availability12Kinstalls
2vuejs-ai avatarvue-options-api-best-practicesvuejs-ai/skillsVue 3 Options API style (data(), methods, this context). Each reference shows Options API solution only.11.7Kinstalls
3github avatarpython-mcp-server-generatorgithub/awesome-copilotGenerate a complete MCP server project in Python with tools, resources, and proper configuration10.4Kinstalls
4elevenlabs avatarsetup-api-keyelevenlabs/skillsGuides users through setting up an ElevenLabs API key for ElevenLabs MCP tools. Use when the user needs to configure an ElevenLabs API key, when ElevenLabs tool10.1Kinstalls
5github avatarpdftk-servergithub/awesome-copilotSkill for using the command-line tool pdftk (PDFtk Server) for working with PDF files. Use when asked to merge PDFs, split PDFs, rotate pages, encrypt or decryp10Kinstalls
6github avatarrust-mcp-server-generatorgithub/awesome-copilotGenerate a complete Rust Model Context Protocol server project with tools, prompts, resources, and tests using the official rmcp SDK9.2Kinstalls