The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

使用 uv 輔助開發 MCP 伺服器並安裝到 Claude Desktop 與 VS Code

最近幾週 MCP (Model Context Protocol) 正夯,要瞭解這個 AI 世界的 USB 介面,那肯定是要親手寫一個 MCP Server 才行。今天這篇文章我將參考 MCP 官網的範例,示範一個完整的開發步驟,讓大家知道用 Python 開發 MCP Server 的起手式。我會透過最新潮的 uv 快速建立 Python 開發環境,並且寫一個簡單的 MCP Server 應用,然後快速安裝到 Claude DesktopVisual Studio Code Insiders 之中,讓 Claude DesktopGitHub CopilotAgent Mode 都可以呼叫 MCP 伺服器中的工具。

... 繼續閱讀 ...

深入理解 package-lock.json 的用途與適用情境

我最近幫一位同事整理一個已經維護 7 年的 Angular 專案,結果發現一個前後端分離的專案,只有「後端」有設定 CI / CD,前端一直以來都是人工建置與部署。我在弄 CI / CD 的時候,發現了許多 npm 套件版本有依賴問題,為了能消除這些惱人的警告,花了我好幾個小時的時間才得到徹底的解決。我這次會遇到套件依賴問題,就是因為當初的開發人員搞不定,多年來一直都視而不見,依賴問題從來都沒有搞定過,每次換人維護都用 npm install --forcenpm install --legacy-peer-deps 來解決問題,然後一代傳一代,變成祖傳的慣例,變成技術債。如果專案有個維護妥當的 package-lock.json 檔案,其實要還原套件不是什麼難事,今天這篇文章我就來深入探討這個問題。

... 繼續閱讀 ...

如何在 .NET Core、.NET 5+ 與 ASP.NET Core 正確使用 Big5 編碼

由於從 .NET Core 1.0 開始,就沒有自動載入 BIG5 編碼的 Encoding 資料,所以你沒辦法直接透過 Encoding.GetEncoding("Big5") 取得 Encoding 物件。在 .NET Core 3.1 之前,還需要須額外安裝 System.Text.Encoding.CodePages 套件才行。不過,從 .NET 5 開始,這個套件成為了 .NET SDK 的一部分,不再需要額外安裝。但即便如此,你還是要特別執行一段註冊以使用此編碼。接下來,我們將深入探討如何註冊這些編碼並正確使用它們在不同的場景中。

... 繼續閱讀 ...

理解 WAV 格式:從 PCM 編碼格式到檔案大小計算方法

最近正在設計一個「即時口譯」的應用,可以幫助我們客戶在舉辦現場活動或即時線上活動時,可以提供多語言的口譯服務。我們需要將語音輸入訊號轉換為文字,然後再轉換為其他語言的語音。在這個過程中,首先要先深入瞭解常見的 WAV 格式,瞭解之後才能做一些更深層的細部操作。這篇文章將深入探討 WAV 格式,從 PCM 編碼格式到檔案大小計算方法,讓我們更好地處理音頻資料。

... 繼續閱讀 ...

使用 Google Chirp 通用語音模型進行高品質語音識別與文字轉錄

最近研究了多套語音轉文字的模型,今天這篇文章我打算來分享一套由 Google 發展的 Chirp 通用語音模型 (Google USM),該模型能夠在單一模型中統一處理多種語言的數據,且主要用來處理短音頻(小於1分鐘)和長音頻(1分鐘至8小時)的應用情境。

... 繼續閱讀 ...

如何使用 Chrome Web Store Publish API 自動化發佈 Chrome Extension

我現在維護著幾套不同的 Chrome 擴充套件,每次發佈新版本時都需要手動上傳更新,覺得有點麻煩,所以我這幾天研究了一下 Chrome Web Store Publish API 並設定了 GitHub Actions 來自動化發佈 Release 與 Chrome Extension,真的方便太多了。這篇文章我就來說說這個設定的過程。

... 繼續閱讀 ...

軟體人看韓劇《外傷重症中心》— 我的觀察與感想

我在春節期間看了 Netflix 熱播的韓劇《外傷重症中心》,我在追劇的過程中不僅被劇情吸引,還不禁將劇中的情節與軟體開發的日常進行對比。這部劇不僅展現了醫療救援的緊張與挑戰,也讓我思考了許多與職場、專業精神相關的議題。以下是我從軟體人的角度出發,對這部劇的一些觀察與感想。

... 繼續閱讀 ...

如何在 ASP.NET Core 9 加入 Swagger UI 介面

微軟從 ASP.NET Core 9 開始正式支援 OpenAPI 規格,並推出 Microsoft.AspNetCore.OpenApi NuGet 套件,在建立 ASP.NET Core Web API 專案時,預設就會加入可以產生 OpenAI 規格的端點。不過,對許多開發人員來說,常用的 Swagger UI 介面卻不見了。今天這篇文章我就來說說怎樣把 Swagger UI 加回專案中。

... 繼續閱讀 ...

如何使用 Google 的 OAuth 2.0 與 Gmail 的 REST API 發信

前陣子在企業授課 OAuth 2.0 的時候,我原本想現場示範走 Google 的 OAuth 2.0 流程,並且在取得 Access Token 之後怎樣透過原始的 REST API 發信。原本以為這是個很簡單的任務,誰知道膝蓋中了一箭,拿 Token 都很簡單,唯讀「發信」的困難度超出了我的想像,原因無他,就是 Google 的參考文件實在是寫太爛了。這篇文章我打算跟大家說個官方文件沒寫的資訊,教大家怎樣順利透過 Gmail API 發出郵件。

... 繼續閱讀 ...