Skip to main content
Glama

FastMCP

by yamato-snow
addition.ts3.35 kB
/** * FastMCPのシンプルな使用例 * * このファイルは、FastMCPを使って数値の加算を行う3つの方法を示しています: * 1. Zodバリデーションライブラリを使った方法 * 2. ArkTypeバリデーションライブラリを使った方法 * 3. Valibotバリデーションライブラリを使った方法 * * さらに、基本的なリソースとプロンプトの使用例も含まれています。 */ import { FastMCP } from "../FastMCP.js"; import { z } from "zod"; import { type } from "arktype"; import * as v from "valibot"; // サーバーインスタンスの作成 const server = new FastMCP({ name: "Addition", version: "1.0.0", }); // --- Zod を使った例 --- // Zodを使ってパラメータのバリデーションスキーマを定義 const AddParamsZod = z.object({ a: z.number().describe("The first number"), b: z.number().describe("The second number"), }); // Zodスキーマを使ったツールの追加 server.addTool({ name: "add-zod", description: "Add two numbers (using Zod schema)", parameters: AddParamsZod, execute: async (args) => { // args は { a: number, b: number } 型として推論される console.log(`[Zod] Adding ${args.a} and ${args.b}`); return String(args.a + args.b); }, }); // --- ArkType を使った例 --- // ArkTypeを使ってパラメータのバリデーションスキーマを定義 const AddParamsArkType = type({ a: "number", b: "number", }); // ArkTypeスキーマを使ったツールの追加 server.addTool({ name: "add-arktype", description: "Add two numbers (using ArkType schema)", parameters: AddParamsArkType, execute: async (args) => { // args は AddParamsArkType.infer に基づいて { a: number, b: number } 型として推論される console.log(`[ArkType] Adding ${args.a} and ${args.b}`); return String(args.a + args.b); }, }); // --- Valibot を使った例 --- // Valibotを使ってパラメータのバリデーションスキーマを定義 const AddParamsValibot = v.object({ a: v.number("The first number"), b: v.number("The second number"), }); // Valibotスキーマを使ったツールの追加 server.addTool({ name: "add-valibot", description: "Add two numbers (using Valibot schema)", parameters: AddParamsValibot, execute: async (args) => { console.log(`[Valibot] Adding ${args.a} and ${args.b}`); return String(args.a + args.b); }, }); // リソースの追加例 // このリソースはアプリケーションログを提供する server.addResource({ uri: "file:///logs/app.log", name: "Application Logs", mimeType: "text/plain", async load() { return { text: "Example log content", }; }, }); // プロンプトの追加例 // このプロンプトはGitコミットメッセージの生成を支援する server.addPrompt({ name: "git-commit", description: "Generate a Git commit message", arguments: [ { name: "changes", description: "Git diff or description of changes", required: true, }, ], load: async (args) => { return `Generate a concise but descriptive commit message for these changes:\n\n${args.changes}`; }, }); // 標準入出力(stdio)トランスポートでサーバーを起動 server.start({ transportType: "stdio", });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yamato-snow/2025_McpLab_FastMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server