iT邦幫忙

2025 iThome 鐵人賽

DAY 9
0
生成式 AI

MCP Server 全攻略:讓 AI 動態調用工具的工作流革命系列 第 9

[09] 實作 Mcp Server Tools & inspector 介紹

  • 分享至 

  • xImage
  •  

今天我們來定義 Mcp server 有的基礎功能:

const server = new McpServer({
  name: 'Journal MCP Server',
  version: '1.0.0',
  description: 'A MCP server for the Journal',
});

const journals = [];

server.tool(
  'create_journal',
  'Create a new journal',
  {
    content: z.string(),
    date: z.string(),
  },
  async ({ content, date }) => {
    journals.push({ content, date });
    return { success: true };
  },
);

server.tool('get_journals', 'Get all journals', {}, async () => {
  return journals;
});

server.tool(
  'read_journal',
  'Read a journal entry by date',
  {
    date: z.string(),
  },
  async ({ date }) => {
    return { entry: journals.find((journal) => journal.date === date) };
  },
);

server.tool(
  'search_journal',
  'Search a journal entry by keyword',
  {
    keyword: z.string(),
  },
  async ({ keyword }) => {
    const journal = journals.filter((journal) =>
      journal.content.includes(keyword),
    );
    return journal;
  },
);

可以直接複製貼上, 在我們正式用 client 把玩 Mcp Server 之前, 容我先介紹一個官方開發的檢視工具.

測試神器

最後讓我們安裝一個用來 debug 用的套件,

它讓我們可以直接用 UI 的方式呼叫 server 的 methods、tools、resources,而不用自己手動組 JSON-RPC, 便於測試我們的 Mcp Server:

npm i -D @modelcontextprotocol/inspector

接著在 package.json 加上:

"server:inspect": "set DANGEROUSLY_OMIT_AUTH=true && npx @modelcontextprotocol/inspector npm run start"

note: DANGEROUSLY_OMIT_AUTH=true
會跳過驗證,讓 Inspector 可以直接連線到你的 server, 正式環境不要使用

執行

npm run server:inspect

會跳出網頁點進去會進到下面這個畫面, 你可以連線後試打一下剛建立的方法, 自己動手玩玩看吧:
https://ithelp.ithome.com.tw/upload/images/20250923/20141182suomatrhMO.png


上一篇
[08] 從頭打造 Mcp Server -- (1) 專案介紹與初始化
下一篇
[10] Claude Desktop 運行 STDIO Mcp Server
系列文
MCP Server 全攻略:讓 AI 動態調用工具的工作流革命12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言