背景
為了調研 MCP 在 windows 上如何使用本地的命令執行一些操作而實現自動化的過程,在 B 站視頻的指導下,進行相應填坑過程,最終運行起來,并實現 github 自動化編程并提交代碼的過程。
B 站 Cline 視頻演示
Cline
Cline 是一款 Visual Studio Code (VSCode) 的開源 AI 編程輔助插件,主要用于通過人工智能增強開發者的編碼體驗,幫助自動化和加速軟件開發流程。它不僅限于代碼補全,而是作為一個智能代理(agent),能夠理解項目上下文、執行復雜任務并與開發環境交互。以下是 Cline 的主要用途和功能:
自動化編程任務:
-
Cline 可以通過自然語言指令執行復雜的編程任務,例如創建新文件、編輯現有代碼、運行終端命令等。例如,你可以要求它“創建一個 Spring Boot 應用”或“修復某個 bug”,它會分解任務并逐步完成。
代碼生成與優化:
-
它能根據用戶需求生成代碼模板、優化現有代碼或進行大規模重構。Cline 還能分析代碼結構,自動修復語法錯誤、缺少的導入等常見問題。
實時調試與運行時交互:
-
Cline 支持與運行時環境交互,例如啟動本地 Web 服務器、檢查頁面渲染、捕獲控制臺日志或修復運行時錯誤。它甚至可以通過無頭瀏覽器模擬用戶操作(如點擊、輸入)來調試前端問題。
多模型支持與靈活性:
-
Cline 支持多種 AI 模型(如 Anthropic 的 Claude 3.5 Sonnet、OpenAI 的 GPT-4、Google Gemini、DeepSeek R1 等),并允許用戶根據任務需求切換模型。它還支持本地模型(如通過 LM Studio 或 Ollama),提供隱私和成本控制。
版本控制與安全:
-
Cline 提供工作區快照功能,每次 AI 操作后自動保存狀態,允許用戶隨時查看更改差異或回滾到之前版本。每次文件修改或命令執行都需要用戶批準,確保安全性和可控性。
項目上下文理解:
-
通過分析文件結構、源代碼 AST 和正則搜索,Cline 能快速適應大型復雜項目,提供精準的建議和修改。它還能通過 .clinerules 文件或自定義指令遵循項目特定的編碼規范。
終端命令執行:
-
利用 VSCode 的終端集成,Cline 可以執行安裝包、運行測試、部署應用等命令,并根據輸出動態調整后續操作。
多語言和框架支持:
-
Cline 支持多種編程語言和框架,尤其對主流框架(如 Spring Boot、Next.js)有較好的支持。用戶可以用自然語言描述需求,Cline 會生成相應的代碼結構。
增強系統管理員工作:
-
對于系統管理員,Cline(及其分支 Roo Code)可通過自然語言生成和優化 PowerShell 或 Bash 腳本,自動化 CLI 任務。
成本透明與管理:
-
Cline 實時跟蹤 API 使用的 token 數量和成本,幫助用戶優化模型選擇和控制開支。
Cline 安裝 github MCP 常見問題
如何安裝
在 cline 的插件管理里面搜索
github 源碼地址:
https://github.com/modelcontextprotocol/modelcontextprotocol
cline_mcp_settings.json 配置
安裝后在 Installed 中可以看到該服務的提供的服務,安裝完后,需要我們來配置一個服務 json,B 站課程里面要求改寫的地方注意改寫,實測不改寫在 powershell 里面也不會有啥問題,UP 主估計是在 cmd 控制臺下出現的問題。
下面的 autoApprove 是自動授權的一種操作,若不添加,AI 無論操作以下哪種行為都要求我們來授權,比較麻煩,我全勾了。
open router 模型配置
openrouter 的地址:OpenRouter
注意 cline 的模型自動換成 sonnet
這估計不是 bug,而是故意而為,要時刻注意模型是否被切換
VS code 報 Shell Integration Unavailable 問題
知乎一篇帖子寫得很全,下面來補補坑
-
第一個坑是 powershell 如何安裝 7 的命令,這個往往會因為網絡問題無法處理安裝,你需要配置下 http_proxy,https_proxy ,另外 microsoft.com 默認不會被轉發,你需要將其手動追加,這是個關鍵 地方,否則下面的命令無法執行
PS C:\Users\Administrator> winget install --id Microsoft.PowerShell --source winget
嘗試更新源失敗: winget
執行此命令時發生意外錯誤:
InternetOpenUrl() failed.
0x80072eff : unknown error
PS C:\Users\Administrator> winget install --id Microsoft.PowerShell --source winget
嘗試更新源失敗: winget
執行此命令時發生意外錯誤:
InternetOpenUrl() failed.
0x80072eff : unknown error
https://zhuanlan.zhihu.com/p/25724740375(升級 shell)
Powershell 如何被 vscode 默認調用
在C盤搜索pwsh.exe,查看新的PowerShell裝哪了(此時默認的PowerShell還是舊版的),我的是在C:\Program Files\PowerShell\7\pwsh.exe
下。然后,在VS Code中按Ctrl + Shift + P
,輸入并選擇 Preferences: Open User Settings (JSON),打開用戶設置文件,搜索 terminal.integrated,我不經常用 vscode,所以配置是空的,我直接輸入以下內容即可:
{"terminal.external.windowsExec": "C:\\Program Files\\PowerShell\\7\\pwsh.exe","terminal.integrated.defaultProfile.windows": "PowerShell 7","terminal.integrated.profiles.windows": {"PowerShell 7":{"path": "C:\\Program Files\\PowerShell\\7\\pwsh.exe","args": []}},
}
除了 json 配置外,也有 UI 配置
在VS Code中按Ctrl + Shift + P
,輸入并選擇 Preferences: Open User Settings
Powershell 7 無法升級
需要將 microsoft.com 以 domain-suffix 增加到 clash rules 中去
-
powershell 的命令 pwsh,不是 powershell,所以你在資源目錄里面直接輸入 powershell 還是 5 版本,如想找到 pwsh.exe 配置 pycharm terminal,可以用 everthing 搜索 pwsh.exe
查看 powershell 的版本號命令
$PSVersionTable.PSVersion #這個比較難記
host # 這個比較好記
Pycharm 更換 powershell 7 后如何自動切換環境?
powershell 7 支持你開啟時,執行一些腳本,powershell 5 不清楚是如何適配的,但是 7 需要配置 ps1 文件,并且開啟可執行腳本的命令
. : 無法加載文件 C:\Users\Administrator\Documents\WindowsPowerShell\profile.ps1,因為在此系統上禁止運行腳本。有關詳細信
息,請參閱 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 3
+ . 'C:\Users\Administrator\Documents\WindowsPowerShell\profile.ps1'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo : SecurityError: (:) [],PSSecurityException+ FullyQualifiedErrorId : UnauthorizedAccess
profile.ps1 內容(網上可找)
#region conda initialize
# !! Contents within this block are managed by 'conda init' !!
If (Test-Path "C:\Users\Administrator\anaconda3\Scripts\conda.exe") {(& "C:\Users\Administrator\anaconda3\Scripts\conda.exe" "shell.powershell" "hook") | Out-String | ?{$_} | Invoke-Expression
}
#endregion
Microsoft.PowerShell_profile.ps1,因為在此系統上禁止運行腳本
解決方案
解決Win11報錯:Microsoft.PowerShell_profile.ps1,因為在此系統上禁止運行腳 本。_profile.ps1,因為在此系統上禁止運行腳本-CSDN博客
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser