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

即便透過觀念上的解釋: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 標準化的互動,即可快速落地應用。
接著你可以:
- Fork 專案自己來玩玩看:https://github.com/schwannden/mcp-server-demo
- 看看 MCP 官方的 Reference Server: https://github.com/modelcontextprotocol/servers
- 加入Goose Discrod看看其他人在做什麼酷酷的事情:https://discord.com/invite/block-opensource