MCP服务器无法暴露get_greeting资源,求排查问题原因
问题诊断与修复方案
你的get_greeting资源无法被识别,核心问题在于FastMCP的resource装饰器不支持greeting://{name}这种带占位符的URI格式。静态URI(如file://data/file.txt)可以被正常解析,但动态参数化的URI模板写法不符合当前FastMCP的资源注册规则。
修复步骤
调整资源URI格式
将动态参数从URI路径中移除,改用函数参数传递的方式,符合FastMCP的资源命名规范:@mcp.resource("greeting") def get_greeting(name: str) -> str: """Get a personalized greeting""" return f"Hello, sir {name}!"验证资源注册状态
启动MCP开发服务器后,使用工具链内置的资源检测命令(如mcp list-resources)确认greeting资源是否被正确注册。调整Claude调用方式
在Claude中调用该资源时,需明确传递参数,示例:使用
greeting资源,将参数name设置为"John"
补充说明
FastMCP对资源URI的解析通常要求静态路径,动态参数通过函数参数传递而非URI占位符。你的其他资源(静态文件路径、prompt)符合静态规则,因此能被正常识别,而带占位符的URI模板超出了当前版本的支持范围。
内容的提问来源于stack exchange,提问作者kurtgn
相关产品推荐
相关产品推荐

