Communitygithub.com

Palald/mcp-sdk-typescript

๐Ÿš€ MCP SDK for TypeScript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ ํ™”๋œ ์„ฑ๋Šฅ, ์‹ค์‹œ๊ฐ„ ํ†ต์‹ , ๊ฐ•๋ ฅํ•œ ์„ธ์…˜ ๊ด€๋ฆฌ๋ฅผ ๊ฐ–์ถ˜ ํšจ์œจ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜์„ธ์š”.

mcp-sdk-typescript๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

์ด ์Šคํ‚ฌ์€ TypeScript ๊ธฐ๋ฐ˜ MCP(Model Context Protocol) SDK๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํšจ์œจ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. MCP SDK๋Š” AI ์—์ด์ „ํŠธ์™€ ๊ฐœ๋ฐœ ๋„๊ตฌ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ‘œ์ค€ํ™”ํ•˜์—ฌ ์ตœ์ ํ™”๋œ ์„ฑ๋Šฅ๊ณผ ์‹ค์‹œ๊ฐ„ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•๋ ฅํ•œ ์„ธ์…˜ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ์„ ์•ˆ์ •์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, TypeScript์˜ ํƒ€์ž… ์•ˆ์ •์„ฑ์„ ํ™œ์šฉํ•˜์—ฌ ์ƒ์‚ฐ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค. ์ด SDK๋Š” Claude Code, Cursor, Codex ๋“ฑ ๋‹ค์–‘ํ•œ AI ์—์ด์ „ํŠธ ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ณต์žกํ•œ AI ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐœ๋ฐœ์„ ๋‹จ์ˆœํ™”ํ•ฉ๋‹ˆ๋‹ค. SDK ๋ฌธ์„œ์—๋Š” ์„ค์น˜ ๋ฐฉ๋ฒ•, ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•, API ์ฐธ์กฐ, ๊ทธ๋ฆฌ๊ณ  ์˜ˆ์ œ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ ๋น ๋ฅด๊ฒŒ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€์› ๋Œ€์ƒ~Claude Code~Codex CLI~Cursor
npx skills add Palald/mcp-sdk-typescript

์ฆ๊ฒจ ์‚ฌ์šฉํ•˜๋Š” AI์—๊ฒŒ ๋ฌผ์–ด๋ณด๊ธฐ

์ด ์—์ด์ „ํŠธ ์Šคํ‚ฌ์ด ๋ฏธ๋ฆฌ ๋กœ๋“œ๋œ ์ƒˆ ์ฑ„ํŒ…์„ ์—ฝ๋‹ˆ๋‹ค.

๋ฌธ์„œ

mcp-sdk-typescript์€(๋Š”) ๋ฌด์—‡์„ ํ•˜๋‚˜์š”?

๐Ÿš€ MCP SDK for TypeScript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ ํ™”๋œ ์„ฑ๋Šฅ, ์‹ค์‹œ๊ฐ„ ํ†ต์‹ , ๊ฐ•๋ ฅํ•œ ์„ธ์…˜ ๊ด€๋ฆฌ๋ฅผ ๊ฐ–์ถ˜ ํšจ์œจ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜์„ธ์š”.

์„ค์น˜

npm install @palald/mcp-sdk-typescript

๋˜๋Š” Yarn์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ:

yarn add @palald/mcp-sdk-typescript

๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

import { MCPServer, MCPSession } from '@palald/mcp-sdk-typescript';

const server = new MCPServer({
  port: 3000,
  transport: 'websocket'
});

server.on('connection', (session: MCPSession) => {
  console.log('์ƒˆ ์„ธ์…˜ ์—ฐ๊ฒฐ๋จ:', session.id);
  
  session.on('message', (message) => {
    console.log('๋ฉ”์‹œ์ง€ ์ˆ˜์‹ :', message);
    session.send('์—์ฝ”: ' + message);
  });
});

server.start();

์ฃผ์š” ๊ธฐ๋Šฅ

  • ์ตœ์ ํ™”๋œ ์„ฑ๋Šฅ: ๋‚ฎ์€ ์ง€์—ฐ ์‹œ๊ฐ„๊ณผ ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์œ„ํ•œ ํšจ์œจ์ ์ธ ์ด๋ฒคํŠธ ๋ฃจํ”„
  • ์‹ค์‹œ๊ฐ„ ํ†ต์‹ : WebSocket ๋ฐ SSE(Server-Sent Events) ์ง€์›
  • ์„ธ์…˜ ๊ด€๋ฆฌ: ์ž๋™ ์—ฐ๊ฒฐ ๋ณต๊ตฌ ๋ฐ ์ƒํƒœ ์œ ์ง€
  • ํƒ€์ž… ์•ˆ์ „์„ฑ: TypeScript ์ œ๋„ค๋ฆญ์„ ํ™œ์šฉํ•œ ๊ฐ•๋ ฅํ•œ ํƒ€์ž… ์ถ”๋ก 
  • ํ™•์žฅ์„ฑ: ํ”Œ๋Ÿฌ๊ทธ์ธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ†ตํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

API ์ฐธ์กฐ

MCPServer

๋ฉ”์„œ๋“œ์„ค๋ช…
start()์„œ๋ฒ„ ์‹œ์ž‘
stop()์„œ๋ฒ„ ์ค‘์ง€
broadcast(message)๋ชจ๋“  ์—ฐ๊ฒฐ๋œ ํด๋ผ์ด์–ธํŠธ์— ๋ฉ”์‹œ์ง€ ์ „์†ก

MCPSession

์†์„ฑ์„ค๋ช…
id๊ณ ์œ  ์„ธ์…˜ ์‹๋ณ„์ž
stateํ˜„์žฌ ์„ธ์…˜ ์ƒํƒœ (connected, disconnected, reconnecting)

ํ™˜๊ฒฝ ๋ณ€์ˆ˜

  • MCP_PORT: ์„œ๋ฒ„ ํฌํŠธ ๋ฒˆํ˜ธ (๊ธฐ๋ณธ๊ฐ’: 3000)
  • MCP_TRANSPORT: ์ „์†ก ํ”„๋กœํ† ์ฝœ (websocket ๋˜๋Š” sse)

์˜ˆ์ œ

์ž์„ธํ•œ ์˜ˆ์ œ๋Š” examples/ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋ผ์ด์„ ์Šค

MIT

๊ด€๋ จ ์Šคํ‚ฌ