Prompt trong máy chủ MCP

Giới thiệu về Model Context Protocol (MCP)

James Chapman

AI Curriculum Manager, DataCamp

MCP Prompt là gì?

 

Prompt: mẫu dùng lại để tối ưu LLM cho tác vụ cụ thể

  • Quy trình và hành vi
  • Giảm gánh nặng prompt cho người dùng

prompt.png

Giới thiệu về Model Context Protocol (MCP)

Nhu cầu về Prompting

ambiguous_inputs.png

Giới thiệu về Model Context Protocol (MCP)

Prompt Bộ đổi múi giờ

You are a timezone conversion engine.

Your task is to:
1. Extract the source datetime from the user's natural language input.
2. Identify the source timezone (explicit or inferred).
3. Convert the datetime into the target timezone.

Rules:
- If the date is ambiguous (e.g., "next Friday"), resolve it relative to the provided datetime.
- If the input cannot be resolved confidently, seek clarification.

→ Công khai prompt này cho tác vụ đổi múi giờ

Giới thiệu về Model Context Protocol (MCP)

Định nghĩa Prompt cho máy chủ MCP

@mcp.prompt(title="Timezone Conversion")

def convert_timezone_prompt(user_input: str) -> str:
return f"""You are a timezone conversion engine. Your task is to: 1. Extract the source datetime... Rules: - If the date is ambiguous (e.g., "next Friday"), resolve it relative to the provided datetime. - If the input cannot be resolved confidently, seek clarification. User's timezone conversion request: {user_input}"""
Giới thiệu về Model Context Protocol (MCP)

Máy chủ MCP cục bộ: timezone_server.py

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("Timezone Converter")

# Tools and resources from before...

@mcp.prompt(title="Timezone Conversion")
def convert_timezone_prompt(timezone_request: str) -> str:
    # ...

if __name__ == "__main__":
    mcp.run(transport="stdio")
Giới thiệu về Model Context Protocol (MCP)

Client: Liệt kê Prompt

async def list_prompts():
    """Liệt kê tất cả prompt có sẵn từ máy chủ MCP."""
    params = StdioServerParameters(command=sys.executable, args=["timezone_server.py"])

    async with stdio_client(params) as (reader, writer):
        async with ClientSession(reader, writer) as session:
            await session.initialize()

# Liệt kê prompt có sẵn prompts = await session.list_prompts() print(f"Available prompts: {[p.name for p in prompts.prompts]}")
Giới thiệu về Model Context Protocol (MCP)

Client: Liệt kê Prompt

print(asyncio.run(list_prompts()))
Available prompts: ['convert_timezone_prompt']

name của prompt không trùng với title

@mcp.prompt(title="Timezone Conversion")
def convert_timezone_prompt(timezone_request: str) -> str:
    # ...
Giới thiệu về Model Context Protocol (MCP)

Client: Liệt kê Prompt

print(asyncio.run(list_prompts()))
Available prompts: ['convert_timezone_prompt']

name của prompt không trùng với title

# Liệt kê prompt có sẵn
prompts = await session.list_prompts()
print(f"Available prompts: {[p.name for p in prompts.prompts]}")
  • Dùng thuộc tính .name ở client (không phải .title)
Giới thiệu về Model Context Protocol (MCP)

Client: Lấy Prompt

async def read_prompt(user_input: str, prompt_name: str = "convert_timezone_prompt") -> str:
    """Lấy một prompt từ máy chủ MCP với đầu vào người dùng."""
    params = StdioServerParameters(command=sys.executable, args=["timezone_server.py"])

    async with stdio_client(params) as (reader, writer):
        async with ClientSession(reader, writer) as session:
            await session.initialize()

            prompts = await session.list_prompts()

# Truy xuất prompt if prompts.prompts: prompt = await session.get_prompt(prompt_name, arguments={"timezone_request": user_input})
print(f"Prompt result: {prompt.messages[0].content.text}") return prompt.messages[0].content.text
Giới thiệu về Model Context Protocol (MCP)
print(asyncio.run(read_prompt(user_input="It is 9:50 AM in the UK in January. What time is
    it in Lisbon, Portugal?")))
You are a timezone conversion engine.

Your task is to:
1. Extract the source datetime from the user's natural language input.
2. Identify the source timezone (explicit or inferred).
3. Convert the datetime into the target timezone.

Rules:
- If the date is ambiguous (e.g., "next Friday"), resolve it relative to the...
- If the input cannot be resolved confidently, seek clarification.

User's timezone conversion request: It is 9:50 AM in the UK in January. What time is it in
Lisbon, Portugal?
Giới thiệu về Model Context Protocol (MCP)

Ayo berlatih!

Giới thiệu về Model Context Protocol (MCP)

Preparing Video For Download...