Skip to main content
Glama
anhkhoa289

MCP Playground

by anhkhoa289

MCP Playground

MCP (Model Context Protocol) server với hỗ trợ cả hai phương thức transport:

  • Pure MCP SDK (Stdio) - Standard input/output transport

  • SSE Transport (Server-Sent Events) - HTTP-based transport

Tính năng

  • ✅ Hỗ trợ Pure MCP SDK với Stdio transport

  • ✅ Hỗ trợ SSE (Server-Sent Events) transport

  • ✅ Các công cụ (tools) ví dụ: echo, add, get_time, generate_uuid

  • ✅ Các tài nguyên (resources) ví dụ: server info, example data

  • ✅ TypeScript với type safety đầy đủ

  • ✅ Development mode với hot reload

Cài đặt

npm install

Sử dụng

1. Stdio Transport (Pure MCP SDK)

Chạy server với stdio transport:

# Development mode
npm run dev

# Production mode
npm run build
npm start

Server sẽ giao tiếp qua stdin/stdout, phù hợp cho việc tích hợp với Claude Desktop hoặc các MCP clients khác.

Cấu hình cho Claude Desktop

Thêm vào file cấu hình Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "mcp-playground": {
      "command": "node",
      "args": ["/path/to/mcp-playground/dist/index.js"]
    }
  }
}

Hoặc trong development mode:

{
  "mcpServers": {
    "mcp-playground": {
      "command": "npx",
      "args": ["tsx", "/path/to/mcp-playground/src/index.ts"]
    }
  }
}

2. SSE Transport (Server-Sent Events)

Chạy server với SSE transport:

# Development mode
npm run dev:sse

# Production mode
npm run build
npm run start:sse

Server sẽ chạy trên http://localhost:3000 với các endpoints:

  • GET /health - Health check

  • GET /sse - SSE connection endpoint

  • POST /messages - Client message endpoint

Kết nối với SSE Client

Sử dụng MCP Client để kết nối:

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";

const transport = new SSEClientTransport(
  new URL("http://localhost:3000/sse")
);

const client = new Client(
  {
    name: "example-client",
    version: "1.0.0",
  },
  {
    capabilities: {},
  }
);

await client.connect(transport);

API

Tools (Công cụ)

echo

Phản hồi lại tin nhắn được gửi.

Input:

{
  "message": "Hello, World!"
}

Output:

Echo: Hello, World!

add

Cộng hai số với nhau.

Input:

{
  "a": 5,
  "b": 3
}

Output:

5 + 3 = 8

get_time

Trả về thời gian hiện tại của server.

Input:

{}

Output:

Current server time: 2024-01-15T10:30:00.000Z

generate_uuid (chỉ SSE)

Tạo UUID ngẫu nhiên.

Input:

{}

Output:

Generated UUID: 123e4567-e89b-12d3-a456-426614174000

Resources (Tài nguyên)

info://server

Thông tin về MCP server.

data://example

Dữ liệu JSON ví dụ.

stats://connections (chỉ SSE)

Thống kê kết nối.

Cấu trúc dự án

mcp-playground/
├── src/
│   ├── index.ts          # Stdio transport server
│   └── sse-server.ts     # SSE transport server
├── dist/                 # Compiled JavaScript
├── package.json
├── tsconfig.json
└── README.md

Development

# Build project
npm run build

# Watch mode (auto rebuild)
npm run watch

# Run stdio server in dev mode
npm run dev

# Run SSE server in dev mode
npm run dev:sse

Kiểm thử

Test Stdio Transport

# Chạy server
npm run dev

# Gửi JSON-RPC request qua stdin (trong terminal khác)
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | npm run dev

Test SSE Transport

# Chạy server
npm run dev:sse

# Test health endpoint
curl http://localhost:3000/health

# Test SSE endpoint (trong browser hoặc với curl)
curl -N http://localhost:3000/sse

Tài liệu tham khảo

License

MIT

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/anhkhoa289/mcp-playground'

If you have feedback or need assistance with the MCP directory API, please join our Discord server