Devbrother2024 Typescript Mcp Server Boilerplate

ai.smithery由 smithery.ai 發布官方發布者v1.0.0更新於 Nov 10, 2026

Kickstart development with a customizable TypeScript template featuring sample tools for greeting,…

發布方自己的服務:222wcnm Bilistalkermcp

已驗證Streamable HTTP可網頁執行開發者工具AI 與機器學習

概覽

AI 產生的概覽

一個 TypeScript MCP 伺服器樣板範本,附帶問候與計算機範例工具,供開發者打造自己的 MCP 伺服器。

可以做什麼
這是一個使用 TypeScript SDK 建置 MCP 伺服器的起始範本。它內建範例工具,例如計算機(加、減、乘、除)與問候工具,以及伺服器或系統資訊等範例資源。開發者可修改原始碼來重新命名伺服器、以 Zod 結構定義新增工具並註冊資源,然後建置並執行。
適用情境
當你需要一個可運作的 TypeScript MCP 伺服器起點,而不是現成的終端工具時使用它。它面向會修改程式碼並加入自己工具與資源的開發者。
執行需求
需要 Node.js 與 npm 來安裝相依套件並建置;專案透過 npm run build 編譯,並以 node 執行。若透過託管的 Smithery 端點連線,需要 Authorization bearer token 標頭。未宣告其他帳號或 API 金鑰。
安裝前請注意
託管端點需要 Authorization bearer token,這是機密資訊,應妥善保管。此範本是範例程式碼:你加入的任何工具都可能呼叫外部 API 或讀取檔案,執行前請檢查自己新增內容的行為。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Devbrother2024 Typescript Mcp Server Boilerplate,將其新增到工作區。
  2. 連接 Authorization token 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/ai.smithery%2Fdevbrother2024-typescript-mcp-server-boilerplate/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "devbrother2024-typescript-boilerplate": {
      "type": "http",
      "url": "https://server.smithery.ai/@devbrother2024/typescript-mcp-server-boilerplate/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

TypeScript MCP Server 보일러플레이트

TypeScript MCP SDK를 활용하여 Model Context Protocol (MCP) 서버를 빠르게 개발할 수 있는 보일러플레이트 프로젝트입니다.

📁 프로젝트 구조

typescript-mcp-server-boilerplate/├── src/│   └── index.ts          # MCP 서버 메인 진입점├── build/                # 컴파일된 JavaScript 파일 (빌드 후 생성)├── package.json          # 프로젝트 의존성 및 스크립트├── tsconfig.json         # TypeScript 설정└── README.md            # 프로젝트 문서

🚀 시작하기

1. 의존성 설치

bash
npm install

2. 서버 이름 설정

src/index.ts 파일에서 서버 이름을 수정하세요:

typescript
const server = new McpServer({    name: 'typescript-mcp-server', // 여기를 원하는 서버 이름으로 변경    version: '1.0.0',    // 활성화 하고자 하는 기능 설정    capabilities: {        tools: {},        resources: {}    }})

💡 팁: 현재 보일러플레이트에는 이미 계산기와 인사 도구, 그리고 서버 정보 리소스가 예시로 구현되어 있습니다.

3. 빌드

bash
npm run build

4. 실행

bash
node build/index.js

빌드가 성공하면 build/ 디렉토리에 컴파일된 JavaScript 파일이 생성되고, 서버가 MCP 클라이언트의 연결을 대기합니다.

🛠️ 개발 가이드

MCP 도구(Tool) 추가하기

MCP 서버에 새로운 도구를 추가하려면 server.tool() 메서드에 Zod 스키마를 직접 정의하여 등록합니다:

typescript
import { z } from 'zod'
// 계산기 도구 추가server.tool(    'calculator',    {        operation: z            .enum(['add', 'subtract', 'multiply', 'divide'])            .describe('수행할 연산 (add, subtract, multiply, divide)'),        a: z.number().describe('첫 번째 숫자'),        b: z.number().describe('두 번째 숫자')    },    async ({ operation, a, b }) => {        // 연산 수행        let result: number        switch (operation) {            case 'add':                result = a + b                break            case 'subtract':                result = a - b                break            case 'multiply':                result = a * b                break            case 'divide':                if (b === 0) throw new Error('0으로 나눌 수 없습니다')                result = a / b                break            default:                throw new Error('지원하지 않는 연산입니다')        }
        const operationSymbols = {            add: '+',            subtract: '-',            multiply: '×',            divide: '÷'        } as const
        const operationSymbol =            operationSymbols[operation as keyof typeof operationSymbols]
        return {            content: [                {                    type: 'text',                    text: `${a} ${operationSymbol} ${b} = ${result}`                }            ]        }    })
더 복잡한 도구 예시
typescript
// 날씨 정보 조회 도구server.tool(    'get_weather',    {        city: z.string().describe('날씨를 조회할 도시명'),        unit: z            .enum(['celsius', 'fahrenheit'])            .optional()            .default('celsius')            .describe('온도 단위 (기본값: celsius)')    },    async ({ city, unit }) => {        try {            // 실제 날씨 API 호출 로직 (예시)            const weatherData = await fetchWeatherData(city, unit)
            return {                content: [                    {                        type: 'text',                        text: `${city}의 현재 날씨:온도: ${weatherData.temperature}°${unit === 'celsius' ? 'C' : 'F'}날씨: ${weatherData.condition}습도: ${weatherData.humidity}%풍속: ${weatherData.windSpeed}km/h`                    }                ]            }        } catch (error) {            throw new Error(                `날씨 정보를 가져올 수 없습니다: ${(error as Error).message}`            )        }    })
// 도우미 함수async function fetchWeatherData(city: string, unit: string) {    // 실제 날씨 API 호출 구현    // 여기서는 예시 데이터 반환    return {        temperature: unit === 'celsius' ? 22 : 72,        condition: '맑음',        humidity: 65,        windSpeed: 12    }}

리소스 추가하기

MCP 서버에 리소스를 추가하여 외부 데이터나 파일에 대한 접근을 제공할 수 있습니다:

typescript
// 리소스 등록server.resource(    'example-file',    'file://example.txt',    {        name: '예시 텍스트 파일',        description: '예시 텍스트 파일 설명',        mimeType: 'text/plain'    },    async () => {        return {            contents: [                {                    uri: 'file://example.txt',                    mimeType: 'text/plain',                    text: '예시 파일 내용입니다.'                }            ]        }    })
// 동적 리소스 예시server.resource(    'app-settings',    'config://settings',    {        name: '애플리케이션 설정',        description: '애플리케이션의 현재 설정 정보',        mimeType: 'application/json'    },    async () => {        const settings = {            theme: 'dark',            language: 'ko-KR',            notifications: true,            lastUpdated: new Date().toISOString()        }
        return {            contents: [                {                    uri: 'config://settings',                    mimeType: 'application/json',                    text: JSON.stringify(settings, null, 2)                }            ]        }    })

📦 주요 의존성

  • @modelcontextprotocol/sdk: MCP 프로토콜 구현을 위한 공식 SDK
  • zod: TypeScript 우선 스키마 검증 라이브러리
  • typescript: TypeScript 컴파일러

🔧 스크립트

  • npm run build: TypeScript를 JavaScript로 컴파일하고 실행 권한 설정

📋 사용 예시

완전한 서버 예시

typescript
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: 'my-mcp-server',    version: '1.0.0',    capabilities: {        tools: {},        resources: {}    }})
// 간단한 인사 도구server.tool(    'greet',    {        name: z.string().describe('인사할 사람의 이름'),        language: z            .enum(['ko', 'en'])            .optional()            .default('ko')            .describe('인사 언어 (기본값: ko)')    },    async ({ name, language }) => {        const greeting =            language === 'ko' ? `안녕하세요, ${name}님!` : `Hello, ${name}!`
        return {            content: [                {                    type: 'text',                    text: greeting                }            ]        }    })
// 시스템 정보 리소스server.resource(    'system-info',    'system://info',    {        name: '시스템 정보',        description: '서버의 현재 상태 및 시스템 정보',        mimeType: 'application/json'    },    async () => {        const systemInfo = {            server: 'my-mcp-server',            version: '1.0.0',            timestamp: new Date().toISOString(),            uptime: process.uptime()        }
        return {            contents: [                {                    uri: 'system://info',                    mimeType: 'application/json',                    text: JSON.stringify(systemInfo, null, 2)                }            ]        }    })
// 서버 시작async function main() {    const transport = new StdioServerTransport()    await server.connect(transport)    console.error('MCP 서버가 시작되었습니다')}
main().catch(console.error)

🔧 Cursor MCP 연결

개발한 MCP 서버를 Cursor에서 테스트할 수 있습니다:

설정 파일 수정

./.cursor/mcp.json 파일을 편집합니다:

json
{    "mcpServers": {        "typescript-mcp-server": {            "command": "node",            "args": ["/ABSOLUTE/PATH/TO/YOUR/PROJECT/build/index.js"]        }    }}

주의: 절대 경로를 사용해야 합니다. pwd 명령어로 현재 경로를 확인하세요.

테스트 명령어

Cursor MCP에서 다음과 같이 테스트해볼 수 있습니다:

  • "5 더하기 3은 얼마야?" (계산기 도구 테스트)
  • "안녕하세요 라고 인사해줘" (인사 도구 테스트)
  • 서버 정보 리소스 조회

🔗 참고 자료

📄 라이선스

MIT

來源:README.md,提交 db529f0

工具

0
SourceWeft 尚未讀取此伺服器的工具。

版本歷史

1
  1. v1.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 75%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。

其他 Smithery 整合