Skip to main content
Glama
mcp-swagger-ui-architecture.mdโ€ข18.9 kB
# MCP Swagger UI ๆžถๆž„่ฎพ่ฎกๆ–‡ๆกฃ ## ๆ•ดไฝ“ๆžถๆž„ๅ›พ ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ็”จๆˆท็•Œ้ขๅฑ‚ (UI Layer) โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ Home.vue โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ ่พ“ๅ…ฅๅŒบๅŸŸ โ”‚ ้ข„่งˆๅŒบๅŸŸ โ”‚ ้…็ฝฎๅŒบๅŸŸ โ”‚ โ”‚ โ”‚ โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข URL ่พ“ๅ…ฅ โ”‚ โ€ข API ไฟกๆฏ โ”‚ โ€ข HTTP ๆ–นๆณ• โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ๆ–‡ไปถไธŠไผ  โ”‚ โ€ข ็ซฏ็‚นๅˆ—่กจ โ”‚ โ€ข ๆ ‡็ญพ่ฟ‡ๆปค โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ๆ–‡ๆœฌ็ฒ˜่ดด โ”‚ โ€ข ็Šถๆ€ๆ˜พ็คบ โ”‚ โ€ข ้ซ˜็บง้€‰้กน โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ ็ป“ๆžœๅŒบๅŸŸ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ€ข MCP ้…็ฝฎ้ข„่งˆ โ€ข ไธ‹่ฝฝๅŠŸ่ƒฝ โ€ข ๅคๅˆถๅŠŸ่ƒฝ โ€ข ๅฏๅŠจๅ‘ฝไปค โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ†• (Vue Router) โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ็Šถๆ€็ฎก็†ๅฑ‚ (State Layer) โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ Pinia Store โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ AppStore (stores/app.ts) โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€ State: โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข inputSource: InputSource โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข config: ConvertConfig โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข apiInfo: OpenApiInfo โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข endpoints: ApiEndpoint[] โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข convertResult: ConvertResult โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข loading: boolean โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข error: string โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€ Getters: โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข isValidInput โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข availableTags โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข filteredEndpoints โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€ Actions: โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข setInputSource() โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข validateInput() โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข previewApi() โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข convertToMcp() โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€ Mutations: (้€š่ฟ‡ Actions ่‡ชๅŠจๅค„็†) โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ†• (Axios HTTP) โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๆœๅŠกๅฑ‚ (Service Layer) โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ API Service โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ utils/api.ts โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€ validateApi(source): ้ชŒ่ฏ OpenAPI ่ง„่Œƒ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€ previewApi(source): ้ข„่งˆ API ไฟกๆฏ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€ convertApi(params): ่ฝฌๆขไธบ MCP ๆ ผๅผ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€ downloadFile(): ๆ–‡ไปถไธ‹่ฝฝๅทฅๅ…ท โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€ copyToClipboard(): ๅ‰ช่ดดๆฟๆ“ไฝœ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ utils/demo-data.ts (ๆผ”็คบๆจกๅผๆ•ฐๆฎ) โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€ demoApiInfo: ๆผ”็คบ API ไฟกๆฏ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€ demoEndpoints: ๆผ”็คบ็ซฏ็‚นๆ•ฐๆฎ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€ demoConvertResult: ๆผ”็คบ่ฝฌๆข็ป“ๆžœ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ†• (HTTP/WebSocket) โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๅŽ็ซฏๆœๅŠก (Backend) โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ MCP Swagger Server โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ HTTP API ็ซฏ็‚น: โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€ POST /api/validate - ้ชŒ่ฏ OpenAPI ่ง„่Œƒ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€ POST /api/preview - ้ข„่งˆ API ไฟกๆฏ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€ POST /api/convert - ่ฝฌๆขไธบ MCP ๆ ผๅผ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ## ๆ•ฐๆฎๆตๅ›พ ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ็”จๆˆท่พ“ๅ…ฅ โ”‚ โ”‚ ็Šถๆ€็ฎก็† โ”‚ โ”‚ API ่ฐƒ็”จ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข URL ๅœฐๅ€ โ”‚โ”€โ”€โ”€โ–ถโ”‚ setInputSource โ”‚โ”€โ”€โ”€โ–ถโ”‚ validateApi โ”‚ โ”‚ โ€ข ไธŠไผ ๆ–‡ไปถ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ็ฒ˜่ดดๆ–‡ๆœฌ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ inputSource โ”‚ โ”‚ โ”‚ โ”‚ ้ชŒ่ฏ็ป“ๆžœ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ config โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ loading โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ error โ”‚ โ”‚ โ”‚ previewApi โ”‚ โ”‚ ้…็ฝฎ้€‰้กน โ”‚โ”€โ”€โ”€โ–ถโ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚โ”€โ”€โ”€โ–ถโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ€ข HTTP ๆ–นๆณ• โ”‚ โ”‚ setConfig โ”‚ โ”‚ โ”‚ API ไฟกๆฏ โ”‚ โ”‚ โ”‚ โ€ข ๆ ‡็ญพ่ฟ‡ๆปค โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ็ซฏ็‚นๅˆ—่กจ โ”‚ โ”‚ โ”‚ โ€ข ้ซ˜็บง้€‰้กน โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ apiInfo โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ endpoints โ”‚ โ”‚โ—€โ”€โ”€โ”€โ”‚ convertApi โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ ็”จๆˆทๆ“ไฝœ โ”‚ โ”‚ convertToMcp โ”‚ โ”‚ โ”‚ MCP ้…็ฝฎ โ”‚ โ”‚ โ”‚ โ”‚โ”€โ”€โ”€โ–ถโ”‚ โ”‚ โ”‚ โ”‚ ๅทฅๅ…ทๅˆ—่กจ โ”‚ โ”‚ โ”‚ โ€ข ่ฝฌๆขๆŒ‰้’ฎ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ ๅ…ƒๆ•ฐๆฎ โ”‚ โ”‚ โ”‚ โ€ข ้ชŒ่ฏๆŒ‰้’ฎ โ”‚ โ”‚ โ”‚convertResultโ”‚ โ”‚โ—€โ”€โ”€โ”€โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ€ข ไธ‹่ฝฝๆŒ‰้’ฎ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ็”จๆˆท็•Œ้ข โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ่ฟ›ๅบฆๆŒ‡็คบๅ™จ โ”‚ โ”‚ โ€ข ้ข„่งˆ้ขๆฟ โ”‚ โ”‚ โ€ข ็ป“ๆžœๅฑ•็คบ โ”‚ โ”‚ โ€ข ้”™่ฏฏๆ็คบ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ## ็ป„ไปถๅ…ณ็ณปๅ›พ ``` App.vue โ”œโ”€ router-view โ””โ”€ Home.vue (ไธป้กต้ข) โ”œโ”€ ่พ“ๅ…ฅ้ƒจๅˆ† (ๅ†…่”็ป„ไปถ) โ”‚ โ”œโ”€ URL ่พ“ๅ…ฅๆ ‡็ญพ้กต โ”‚ โ”œโ”€ ๆ–‡ไปถไธŠไผ ๆ ‡็ญพ้กต โ”‚ โ””โ”€ ๆ–‡ๆœฌ่พ“ๅ…ฅๆ ‡็ญพ้กต โ”‚ โ”œโ”€ ้ข„่งˆ้ƒจๅˆ† (ๅ†…่”็ป„ไปถ) โ”‚ โ”œโ”€ API ๅŸบๆœฌไฟกๆฏๅก็‰‡ โ”‚ โ”œโ”€ ็ซฏ็‚นๅˆ—่กจ็ฝ‘ๆ ผ โ”‚ โ””โ”€ ็Šถๆ€ๅพฝ็ซ  โ”‚ โ”œโ”€ ้…็ฝฎ้ƒจๅˆ† (ๅ†…่”็ป„ไปถ) โ”‚ โ”œโ”€ HTTP ๆ–นๆณ•่ฟ‡ๆปค โ”‚ โ”œโ”€ ๆ ‡็ญพ่ฟ‡ๆปค โ”‚ โ”œโ”€ ้ซ˜็บง้€‰้กน โ”‚ โ””โ”€ ไผ ่พ“ๅ่ฎฎ้€‰ๆ‹ฉ โ”‚ โ””โ”€ ็ป“ๆžœ้ƒจๅˆ† (ๅ†…่”็ป„ไปถ) โ”œโ”€ MCP ้…็ฝฎ้ข„่งˆ โ”œโ”€ ไธ‹่ฝฝๆŒ‰้’ฎ โ”œโ”€ ๅคๅˆถๆŒ‰้’ฎ โ””โ”€ ๅฏๅŠจๅ‘ฝไปค ``` ## ็Šถๆ€็ฎก็†ๆต็จ‹ ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” Action โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Vue ็ป„ไปถ โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ถโ”‚ Pinia Store โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ็”จๆˆทไบคไบ’ โ”‚ โ”‚ โ€ข ็Šถๆ€ๆ›ดๆ–ฐ โ”‚ โ”‚ โ€ข ไบ‹ไปถ่งฆๅ‘ โ”‚ โ”‚ โ€ข ๅ‰ฏไฝœ็”จๅค„็† โ”‚ โ”‚ โ€ข ็”Ÿๅ‘ฝๅ‘จๆœŸ โ”‚ โ”‚ โ€ข API ่ฐƒ็”จ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ–ฒ โ”‚ โ”‚ โ”‚ State Change โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” Reactive โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Vue ๅ“ๅบ”ๅผ โ”‚โ—€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”‚ Store State โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ้‡ๆ–ฐๆธฒๆŸ“ โ”‚ โ”‚ โ€ข inputSource โ”‚ โ”‚ โ€ข ่ฎก็ฎ—ๅฑžๆ€ง โ”‚ โ”‚ โ€ข config โ”‚ โ”‚ โ€ข ็›‘ๅฌๅ™จ โ”‚ โ”‚ โ€ข apiInfo โ”‚ โ”‚ โ”‚ โ”‚ โ€ข endpoints โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ€ข convertResult โ”‚ โ”‚ โ€ข loading โ”‚ โ”‚ โ€ข error โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ## API ่ฐƒ็”จๆต็จ‹ ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ็”จๆˆท่งฆๅ‘ๆ“ไฝœ โ”‚ โ”‚ (็‚นๅ‡ป่ฝฌๆขๆŒ‰้’ฎ) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Home.vue โ”‚ โ”‚ handleConvert() โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ AppStore โ”‚ โ”‚ setInputSource()โ”‚ โ”‚ previewApi() โ”‚ โ”‚ convertToMcp() โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” HTTP โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ API Service โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ถโ”‚ Backend API โ”‚ โ”‚ utils/api.ts โ”‚ โ”‚ โ”‚ โ”‚ โ”‚โ—€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”‚ โ€ข /api/preview โ”‚ โ”‚ โ€ข ่ฏทๆฑ‚ๅฐ่ฃ… โ”‚ Response โ”‚ โ€ข /api/convert โ”‚ โ”‚ โ€ข ้”™่ฏฏๅค„็† โ”‚ โ”‚ โ€ข /api/validate โ”‚ โ”‚ โ€ข ๅ“ๅบ”่งฃๆž โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Store ็Šถๆ€ๆ›ดๆ–ฐ โ”‚ โ”‚ โ€ข loading: true โ”‚ โ”‚ โ€ข apiInfo: data โ”‚ โ”‚ โ€ข convertResult โ”‚ โ”‚ โ€ข error: null โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ UI ่‡ชๅŠจๆ›ดๆ–ฐ โ”‚ โ”‚ โ€ข ๆ˜พ็คบ่ฟ›ๅบฆ โ”‚ โ”‚ โ€ข ๅฑ•็คบ็ป“ๆžœ โ”‚ โ”‚ โ€ข ๅค„็†้”™่ฏฏ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ## ็ฑปๅž‹็ณป็ปŸๆžถๆž„ ``` types/index.ts โ”œโ”€ InputSource - ่พ“ๅ…ฅๆบ็ฑปๅž‹ โ”‚ โ”œโ”€ type: 'url' | 'file' | 'text' โ”‚ โ”œโ”€ content: string โ”‚ โ””โ”€ auth?: AuthConfig โ”‚ โ”œโ”€ ConvertConfig - ่ฝฌๆข้…็ฝฎ โ”‚ โ”œโ”€ filters: FilterConfig โ”‚ โ”œโ”€ transport: TransportType โ”‚ โ””โ”€ optimization: OptimizationConfig โ”‚ โ”œโ”€ OpenApiInfo - API ๅŸบๆœฌไฟกๆฏ โ”‚ โ”œโ”€ title: string โ”‚ โ”œโ”€ version: string โ”‚ โ”œโ”€ description?: string โ”‚ โ””โ”€ serverUrl?: string โ”‚ โ”œโ”€ ApiEndpoint - API ็ซฏ็‚น โ”‚ โ”œโ”€ method: string โ”‚ โ”œโ”€ path: string โ”‚ โ”œโ”€ summary?: string โ”‚ โ”œโ”€ tags?: string[] โ”‚ โ””โ”€ deprecated?: boolean โ”‚ โ”œโ”€ ConvertResult - ่ฝฌๆข็ป“ๆžœ โ”‚ โ”œโ”€ mcpConfig: McpConfig โ”‚ โ”œโ”€ metadata: ResultMetadata โ”‚ โ””โ”€ processingTime: number โ”‚ โ””โ”€ AppState - ๅบ”็”จ็Šถๆ€ โ”œโ”€ inputSource: InputSource โ”œโ”€ config: ConvertConfig โ”œโ”€ apiInfo: OpenApiInfo | null โ”œโ”€ endpoints: ApiEndpoint[] โ”œโ”€ convertResult: ConvertResult | null โ”œโ”€ loading: boolean โ””โ”€ error: string | null ``` ## ๆž„ๅปบๅ’Œ้ƒจ็ฝฒๆžถๆž„ ``` ๅผ€ๅ‘็Žฏๅขƒ (Development) โ”œโ”€ Vite Dev Server (Port 3000) โ”‚ โ”œโ”€ HMR (็ƒญๆจกๅ—ๆ›ฟๆข) โ”‚ โ”œโ”€ TypeScript ็ผ–่ฏ‘ โ”‚ โ”œโ”€ Vue SFC ๅค„็† โ”‚ โ””โ”€ API ไปฃ็† (/api โ†’ localhost:3322) โ”‚ โ”œโ”€ ่‡ชๅŠจๅฏผๅ…ฅ โ”‚ โ”œโ”€ Vue APIs (ref, reactive, computed...) โ”‚ โ”œโ”€ Router APIs (useRouter, useRoute...) โ”‚ โ”œโ”€ Pinia APIs (defineStore, storeToRefs...) โ”‚ โ””โ”€ Element Plus ็ป„ไปถ โ”‚ โ””โ”€ ๅผ€ๅ‘ๅทฅๅ…ท โ”œโ”€ Vue DevTools โ”œโ”€ TypeScript ็ฑปๅž‹ๆฃ€ๆŸฅ โ”œโ”€ ESLint ไปฃ็ ๆฃ€ๆŸฅ โ””โ”€ Prettier ไปฃ็ ๆ ผๅผๅŒ– ็”Ÿไบง็Žฏๅขƒ (Production) โ”œโ”€ ๆž„ๅปบ่พ“ๅ‡บ (dist/) โ”‚ โ”œโ”€ HTML ๆจกๆฟ โ”‚ โ”œโ”€ JavaScript ๅŒ… โ”‚ โ”‚ โ”œโ”€ ไธปๅบ”็”จๅŒ… โ”‚ โ”‚ โ”œโ”€ Element Plus ๅŒ… โ”‚ โ”‚ โ””โ”€ Monaco Editor ๅŒ… โ”‚ โ”œโ”€ CSS ๆ ทๅผ โ”‚ โ””โ”€ ้™ๆ€่ต„ๆบ โ”‚ โ”œโ”€ ไผ˜ๅŒ–็ญ–็•ฅ โ”‚ โ”œโ”€ ไปฃ็ ๅˆ†ๅ‰ฒ (Code Splitting) โ”‚ โ”œโ”€ Tree Shaking โ”‚ โ”œโ”€ ่ต„ๆบๅŽ‹็ผฉ โ”‚ โ””โ”€ ็ผ“ๅญ˜็ญ–็•ฅ โ”‚ โ””โ”€ ้ƒจ็ฝฒ้€‰้กน โ”œโ”€ ้™ๆ€ๆ–‡ไปถๆœๅŠกๅ™จ โ”œโ”€ CDN ๅˆ†ๅ‘ โ””โ”€ Docker ๅฎนๅ™จๅŒ– ``` ่ฟ™ไธชๆžถๆž„่ฎพ่ฎกๆ–‡ๆกฃๆไพ›ไบ† MCP Swagger UI ้กน็›ฎ็š„ๅฎŒๆ•ดๆžถๆž„่ง†ๅ›พ๏ผŒๅŒ…ๆ‹ฌ็ป„ไปถๅ…ณ็ณปใ€ๆ•ฐๆฎๆตใ€็Šถๆ€็ฎก็†ๅ’Œๆž„ๅปบ้ƒจ็ฝฒ็ญ‰ๅ„ไธชๆ–น้ข็š„่ฏฆ็ป†่ฏดๆ˜Žใ€‚

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/zaizaizhao/mcp-swagger-server'

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