AI Agent 0 到 1: MCP Server with Goose

即便透過觀念上的解釋:MCP AI Agent在紅什麼,不自己動手做做看,可能還是很難了解AI Agent到底是什麼。這篇文章手把手教你用MCP Server建制一個AI Agent,連接Goose或者使用Claude Desktop使用你的AI Tool。

AI Agent 0 到 1: MCP Server with Goose
AI Agent 0 到 1: MCP Server with Goose

即便透過觀念上的解釋:MCP AI Agent在紅什麼,不自己動手做做看,可能還是很難了解AI Agent到底是什麼。這篇文章手把手教你用MCP Server建制一個AI Agent,連接Goose或者使用Claude Desktop使用你的AI Tool。

(專案代碼在這邊)

建制你的MCP Server專案

安裝uv (python package manager): https://docs.astral.sh/uv/getting-started/installation/,確認你的uv安裝路徑

which uv 
# 我的路徑在 ${HOME}/.local/bin/uv

初始化專案

uv init --package mcp-server-demo 
cd mcp-server-demo 
uv add "mcp[cli]" pydantic loguru faker

使用你的IDE/編輯器創建

# src/mcp_server_demo/server.py 
 
import random 
from loguru import logger 
from mcp.server.fastmcp import FastMCP 
from faker import Faker 
 
fake = Faker() 
 
# Create an MCP server 
mcp = FastMCP("mcp-server-demo") 
 
# Add an addition tool 
@mcp.tool() 
def get_order_info(order_id: str) -> dict: 
    """Get the status of an order""" 
    status = ["success", "delayed", "cancelled", "pending_payment"] 
    order_info = { 
        "order_id": order_id, 
        "status": random.choice(status), 
        "client_email": fake.email(), 
    } 
    logger.info(f"Order info: {order_info}") 
    return order_info 
 
 
@mcp.tool() 
def send_coupon_to_user(order_id: str, customer_email: str) -> str: 
    """Send a coupon to the user to make user happy""" 
    logger.info(f"send coupon to {customer_email} for order {order_id}") 
    return f"Coupon sent to {customer_email}"src/mcp_server_demo/__init__.py
# src/mcp_server_demo/__init__.py 
 
from .server import mcp 
from loguru import logger 
 
def main() -> None: 
    logger.info("Starting MCP server demo") 
    mcp.run() 
 
 
if __name__ == "__main__": 
    main()
# src/mcp_server_demo/__main__.py 
 
from mcp_server_demo import main 
 
main()

測試一下 uv run mcp-server-demo

看到這些訊息就表示成功囉,可以ctrl + C關掉他了

安裝 Goose

從Goose官方文件安裝: https://block.github.io/goose/docs/quickstart

Goose 是一個開源的 MCP 客戶端,讓你可以配置自己的 LLM 提供者(使用 API 金鑰),在自己的機器上運行,並與你的 AI 代理(MCP 伺服器)互動。

如果你沒有任何LLM金鑰,也無法搭載本地的LLM,可以下載 Claude Desktop,用你的免費額度來玩玩看:https://modelcontextprotocol.io/quickstart/user

在Good 上面設定你的 LLM 供應商:https://block.github.io/goose/docs/getting-started/providers

打開Goose設定 -> Add custom extensions

Command那邊要放 {path to uv} run {path to your project}/.venv/bin mcp-server-demo

按Add,可以加入

實際場景

如果我們問了一個不清不楚的問題(沒有提供訂單資訊),透過工具提供的資訊,Goose可以請我們提供詳細資訊

當我們詢問某一筆延遲的訂單,系統主動告訴我們要不要使用coupon工具發放優惠卷,並且使用訂單查到到使用者email進行發放

如果我說好,系統還可以讓我手動審核同意再行動

下一步

看見AI Agent怎樣和Chatbot互動,應該更可以了解AI Agent的價值了吧!傳統軟體開發通常由後端整合第三方服務,前端負責 UI/UX,確保使用者體驗。但這種方式要求開發者掌握所有邏輯,並自行串接各種服務,以維持完整控制權。

隨著生成式 AI(Generative AI)與 AI Agent 的發展,設計思維開始轉變。我們可透過 AI Agent 定義業務邏輯,並透過標準化協議(如 Anthropic 的 Multi-Context Protocol, MCP)管理 AI 與 LLM(大語言模型)的互動。這讓開發者無需關注傳統的後端邏輯與前端開發,而是專注於 AI Agent 的行為設計,讓 AI 自主處理任務。

這種模式提升了開發靈活性,特別適用於快速驗證新想法(Prototype)。開發者只需定義 AI Agent 的核心功能,而無需投入大量時間與資源搭建完整的前後端架構,透過 MCP 標準化的互動,即可快速落地應用。

接著你可以:

  1. Fork 專案自己來玩玩看:https://github.com/schwannden/mcp-server-demo
  2. 看看 MCP 官方的 Reference Server: https://github.com/modelcontextprotocol/servers
  3. 加入Goose Discrod看看其他人在做什麼酷酷的事情:https://discord.com/invite/block-opensource

Read more

在優比快Cloud Team工作是什麼樣子

在優比快Cloud Team工作是什麼樣子

如果你正在找一份可以安安靜靜寫程式、不需要太多溝通的工作,老實說——Ubiquiti Cloud Team 可能不適合你。 年輕的工程師通常在意的是能不能學習、有沒有人帶;而資深工程師,則更看重領域的深度與發揮空間。這兩種我都理解,也都經歷過。在 Ubiquiti Cloud Team,工作確實不輕鬆,問題通常也不單純。但如果你追求挑戰、在意技術如何帶出產品價值,這裡就是個能讓你不斷磨練、逐步放大的舞台。 一些基本資訊先講清楚:我們使用 GitHub,開發環境現代化,雲平台該用的都有;團隊內部提供各種 AI coding 工具輔助日常開發(包括我本人非常依賴的 ChatGPT, Cursor 和 Claude Code);工作型態彈性大,遠端、無限假、健身補助。 一切從「真實世界的裝置」開始 Ubiquiti 跟多數純軟體公司不太一樣,我們的雲端服務是為了支援全球各地數以百萬計的實體網通設備:從 AP、

By schwannden