Blender-MCP服務源碼2-依賴分析

Blender-MCP服務源碼2-依賴分析

有個大佬做了一個Blender-MCP源碼,第一次提交代碼是【2025年3月7號】今天是【2025年月15日】也就是剛過去一周的時間,所以想從0開始學習這個代碼,了解一下大佬們的開發思路


1-核心知識點

from mcp.server.fastmcp import FastMCP, Context, Image
import socket
import json
import asyncio
import logging
from dataclasses import dataclass
from contextlib import asynccontextmanager
from typing import AsyncIterator, Dict, Any, List
  • 1)Blender代碼中核心代碼和依賴的功能是什么?
  • 2)socket長連接服務->用于Claude與插件之間通訊->那Blender和LLM之間在通訊什么內容?
  • 3)為什么LLM通訊后就完成了3D的建模,原理是什么?->是不是我把請求方法抽取出來就可以用編碼的方式完成Blender的建模了(MCP貌似就是通過請求API傳遞對應的參數來完成建模)
  • 4)猜想內容已經實現

2-思路整理

  • 1)【必選】MCP的mcp.server.fastmcp服務依賴
  • 2)【核心】socket長連接服務->用于Claude與插件之間通訊
  • 3)socket到底做了什么?->我如果做一個類似的MCP,我要做什么?

3-參考網址

  • Blender-MCP-Github地址:https://github.com/ahujasid/blender-mcp
  • B站大佬開源Blender開發框架:https://github.com/xzhuah/BlenderAddonPackageTool
  • B站大佬開源Blender開發框架教程

4-依賴分析

以下是對這些導入語句及其依賴的詳細分析:

1. from mcp.server.fastmcp import FastMCP, Context, Image

  • 來源:這是從 mcp.server.fastmcp 模塊中導入特定的類。mcp 可能是某個自定義的 Python 包,server 可能是該包下的一個子模塊,fastmcp 則是子模塊中的一個 Python 文件。
  • 功能
    • FastMCP:通常代表某種快速的消息處理或通信協議相關的類。可能用于高效地處理消息、請求和響應,在服務器端的應用中可能用于快速處理客戶端的連接和數據交互。
    • Context:這個類一般用于保存上下文信息。在編程中,上下文信息可以包含當前操作的相關狀態、配置等數據,以便在不同的函數或方法之間共享和傳遞。
    • Image:可能是用于處理圖像的類。它可能包含圖像的加載、保存、轉換等操作,可用于圖像處理相關的任務。

2. import socket

  • 來源socket 是 Python 標準庫中的一個模塊。
  • 功能socket 模塊提供了創建網絡套接字的功能,用于實現網絡通信。它可以創建 TCP 或 UDP 套接字,通過網絡發送和接收數據。常用于構建客戶端 - 服務器應用程序,允許不同的計算機之間進行數據交換。

3. import json

  • 來源json 是 Python 標準庫中的一個模塊。
  • 功能json 模塊用于處理 JSON(JavaScript Object Notation)數據。JSON 是一種輕量級的數據交換格式,易于人類閱讀和編寫,也易于機器解析和生成。json 模塊提供了將 Python 對象(如字典、列表)轉換為 JSON 字符串(json.dumps()),以及將 JSON 字符串轉換為 Python 對象(json.loads())的功能。

4. import asyncio

  • 來源asyncio 是 Python 標準庫中的一個模塊,用于支持異步編程。
  • 功能:異步編程允許程序在等待某些操作(如網絡請求、文件讀寫)完成時,繼續執行其他任務,從而提高程序的并發性能。asyncio 提供了協程、事件循環等機制,使得開發者可以編寫高效的異步代碼。例如,可以使用 async/await 關鍵字定義協程函數,使用事件循環來調度和執行這些協程。

5. import logging

  • 來源logging 是 Python 標準庫中的一個模塊,用于實現日志記錄功能。
  • 功能:日志記錄是程序開發和調試過程中非常重要的一部分。logging 模塊提供了靈活的日志記錄功能,可以將程序運行過程中的信息(如調試信息、錯誤信息、警告信息等)輸出到控制臺、文件或其他目標。通過設置不同的日志級別(如 DEBUGINFOWARNINGERRORCRITICAL),可以控制日志的詳細程度。

6. from dataclasses import dataclass

  • 來源dataclasses 是 Python 3.7 及以上版本引入的標準庫模塊。
  • 功能dataclass 是一個裝飾器,用于簡化類的定義。使用 @dataclass 裝飾的類可以自動生成一些特殊方法,如 __init__()__repr__()__eq__() 等,從而減少了樣板代碼的編寫。通常用于定義簡單的數據容器類。

7. from contextlib import asynccontextmanager

  • 來源contextlib 是 Python 標準庫中的一個模塊,提供了上下文管理器相關的工具。
  • 功能asynccontextmanager 是一個裝飾器,用于創建異步上下文管理器。異步上下文管理器可以在異步代碼中使用 async with 語句,確保在進入和退出上下文時執行特定的操作,如資源的分配和釋放。

8. from typing import AsyncIterator, Dict, Any, List

  • 來源typing 是 Python 標準庫中的一個模塊,用于提供類型提示功能。
  • 功能
    • AsyncIterator:用于表示異步迭代器,即可以在異步代碼中使用 async for 語句進行迭代的對象。
    • Dict:用于表示字典類型的提示,指定字典的鍵和值的類型。
    • Any:表示任意類型,當無法確定或不關心某個變量的具體類型時,可以使用 Any 進行類型提示。
    • List:用于表示列表類型的提示,指定列表中元素的類型。

綜上所述,這些導入語句涵蓋了自定義模塊、標準庫模塊,用于實現網絡通信、數據處理、異步編程、日志記錄、數據類定義、上下文管理和類型提示等功能。


5-問題來啦

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72462.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72462.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72462.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

反射(第三篇)、代理模式、靜態代理和動態代理、InvocationHandler實際應用

DAY11.3 Java核心基礎 反射(第三篇) 前兩篇我們學習了反射的概念和基本操作 實際開發中,反射應用于那里? 動態代理 java中的動態代理就是一個重要的作用 代理模式 代理模式是java中常用的設計模式 指的是在處理一個業務邏輯…

Unity 封裝一個依賴于MonoBehaviour的計時器(上) 基本功能

靈感來自下面這本書的協程部分,因此我就自己嘗試寫了一個 我的新書Unity3D游戲開發(第3版) | 雨松MOMO程序研究院 如果你不知道什么是協程:unity保姆級教程之協同程序_unity協同-CSDN博客 一句話概括:協程就是單線程的異步操作,其作用于Unity的主線程 1…

數學建模 第一節

目錄?????? 前言 一 優化模型的類型 二 線性規劃1 線性規劃2 三 0-1規劃 總結 前言 數學建模主要是將問題轉化為模型,然后再以編程的形式輸出出來 算法都知道,數學建模也需要用到算法,但是不是主要以編程形式展示,而是…

Vulkan視頻解碼decode顯示display之同步

在ReleaseDisplayedPicture函數中消耗圖片資源并且顯示display完成,設置兩個標志m_hasConsummerSignalFence true 和m_hasConsummerSignalSemaphore true virtual int32_t ReleaseDisplayedPicture(DecodedFrameRelease** pDecodedFramesRelease, uint32_t nu…

網絡空間安全(32)Kali MSF基本介紹

前言 Metasploit Framework(簡稱MSF)是一款功能強大的開源安全漏洞檢測工具,被廣泛應用于滲透測試中。它內置了數千個已知的軟件漏洞,并持續更新以應對新興的安全威脅。MSF不僅限于漏洞利用,還包括信息收集、漏洞探測和…

設計模式學習記錄

設計模式23種 創建型抽象工廠模式工廠模式生成器模式原型模式單例模式 結構型適配器模式橋接模式組合模式裝飾模式外觀模式享元模式代理模式 行為型責任鏈模式命令模式解釋器模式迭代器模式中介者模式備忘錄模式觀察者模式狀態模式策略模式模版方法模式訪問者模式 創建型 與對…

2.5 python接口編程

在現代軟件開發的復雜生態系統中,不同系統、模塊之間的交互協作至關重要。接口編程作為一種關鍵機制,定義了組件之間的通信規范與交互方式。Python 憑借其卓越的靈活性、豐富的庫資源以及簡潔易讀的語法,在接口編程領域占據了重要地位&#x…

mesh開發解析

開源的Mesh網絡協議棧及相關項目: 1.B.A.T.M.A.N.(Better Approach to Mobile Ad-hoc Networking)? 簡介:B.A.T.M.A.N.是一種用于多跳自組織網絡的路由協議,適用于無線Mesh網絡。它通過優化數據傳輸路徑,確保網絡的高可靠性和動…

PyTorch PINN實戰:用深度學習求解微分方程

在人工智能與計算數學的交匯點,物理信息神經網絡(Physics-Informed Neural Networks,PINN)正引領著一場求解微分方程的革命。傳統上,微分方程是描述自然現象和工程問題中各種關系的重要工具,但其求解往往依…

【WiFi 7核心技術及未來挑戰】

作為剛剛開始從事這一領域的人,淺淺學習了一下WiFi 7(IEEE 802.11be)。Wi-Fi 7發展迅速,提供前所未有的速度、更低的延遲和更高的可靠性。但從頻譜政策到能效挑戰,再到成本,仍有許多問題亟待解決。 Wi-Fi 7…

Oracle Linux Server 7.9安裝fail2ban

yum search oracle-epel-release yum install oracle-epel-release-el7 search fail2ban yum install fail2ban nano /etc/fail2ban/jail.d/00-firewalld.conf # defalut這里是設定全局設置,如果下面的監控沒有設置就以全局設置的值設置。 [DEFAULT] # 用于指定哪…

目標在哪里?——尋找人生的意義與方向

在職場中,許多人都會經歷這樣的困惑:工作看似順利,卻逐漸失去了成就感和成長感。一位在500強企業工作的學員就遇到了這樣的問題。她曾考慮過轉型做培訓,但苦于找不到明確的切入點,對未來的目標感到迷茫。她不禁問自己&…

C++類與對象——拷貝構造與運算符重載

拷貝構造函數和賦值運算符重載就是C類默認六個函數之二。 拷貝構造函數: 如果?個構造函數的第?個參數是自身類類型的引用,且任何額外的參數都有默認值,則此構造函數 也叫做拷貝構造函數,也就是說拷貝構造是?個特殊的構造函數…

破碎的誓言

破碎的誓言 在秋風的呢喃中,落葉輕嘆, 昔日的誓言,如煙消散。 你的眼眸,曾是我星辰的指引, 如今,卻成了最深的迷惘。 欺騙的利刃,刺穿了信任的堡壘, 我的心,如裂開…

AD畫板學習

AD畫板 01 課程簡介及學習目標 (1)能熟練的新建項目文件、原理圖文件、PCB文件且修改文件名,并知道文件保存的位置; (2)會設置原理圖編輯器的工作環境,會自底向上繪制層次原理圖; …

Linux:進程程序替換

目錄 前言 一 進程程序替換的概念 二 進程程序替換的原理 三 為什么需要進行進程程序替換 四 如何進行進程程序替換 1. 進程替換函數 ? execl()函數 ?execv()函數 ?execlp()函數 ?execle()函數 ?execve()* 前言 一般情況下,對應的語言寫的程序只…

基于變分推理與 Best?of?N 策略的元 Prompt 自動生成與優化框架

摘要 本文提出了一種融合變分推理與 Best?of?N 策略的元 Prompt 自動生成與優化框架,通過高度參數化的模板、隨機擾動采樣及多指標評分機制,實現從初始提示生成到最終輸出的動態優化。同時,針對實際應用中對自適應參數調整、深層語義理解、…

Umi-OCR 全家桶

介紹: 下載 訪問官網地址 https://github.com/hiroi-sora/umi-ocrhttps://github.com/hiroi-sora/umi-ocr 點擊下載(.exe 文件 安裝即可) 桌面使用 安裝完畢后去安裝路徑下點擊 Umi-OCR.exe (默認不會生成桌面的快捷方式&…

2023南京理工大學計算機復試上機真題

2023南京理工大學計算機復試上機真題 2023南京理工大學計算機復試機試真題 歷年南京理工大學計算機復試上機真題 在線評測:傳送門:pgcode.cn 括號匹配二 題目描述 苗苗今天剛剛學會使用括號,不過他分不清小括號,中括號&#…

Conda 常規用法指南

Conda 常規用法指南 1. Conda 簡介 Conda 是一個開源的包管理和環境管理系統,主要用于 Python 和其他編程語言的開發環境。它能夠方便地安裝、更新和管理依賴項,使得不同項目可以使用不同的 Python 版本和庫。 2. Conda 環境管理 2.1 創建新的環境 conda…