TypeScript MCP服务器生成工具

一个从源代码生成TypeScript MCP服务器的工具,支持多种MCP风格和可配置的传输方法,自动安装缺失的依赖。

  • by ripulio
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ripulio/mcptool

使用说明

🤖 mcptool

一个从源代码生成TypeScript MCP服务器的工具。

  • 支持多种口味(如tmcp、官方mcp)
  • 生成类型安全的MCP工具实现
  • 可配置的传输方式(例如stdio、http)
  • 自动安装缺失的依赖项

安装

npm install -g mcptool

用法

npx mcptool src/input.ts -o src/server.ts

运作原理

此工具将处理打字脚本入口点,并根据提供的代码生成功能齐全的MCP服务器实现。

例如,将以下代码作为输入:

/**
 * Adds two numbers
 * @mcpTool
 */
export function add(a: number, b: number): number {
  return a + b;
}

如果我们逃跑 npx mcptool src/input.ts,这将生成一个MCP服务器,该服务器公开 add 作为MCP工具。

生成的文件将是TypeScript,并且应该提交到您的存储库中。这不是“构建输出”,因为您可以选择从现在开始手动修改它,也可以将其用作预提交步骤以始终重新生成它。

需要注意的要点:

  • 入口点文件的所有导出函数 @mcpTool JSDoc评论将作为MCP工具公开。
  • 生成的服务器将使用源代码中定义的类型,确保类型安全。
  • 您可以选择使用哪个SDK(例如tmcp或官方的MCP TypeScript SDK)。
  • 如果你的函数返回a CallToolResult (例如来自tmcp),生成的服务器将按原样使用它,而不是再次包装它。

选项

  • --outFile, -o <path> -输出文件路径
  • --cwd, -c <path> -当前工作目录(默认: .)
  • --transport, -t <type> -运输方式: stdio 或 http (默认值: stdio)
  • --name, -n <name> -项目名称(默认为 package.json 姓名)
  • --version, -v <version> -项目版本(默认为 package.json 版本)
  • --flavor, -f <flavor> -MCP风味: tmcp 或 mcp (默认值: tmcp)
  • --interactive, -i -在交互模式下运行(默认: false)
  • --silent, -s -抑制输出消息(默认值: false)
  • --install -自动安装缺少的依赖项(默认值: false)

带有选项的示例

mcptool src/input.ts -o src/server.ts -t http -f mcp --install

格式化

如果支持,则使用项目中本地安装的格式化程序自动格式化生成的代码。支持的格式化程序有:

如果这些都没有安装,代码将是未格式化的,可能不符合项目的编码风格。

许可证

MIT许可证