QuoteTool.ts•3.48 kB
import { MCPTool } from "mcp-framework";
import { z } from "zod";
interface QuoteInput {
category?: string;
}
class QuoteTool extends MCPTool<QuoteInput> {
name = "quote_generator";
description = "Generates random inspirational quotes";
schema = {
category: {
type: z.string().optional(),
description: "Category of quotes (e.g., 'success', 'life', 'motivation', 'wisdom'). Leave empty for random category.",
},
};
private quotes = {
success: [
"성공은 준비와 기회가 만날 때 일어납니다. - 루이 파스퇴르",
"성공의 비밀은 실패를 두려워하지 않는 것입니다. - 로버트 키요사키",
"가장 큰 위험은 위험을 감수하지 않는 것입니다. - 스티브 잡스",
"성공은 최종 목적지가 아니라 여정입니다. - 로버트 슐러",
"당신이 할 수 있다고 믿으면 이미 반은 성공한 것입니다. - 시어도어 루즈벨트"
],
life: [
"인생은 당신이 만나는 사람들로 이루어집니다. - 프레드 로저스",
"가장 큰 모험은 살아가는 것입니다. - 헬렌 켈러",
"인생은 마라톤이지 단거리 경주가 아닙니다. - 하이디 클럼",
"당신의 인생은 당신이 만드는 것입니다. - 릴리 톰린",
"인생에서 가장 중요한 것은 다른 사람을 돕는 것입니다. - 오드리 헵번"
],
motivation: [
"오늘 할 수 있는 일을 내일로 미루지 마세요. - 벤자민 프랭클린",
"당신의 한계는 당신이 설정한 것입니다. - 웨인 다이어",
"포기하지 마세요. 지금 포기하면 언제 포기할 건가요? - 마이클 조던",
"성공의 열쇠는 시작하는 것입니다. - 마크 트웨인",
"당신의 꿈을 믿으세요. 그것이 현실이 될 수 있습니다. - 월트 디즈니"
],
wisdom: [
"지혜는 경험에서 나오고, 경험은 실수에서 나옵니다. - 소크라테스",
"가장 큰 지혜는 자신이 아무것도 모른다는 것을 아는 것입니다. - 공자",
"지혜는 말보다는 행동에서 나타납니다. - 아리스토텔레스",
"진정한 지혜는 다른 사람의 관점을 이해하는 것입니다. - 마하트마 간디",
"지혜는 과거를 배우고, 현재를 살고, 미래를 계획하는 것입니다. - 알베르트 아인슈타인"
],
love: [
"사랑은 모든 것을 믿고, 모든 것을 희망하고, 모든 것을 견뎌냅니다. - 성경",
"사랑은 두 영혼이 하나가 되는 것입니다. - 빅토르 위고",
"진정한 사랑은 조건이 없습니다. - 마더 테레사",
"사랑은 가장 아름다운 언어입니다. - 헬렌 켈러",
"사랑은 인생의 가장 큰 선물입니다. - 오드리 헵번"
]
};
async execute(input: QuoteInput) {
const categories = Object.keys(this.quotes);
const selectedCategory = input.category && categories.includes(input.category)
? input.category
: categories[Math.floor(Math.random() * categories.length)];
const categoryQuotes = this.quotes[selectedCategory as keyof typeof this.quotes];
const randomQuote = categoryQuotes[Math.floor(Math.random() * categoryQuotes.length)];
return {
quote: randomQuote,
category: selectedCategory,
totalQuotes: categoryQuotes.length
};
}
}
export default QuoteTool;