iT邦幫忙

2025 iThome 鐵人賽

DAY 23
0

前言

今天就來進入實戰環節 —— HackMD MCP Server 的整合實作
接著我們正文開始(。・∀・)ノ


實踐

事前準備

首先要先確認本地端環境有安裝好 Node.js 與 npm:

node --version
npm --version

接著把 hackmd-mcp 專案 clone 下來並安裝依賴:

git clone <the web URL>

pnpm 安裝與設定

cd hackmd-mcp
# 安裝 pnpm
npm install -g pnpm
# 安裝依賴
pnpm install
# 建置 MCP Server
pnpm run build

HackMD API Token 設定

HackMD API 設定 申請一個 API Token,然後設定環境變數:

# HackMD API Token
HACKMD_API_TOKEN="your_hackmd_api_token_here"
HACKMD_API_URL="https://api.hackmd.io/v1"

整合到 Agent

建立一個 hackMD_agent,並透過 MCPToolset 來呼叫剛剛建好的 hackmd-mcp:

import os
from dotenv import load_dotenv
from google.adk.agents import Agent
from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset, StdioServerParameters, StdioConnectionParams
import tools.hackMD.hackMD_prompt as prompt
load_dotenv()
hackMD_agent = Agent(
    model="gemini-2.0-flash",
    name="hackMD_agent",
    description=prompt.HACKMD_AGENT_DESCRIPTION,
    instruction=prompt.HACKMD_AGENT_INSTRUCTION,
    tools=[MCPToolset(
        connection_params=StdioConnectionParams(
            server_params=StdioServerParameters(
                command='node',
                args=['dist/index.js'],
                cwd="D:\\VsCode\\multi_tool_agent\\hackmd-mcp",
                env={
                    "HACKMD_API_TOKEN": os.getenv("HACKMD_API_TOKEN"),
                    "HACKMD_API_URL": os.getenv("HACKMD_API_URL")
                }
            )
        )
    )]
)

注意這裡的 cwd 必須改成你自己 clone 下來的 hackmd-mcp 位置。

  • root_agent 只要在 sub_agent 寫入 hackMD_agent 就好~(記得匯入喔!)

  • root_agent prompt 依據自己要求撰寫就好,我hackMD 一些部分:

### hackMD_agent - HackMD 筆記管理專家 Notes
**服務範圍:**
- HackMD 筆記建立、編輯、刪除
- 筆記搜尋和管理
- 團隊筆記協作
- 使用者資訊和歷史記錄查詢

實踐畫面

啟動方式很簡單:

  1. 啟動 FastAPI:uvicorn main:app --host 0.0.0.0 --port <port>
  2. 啟動 Gradio:python gradio_app.py

成功運行後,可以從 HackMD API 設定頁面確認使用量:

https://ithelp.ithome.com.tw/upload/images/20251007/201684540uTK9sdDuD.png

https://ithelp.ithome.com.tw/upload/images/20251007/20168454inbQ8RZYzu.png

如何確認 MCP Server 運作

在 VSCode 終端機裡可以看到相關的 MCP 訊息,例如:

auth_config or auth_config.auth_scheme is missing. Will skip authentication.Using FunctionTool instead if authentication is not required.

這個警告不會影響功能,只是表示 MCP 工具使用了 FunctionTool 模式,HackMD 功能依然完全正常。

Warning: there are non-text parts in the response: ['function_call'], returning concatenated text result from text parts.

這表示 AI 模型的回應包含了 function_calltext 兩個部分,系統正常調用了 MCP 工具。


小結

透過這次的實作,我們成功把 HackMD MCP Server 整合進 Agent 系統裡了!
這樣 AI 助手就不只能聊天,還能幫我們建立筆記、搜尋文件、管理內容,變成一個真正實用的筆記管理幫手。


結尾廢話

是不是覺得自己的 Agent 系統又進化了呢?
透過 MCP 的標準化介面,我們能夠很輕鬆地把各種工具「插」進 Agent 裡,就像搭積木一樣~

下一篇我們會繼續探索更多有趣的 MCP Server,讓我們的 AI 助手變得更加全能!
我們下一篇見(ノ>ω<)ノ
reference link


上一篇
[Day 22] HackMD MCP Server(上)
下一篇
[Day 24] SearXNG MCP Server(上)
系列文
AI Agent 開發養成記:做出屬於自己的Agent P26
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言