{"id":"27e2da0f-4f68-41d0-a869-e89a6e218b98","shortId":"wPEWv3","kind":"skill","title":"typescript-mcp-server-generator","tagline":"Generate a complete MCP server project in TypeScript with tools, resources, and proper configuration","description":"# Generate TypeScript MCP Server\n\nCreate a complete Model Context Protocol (MCP) server in TypeScript with the following specifications:\n\n## Requirements\n\n1. **Project Structure**: Create a new TypeScript/Node.js project with proper directory structure\n2. **NPM Packages**: Include @modelcontextprotocol/sdk, zod@3, and either express (for HTTP) or stdio support\n3. **TypeScript Configuration**: Proper tsconfig.json with ES modules support\n4. **Server Type**: Choose between HTTP (with Streamable HTTP transport) or stdio-based server\n5. **Tools**: Create at least one useful tool with proper schema validation\n6. **Error Handling**: Include comprehensive error handling and validation\n\n## Implementation Details\n\n### Project Setup\n- Initialize with `npm init` and create package.json\n- Install dependencies: `@modelcontextprotocol/sdk`, `zod@3`, and transport-specific packages\n- Configure TypeScript with ES modules: `\"type\": \"module\"` in package.json\n- Add dev dependencies: `tsx` or `ts-node` for development\n- Create proper .gitignore file\n\n### Server Configuration\n- Use `McpServer` class for high-level implementation\n- Set server name and version\n- Choose appropriate transport (StreamableHTTPServerTransport or StdioServerTransport)\n- For HTTP: set up Express with proper middleware and error handling\n- For stdio: use StdioServerTransport directly\n\n### Tool Implementation\n- Use `registerTool()` method with descriptive names\n- Define schemas using zod for input and output validation\n- Provide clear `title` and `description` fields\n- Return both `content` and `structuredContent` in results\n- Implement proper error handling with try-catch blocks\n- Support async operations where appropriate\n\n### Resource/Prompt Setup (Optional)\n- Add resources using `registerResource()` with ResourceTemplate for dynamic URIs\n- Add prompts using `registerPrompt()` with argument schemas\n- Consider adding completion support for better UX\n\n### Code Quality\n- Use TypeScript for type safety\n- Follow async/await patterns consistently\n- Implement proper cleanup on transport close events\n- Use environment variables for configuration\n- Add inline comments for complex logic\n- Structure code with clear separation of concerns\n\n## Example Tool Types to Consider\n- Data processing and transformation\n- External API integrations\n- File system operations (read, search, analyze)\n- Database queries\n- Text analysis or summarization (with sampling)\n- System information retrieval\n\n## Configuration Options\n- **For HTTP Servers**: \n  - Port configuration via environment variables\n  - CORS setup for browser clients\n  - Session management (stateless vs stateful)\n  - DNS rebinding protection for local servers\n  \n- **For stdio Servers**:\n  - Proper stdin/stdout handling\n  - Environment-based configuration\n  - Process lifecycle management\n\n## Testing Guidance\n- Explain how to run the server (`npm start` or `npx tsx server.ts`)\n- Provide MCP Inspector command: `npx @modelcontextprotocol/inspector`\n- For HTTP servers, include connection URL: `http://localhost:PORT/mcp`\n- Include example tool invocations\n- Add troubleshooting tips for common issues\n\n## Additional Features to Consider\n- Sampling support for LLM-powered tools\n- User input elicitation for interactive workflows\n- Dynamic tool registration with enable/disable capabilities\n- Notification debouncing for bulk updates\n- Resource links for efficient data references\n\nGenerate a complete, production-ready MCP server with comprehensive documentation, type safety, and error handling.","tags":["typescript","mcp","server","generator","awesome","copilot","github","agent-skills","agents","custom-agents","github-copilot","hacktoberfest"],"capabilities":["skill","source-github","skill-typescript-mcp-server-generator","topic-agent-skills","topic-agents","topic-awesome","topic-custom-agents","topic-github-copilot","topic-hacktoberfest","topic-prompt-engineering"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/typescript-mcp-server-generator","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add github/awesome-copilot","source_repo":"https://github.com/github/awesome-copilot","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 33270 github stars · SKILL.md body (3,536 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:52:26.913Z","embedding":null,"createdAt":"2026-04-18T20:25:34.763Z","updatedAt":"2026-05-18T18:52:26.913Z","lastSeenAt":"2026-05-18T18:52:26.913Z","tsv":"'1':39 '2':51 '3':57,66,126 '4':75 '5':90 '6':102 'ad':256 'add':141,239,248,285,398 'addit':404 'analysi':319 'analyz':315 'api':308 'appropri':171,235 'argument':253 'async':232 'async/await':270 'base':88,361 'better':260 'block':230 'browser':340 'bulk':430 'capabl':426 'catch':229 'choos':78,170 'class':159 'cleanup':275 'clear':210,294 'client':341 'close':278 'code':262,292 'command':383 'comment':287 'common':402 'complet':8,26,257,440 'complex':289 'comprehens':106,447 'concern':297 'configur':19,68,132,156,284,327,333,362 'connect':390 'consid':255,302,407 'consist':272 'content':217 'context':28 'cor':337 'creat':24,42,92,120,151 'data':303,436 'databas':316 'debounc':428 'defin':200 'depend':123,143 'descript':198,213 'detail':112 'dev':142 'develop':150 'direct':191 'directori':49 'dns':347 'document':448 'dynam':246,421 'effici':435 'either':59 'elicit':417 'enable/disable':425 'environ':281,335,360 'environment-bas':359 'error':103,107,185,224,452 'es':72,135 'event':279 'exampl':298,395 'explain':368 'express':60,180 'extern':307 'featur':405 'field':214 'file':154,310 'follow':36,269 'generat':5,6,20,438 'gitignor':153 'guidanc':367 'handl':104,108,186,225,358,453 'high':162 'high-level':161 'http':62,80,83,177,330,387 'implement':111,164,193,222,273 'includ':54,105,389,394 'inform':325 'init':118 'initi':115 'inlin':286 'input':205,416 'inspector':382 'instal':122 'integr':309 'interact':419 'invoc':397 'issu':403 'least':94 'level':163 'lifecycl':364 'link':433 'llm':412 'llm-power':411 'local':351 'localhost':392 'logic':290 'manag':343,365 'mcp':3,9,22,30,381,444 'mcpserver':158 'method':196 'middlewar':183 'model':27 'modelcontextprotocol/inspector':385 'modelcontextprotocol/sdk':55,124 'modul':73,136,138 'name':167,199 'new':44 'node':148 'notif':427 'npm':52,117,374 'npx':377,384 'one':95 'oper':233,312 'option':238,328 'output':207 'packag':53,131 'package.json':121,140 'pattern':271 'port':332 'port/mcp':393 'power':413 'process':304,363 'product':442 'production-readi':441 'project':11,40,46,113 'prompt':249 'proper':18,48,69,99,152,182,223,274,356 'protect':349 'protocol':29 'provid':209,380 'qualiti':263 'queri':317 'read':313 'readi':443 'rebind':348 'refer':437 'registerprompt':251 'registerresourc':242 'registertool':195 'registr':423 'requir':38 'resourc':16,240,432 'resource/prompt':236 'resourcetempl':244 'result':221 'retriev':326 'return':215 'run':371 'safeti':268,450 'sampl':323,408 'schema':100,201,254 'search':314 'separ':295 'server':4,10,23,31,76,89,155,166,331,352,355,373,388,445 'server.ts':379 'session':342 'set':165,178 'setup':114,237,338 'skill' 'skill-typescript-mcp-server-generator' 'source-github' 'specif':37,130 'start':375 'state':346 'stateless':344 'stdin/stdout':357 'stdio':64,87,188,354 'stdio-bas':86 'stdioservertransport':175,190 'streamabl':82 'streamablehttpservertransport':173 'structur':41,50,291 'structuredcont':219 'summar':321 'support':65,74,231,258,409 'system':311,324 'test':366 'text':318 'tip':400 'titl':211 'tool':15,91,97,192,299,396,414,422 'topic-agent-skills' 'topic-agents' 'topic-awesome' 'topic-custom-agents' 'topic-github-copilot' 'topic-hacktoberfest' 'topic-prompt-engineering' 'transform':306 'transport':84,129,172,277 'transport-specif':128 'tri':228 'troubleshoot':399 'try-catch':227 'ts':147 'ts-node':146 'tsconfig.json':70 'tsx':144,378 'type':77,137,267,300,449 'typescript':2,13,21,33,67,133,265 'typescript-mcp-server-gener':1 'typescript/node.js':45 'updat':431 'uri':247 'url':391 'use':96,157,189,194,202,241,250,264,280 'user':415 'ux':261 'valid':101,110,208 'variabl':282,336 'version':169 'via':334 'vs':345 'workflow':420 'zod':56,125,203","prices":[{"id":"ad556e64-9542-4e10-9edc-1f78ec983956","listingId":"27e2da0f-4f68-41d0-a869-e89a6e218b98","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:25:34.763Z"}],"sources":[{"listingId":"27e2da0f-4f68-41d0-a869-e89a6e218b98","source":"github","sourceId":"github/awesome-copilot/typescript-mcp-server-generator","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/typescript-mcp-server-generator","isPrimary":false,"firstSeenAt":"2026-04-18T21:51:28.974Z","lastSeenAt":"2026-05-18T18:52:26.913Z"},{"listingId":"27e2da0f-4f68-41d0-a869-e89a6e218b98","source":"skills_sh","sourceId":"github/awesome-copilot/typescript-mcp-server-generator","sourceUrl":"https://skills.sh/github/awesome-copilot/typescript-mcp-server-generator","isPrimary":true,"firstSeenAt":"2026-04-18T20:25:34.763Z","lastSeenAt":"2026-05-07T22:40:17.066Z"}],"details":{"listingId":"27e2da0f-4f68-41d0-a869-e89a6e218b98","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"typescript-mcp-server-generator","github":{"repo":"github/awesome-copilot","stars":33270,"topics":["agent-skills","agents","ai","awesome","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"license":"mit","html_url":"https://github.com/github/awesome-copilot","pushed_at":"2026-05-18T01:26:59Z","description":"Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.","skill_md_sha":"9495356c6790349b21a4722ab93b0b98a3389f74","skill_md_path":"skills/typescript-mcp-server-generator/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/github/awesome-copilot/tree/main/skills/typescript-mcp-server-generator"},"layout":"multi","source":"github","category":"awesome-copilot","frontmatter":{"name":"typescript-mcp-server-generator","description":"Generate a complete MCP server project in TypeScript with tools, resources, and proper configuration"},"skills_sh_url":"https://skills.sh/github/awesome-copilot/typescript-mcp-server-generator"},"updatedAt":"2026-05-18T18:52:26.913Z"}}