Tamagotchi MCP Server
好的,以下是一個簡化的 Tamagotchi MCP (Minecraft Protocol) 伺服器實現,模擬電子雞遊戲。 這個範例會使用 Python 和 `mcstatus` 庫來處理 Minecraft 協議。 **重要說明:** * **簡化:** 這是一個非常簡化的版本,僅用於演示概念。 它不會實現完整的 Minecraft 伺服器功能。 * **mcstatus:** 這個範例依賴於 `mcstatus` 庫。 你需要先安裝它: `pip install mcstatus` * **安全性:** 這個範例沒有考慮任何安全性問題。 不要在生產環境中使用。 * **MCP 限制:** 真正的 Minecraft 協議非常複雜。 這個範例只處理最基本的部分,例如伺服器列表查詢。 * **沒有遊戲邏輯:** 這個範例只模擬伺服器存在,沒有實際的電子雞遊戲邏輯。 你需要自己添加遊戲邏輯。 **程式碼 (Python):** ```python import socket import json import time from mcstatus import MinecraftServer # 電子雞狀態 (你可以擴展這個) tamagotchi_name = "小雞" tamagotchi_health = 100 tamagotchi_hunger = 50 tamagotchi_happiness = 75 # 伺服器設定 server_ip = "127.0.0.1" # 本機 IP server_port = 25565 # Minecraft 預設端口 def create_status_response(): """建立 Minecraft 伺服器狀態回應 (JSON 格式).""" status = { "version": { "name": "Tamagotchi Server 1.0", "protocol": 757 # Minecraft 1.16.5 協議版本 (範例) }, "players": { "max": 1, # 最大玩家數 "online": 0, # 線上玩家數 "sample": [] # 玩家列表 (空) }, "description": { "text": f"歡迎來到 {tamagotchi_name} 的世界!\n健康: {tamagotchi_health}, 飢餓: {tamagotchi_hunger}, 快樂: {tamagotchi_happiness}" }, "favicon": "data:image/png;base64,<你的favicon base64 編碼>" # 可選: 伺服器圖示 } return json.dumps(status) def handle_connection(client_socket): """處理客戶端連線.""" try: # 接收客戶端傳送的資料 data = client_socket.recv(1024) if not data: return # 處理握手封包 (0x00) if data[0] == 0x00: # 讀取協議版本、伺服器位址和端口 protocol_version = data[1] server_address_length = data[2] server_address = data[3:3 + server_address_length].decode('utf-8') server_port = int.from_bytes(data[3 + server_address_length:5 + server_address_length], 'big') next_state = data[5 + server_address_length] # 回應握手封包 (空封包) client_socket.send(bytes([0x00])) # 處理狀態請求 (0x00) data = client_socket.recv(1024) if data[0] == 0x00: # 建立狀態回應 status_response = create_status_response() # 建立狀態回應封包 response_bytes = bytes([0x00]) + len(status_response.encode('utf-8')).to_bytes(1, 'big') + status_response.encode('utf-8') # 發送狀態回應 client_socket.send(response_bytes) # 處理 Ping 請求 (0x01) data = client_socket.recv(1024) if data[0] == 0x01: # 回應 Ping 請求 client_socket.send(data) except Exception as e: print(f"處理連線時發生錯誤: {e}") finally: client_socket.close() def main(): """主程式.""" server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # 允許重複使用位址 server_socket.bind((server_ip, server_port)) server_socket.listen(5) # 最多允許 5 個連線 print(f"Tamagotchi 伺服器正在運行於 {server_ip}:{server_port}...") try: while True: client_socket, client_address = server_socket.accept() print(f"接受來自 {client_address} 的連線") handle_connection(client_socket) # 模擬電子雞狀態變化 (你可以根據實際遊戲邏輯修改) global tamagotchi_health, tamagotchi_hunger, tamagotchi_happiness tamagotchi_health -= 1 tamagotchi_hunger += 2 tamagotchi_happiness -= 0.5 # 限制數值範圍 tamagotchi_health = max(0, min(100, tamagotchi_health)) tamagotchi_hunger = max(0, min(100, tamagotchi_hunger)) tamagotchi_happiness = max(0, min(100, tamagotchi_happiness)) time.sleep(5) # 每 5 秒更新一次狀態 except KeyboardInterrupt: print("伺服器關閉") finally: server_socket.close() if __name__ == "__main__": main() ``` **使用方法:** 1. **安裝 `mcstatus`:** `pip install mcstatus` 2. **儲存程式碼:** 將程式碼儲存為 `tamagotchi_server.py` (或其他你喜歡的名稱)。 3. **執行程式:** `python tamagotchi_server.py` 4. **在 Minecraft 中新增伺服器:** 在 Minecraft 啟動器中,新增一個伺服器,位址設定為 `127.0.0.1:25565`。 5. **查看伺服器列表:** 在 Minecraft 中,進入多人遊戲,你會看到你的 Tamagotchi 伺服器。 伺服器描述會顯示電子雞的狀態。 **程式碼說明:** * **`create_status_response()`:** 建立一個 JSON 字串,包含 Minecraft 伺服器狀態資訊。 這個資訊會顯示在 Minecraft 伺服器列表中。 你可以修改這個函數來顯示更多關於電子雞的資訊。 * **`handle_connection()`:** 處理客戶端連線。 這個函數接收客戶端傳送的資料,並根據 Minecraft 協議回應。 這個範例只處理握手和狀態請求。 * **`main()`:** 主程式。 這個函數建立一個 socket 伺服器,監聽連線,並處理每個連線。 它還模擬電子雞的狀態變化。 * **電子雞狀態:** `tamagotchi_name`, `tamagotchi_health`, `tamagotchi_hunger`, `tamagotchi_happiness` 這些變數儲存電子雞的狀態。 你可以擴展這些變數來儲存更多資訊,例如電子雞的年齡、心情等等。 * **狀態變化:** 在 `main()` 函數的 `while` 迴圈中,電子雞的狀態會定期更新。 你可以根據實際的遊戲邏輯修改這些更新。 * **錯誤處理:** 程式碼包含基本的錯誤處理,但你可以根據需要添加更多錯誤處理。 **如何擴展這個範例:** * **添加遊戲邏輯:** 這是最重要的部分。 你需要添加程式碼來處理玩家的輸入,並根據這些輸入來更新電子雞的狀態。 例如,你可以添加指令來餵食電子雞、和電子雞玩耍等等。 * **使用資料庫:** 如果你想儲存電子雞的狀態,你可以使用資料庫。 * **使用 GUI:** 你可以使用 GUI 庫 (例如 Tkinter 或 PyQt) 來建立一個圖形介面,讓玩家可以更方便地與電子雞互動。 * **實現完整的 Minecraft 協議:** 如果你想讓你的伺服器更像一個真正的 Minecraft 伺服器,你需要實現更多的 Minecraft 協議。 這是一個非常複雜的任務。 **重要提示:** * 這個範例是一個非常簡化的版本,僅用於演示概念。 * 真正的 Minecraft 協議非常複雜。 * 這個範例沒有考慮任何安全性問題。 * 你需要自己添加遊戲邏輯。 希望這個範例能幫助你開始建立你的 Tamagotchi MCP 伺服器!
wai-imyen
README
推荐服务器
YouTube Transcript MCP Server
这个服务器用于获取指定 YouTube 视频 URL 的字幕,从而可以与 Goose CLI 或 Goose Desktop 集成,进行字幕提取和处理。
The Verge News MCP Server
提供从The Verge的RSS feed获取和搜索新闻的工具,允许用户获取今日新闻、检索过去一周的随机文章,以及在最近的Verge内容中搜索特定关键词。
MCP Spotify Server
通过 Spotify Web API 实现与 Spotify 音乐目录的交互,支持搜索、艺术家信息检索、播放列表管理和自动令牌处理。
mcp-server-youtube-transcript
一个模型上下文协议服务器,可以从 YouTube 视频中检索文本记录。该服务器通过一个简单的界面直接访问视频的字幕和副标题。
MCP-AppleMusic
通过 MCP 命令,利用 AppleScript 来控制 macOS 上的 Apple Music,允许用户管理播放、搜索曲目和创建播放列表。
YouTube Music MCP Server
一个 MCP 服务器,允许 AI 模型通过 Google Chrome 控制 YouTube Music 的播放,通过歌曲和艺术家名称搜索和播放歌曲。

Spotify MCP Server
一个将 Claude 与 Spotify 连接的服务器,允许用户控制播放、搜索内容、获取关于歌曲/专辑/艺术家/播放列表的信息,以及管理 Spotify 队列。

YouTube Integration
支持通过提供视频 URL 从 YouTube 视频中提取文字稿,支持标准、缩短和嵌入 URL 格式。

Spotify MCP
一个 FastMCP 工具,它允许用户通过 Cursor Composer 中的自然语言命令来控制 Spotify,从而管理播放、搜索内容以及与播放列表互动。
mcp-youtube-sheets
提供搜索 YouTube 视频并将结果自动保存到 Google 表格的功能。