使用说明
使用FastMCP测试MCP(模型上下文协议)
本文档涵盖了我使用FastMCP对模型上下文协议的实践探索,演示了三个核心MCP原语:工具、资源和提示。
概述
FastMCP是一个Python框架,用于构建MCP服务器,使AI助手能够与外部工具和数据源进行交互。此演示以简单、可测试的格式实现了三个关键的MCP功能。
代码实现
from mcp.server.fastmcp import FastMCP
app = FastMCP("demo")
@app.tool()
def add(a: int, b: int) -> int:
""" returns addition of two number """
return a + b
@app.resource("greeting://{name}")
def get_greeting(name: str) -> str:
""" generate a greeting name """
return f"Hello, {name}!"
@app.prompt()
def greet_user(name: str, style: str = "friendly") -> str:
"""Generate a greeting prompt"""
styles = {
"friendly": "Please write a warm, friendly greeting",
"formal": "Please write a formal, professional greeting",
"casual": "Please write a casual, relaxed greeting",
}
return f"{styles.get(style, styles['friendly'])} for someone named {name}."
关键概念测试
1.工具(@app.tool())
工具允许AI助手执行动作或计算。
例子: add() 函数
- 接受两个整数作为输入
- 返回它们的总和
- 可由AI调用以执行计算
使用案例: 当AI需要计算时 5 + 3,它可以调用此工具并接收 8 结果。
2.资源(@app.resource())
资源通过基于URI的标识符提供对数据的访问。
例子: get_greeting() 函数
- 使用URI模式:
greeting://{name} - 根据name参数动态生成问候语
- 返回格式化的问候字符串
使用案例: 访问 greeting://Alice 回报 "Hello, Alice!",而 greeting://Bob 回报 "Hello, Bob!"
3.提示(@app.prompt())
提示是可重用的模板,有助于构建人工智能交互。
例子: greet_user() 函数
- 接受名称和可选样式参数
- 支持三种风格:友好(默认)、正式和休闲
- 返回一个格式化的提示,让AI生成适当的问候语
使用案例: 召唤 greet_user("Sarah", "formal") 生产: "Please write a formal, professional greeting for someone named Sarah."
学习心得
通过测试这段代码,我了解到MCP提供了一种标准化的方法来:
- 将计算函数作为工具公开
- 通过资源URI共享数据
- 创建可重用的提示模板
每个装饰器都将一个常规的Python函数转换为MCP原语,AI助手可以自动发现和使用它。
