π§ MCP μλ² κ΅¬μΆ κ°μ΄λ: ν둬ννΈ κΈ°λ₯ μΆκ°νκΈ°
π§ MCP μλ² κ΅¬μΆ κ°μ΄λ: ν둬ννΈ κΈ°λ₯ μΆκ°νκΈ°
MCP(Model Context Protocol) μλ²μ ν둬ννΈ κΈ°λ₯μ μΆκ°νμ¬,
AI λͺ¨λΈκ³Όμ μνΈμμ©μ λμ± ν¨μ¨μ μΌλ‘ λ§λλ λ°©λ²μ μκ°ν©λλ€.
ν둬ννΈλ λ°λ³΅ κ°λ₯ν λ©μμ§ μνμ€λ₯Ό μ μνμ¬, μΌκ΄λ AI μλ΅μ μ λνλ λ° μ¬μ©λ©λλ€.
π§ ν둬ννΈλ 무μμΈκ°μ?
ν둬ννΈλ AI λͺ¨λΈκ³Όμ μνΈμμ©μ νμ€ννλ ν
νλ¦Ώμ
λλ€.
μλ₯Ό λ€μ΄, μ½λ 리뷰, λ°μ΄ν° λΆμ, μ΄λ©μΌ μμ± λ±μ μμ
μ λν΄
μΌκ΄λ μμ² νμμ μ 곡ν©λλ€.
π μμ ν둬ννΈ
- μ½λ 리뷰 ν둬ννΈ
- "name": "code-review" Please review the following {{language}} code focusing on {{focusAreas}}: ```{{language}} {{codeBlock}}
- λ°μ΄ν° λΆμ ν둬ννΈ
- "name": "analyze-sales-data" Analyze {{timeframe}} sales data focusing on {{metrics}}
- μ΄λ©μΌ μμ± ν둬ννΈ
- "name": "generate-email" Generate a {{tone}} {{type}} email for {{context}}
π οΈ ν둬ννΈ κΈ°λ₯ ꡬννκΈ°
1. ν둬ννΈ μ μ
// src/prompts.ts
export const prompts = {
"create-greeting": {
name: "create-greeting",
description: "Generate a customized greeting message",
arguments: [
{
name: "name",
description: "Name of the person to greet",
required: true,
},
{
name: "style",
description: "The style of greeting, such as formal, excited, or casual. If not specified, casual will be used",
}
],
},
};
2. ν둬ννΈ νΈλ€λ¬ ꡬν
export const promptHandlers = {
"create-greeting": ({ name, style = "casual" }: { name: string, style?: string }) => {
return {
messages: [
{
role: "user",
content: {
type: "text",
text: `Please generate a greeting in ${style} style to ${name}.`,
},
},
],
};
},
};
3. νΈλ€λ¬μ ν둬ννΈ μΆκ°
// src/handlers.ts
import {
GetPromptRequestSchema,
ListPromptsRequestSchema,
} from "@modelcontextprotocol/sdk/types.js";
import { promptHandlers, prompts } from "./prompts.js";
export const setupHandlers = (server: Server): void => {
server.setRequestHandler(ListPromptsRequestSchema, () => ({ prompts }));
server.setRequestHandler(GetPromptRequestSchema, (request) => {
const { name } = request.params ?? {};
const promptHandler = promptHandlers[name as keyof typeof promptHandlers];
if (promptHandler) return promptHandler(request.arguments);
throw new Error("Prompt not found");
});
};
π‘ μ μ μκ°
MCP μλ²μ ν둬ννΈ κΈ°λ₯μ μΆκ°ν¨μΌλ‘μ¨,
λ°λ³΅μ μΈ μμ²μ νμ€ννκ³ , AI λͺ¨λΈκ³Όμ μνΈμμ©μ
λμ± μΌκ΄λκ³ μμΈ‘ κ°λ₯νκ² λ§λ€ μ μμ΅λλ€.
νΉν μ½λ 리뷰, λ°μ΄ν° λΆμ, μ½ν
μΈ μμ±κ³Ό κ°μ΄
μΌκ΄λ νμμ΄ μ€μν μμ
μμλ λ§€μ° μ μ©ν©λλ€.
λν, ν둬ννΈλ₯Ό λͺ¨λννμ¬ κ΄λ¦¬νλ©΄
μ μ§λ³΄μμ±κ³Ό νμ₯μ±μ΄ ν¬κ² ν₯μλ©λλ€.
μ΄λ ν νμ
μμλ ν° μ₯μ μΌλ‘ μμ©ν κ²μ
λλ€.
κ°μΈμ μΌλ‘λ μ΄λ¬ν λͺ¨λν μ λ΅μ΄
ν₯ν λ€μν AI μλΉμ€μμ ν΅ν©μ λ§€μ° μ 리νλ€κ³ μκ°ν©λλ€.
νλμ ν둬ννΈλ₯Ό λ€μν λꡬμμ μ¬μ¬μ©ν μ μκΈ° λλ¬Έμ
κ°λ° μλμ μ μ§λ³΄μμ±μ΄ λμμ ν₯μλ κ²μ
λλ€.
MCP μλ², ν둬ννΈ μμ§λμ΄λ§, AI μνΈμμ©, μ½λ 리뷰 μλν, λ°μ΄ν° λΆμ μλν,
μ½ν
μΈ μμ±, TypeScript, μλ² κ΅¬μΆ, AI ν΅ν©, Model Context Protocol