😀
本文介绍在使用nodejs 开发mcp 服务时,tool()和registerTool() 的区别
 

📝 McpServer

 
notion image
官方的 SDK @modelcontextprotocol/sdk/server 中使用的注册 mcp 工具的 API 有两个,但是文档中并没有提到这两个 API的具体区别,实际使用下来 registerTool 的效果是最好的,看了下源码这两个函数存在细微的差异。

register

接收多种传参方式,最终调用了 _createRegisteredTool 注册工具,但是 title 参数是空的, 部分源码如下:

registerTool

底层也是调用了 _createRegisteredTool 注册工具,但是会从入参解析并传入 title 参数。
 

🤗 总结归纳

实测下来,当有title传入时对 MCP 工具的调用会更频繁,可以理解为:
registerTool会提高 MCP 工具的调用率。
 
MCP tool 注册最佳实践:
 

📎 参考文章

官方文档: