返回市场
网络套件-MCP自定义工具

网络套件-MCP自定义工具

作者:JustTanwa3 星标更新:2025-09-19

项目介绍

Netsuite AI 连接器和自定义工具

此仓库包含了任何希望连接到 NetSuite 连接器 AI 而不通过 Claude 的信息,而是使用 Postman 和 VS Code 以及其可用工具的组合。

我选择 VS Code 是因为它内置了 MCP 服务器和 Copilot,并且它是免费的!

预备条件

你需要安装一些软件才能跟随这个仓库进行操作,但理论上你可以将其适应到你熟悉的任何工具中。

  • VS Code(版本 1.102+,用于 MCP 服务器)
  • 访问 Copliot(应该可以通过 GitHub 账户免费获得)
  • Node.js(版本 22.x.x,用于 SuiteCloud CLI
  • Postman
  • NetSuite 账户设置(你需要设置 NetSuite 角色,并根据文档安装一个 SuiteApp,我建议定制标准 CFO 角色并添加所需的权限)

前言

我的动机是想实验 NetSuite 发布的新工具,但我没有 Claude Pro 账户来设置自定义 MCP 服务器连接器并测试功能。我还想尝试创建新的自定义工具 SuitScript 类型,总的来说就是学习和跟上最新的技术。因此我做了大量的阅读和研究,最终形成了你将在本仓库中找到的内容。这个仓库是我实验的结果,如果你喜欢捣鼓,可以把它作为一个起点来玩转。

开始使用

Postman,为什么?

Postman 是一个常见的 API 测试工具,它允许你快速创建和测试 API。Postman 将作为 MCP 客户端(NetSuite 将作为 MCP 服务器),用于与 NetSuite 认证以获取访问令牌,以便稍后在 VS Code 中使用它来建立 MCP 服务器到客户端的连接。

使用 Postman,OAuth 2.0 非常简单,用户需要登录 NetSuite 并授权 Postman,这样它就可以使用代码获取访问令牌。如果你需要更多信息,我建议你阅读关于 OAuth 2.0 授权码模式的文章(或让 AI 概述并解释给你)。由于无法为每个应用自行创建集成记录,所以你需要依赖 Claude AI 的集成,这就是为什么你会看到示例中的硬编码客户端 ID。

我已经包括了一个集合 netsuite_ai_connector_mcp_test.postman_collection,你可以将其导入到 Postman 中,它应该包含了你需要用来认证到 NetSuite MCP 服务器并获取访问令牌的内容。你需要进行几个点击操作:

  1. 将集合导入到 Postman
  2. 点击集合名称
  3. 点击“变量”子标签,然后将你的 NetSuite 账户 ID 添加到 ACCOUNT_ID 变量中
  4. 点击“认证”子标签,向下滚动并按“获取新访问令牌”
  5. 登录 NetSuite(希望你已经准备好了非管理员角色),阅读风险和安全消息内容,然后点击“允许”(也可以点击“继续”)

完成这些步骤后,你将拥有访问令牌,可以用来发送工具列表的消息并测试可用的样本工具。(没有 AI,只需阅读文档并发送 JSON-RPC 2.0 消息)。

VS Code,为什么?

VS Code 是一个流行的代码编辑工具,今年夏天微软宣布为所有人提供免费的 Copilot(有限制),因此你需要将 VS Code 连接到 GitHub,以便跟踪你的使用情况。它还自带 MCP 服务器,因此你可以使用 Agent 模式下的 Copilot 来连接你已设置的 MCP 服务器。

在文件夹中,你会发现 .vscode/mcp.json 文件,它设置了如何配置 MCP 服务器以连接到像 NetSuite 这样的远程 MCP 服务器。你需要将从 Postman 获取的访问令牌复制到 env 部分的 ACCESS_TOKEN 属性中(你不会错过它的,文件很小)。你也需要输入你的 NetSuite ACCOUNT_ID,就像你在 Postman 中做的那样。一旦设置好,你可以按下 开始 来连接到 NetSuite MCP 服务器,从那里你可以开始使用 Agent 模式的 Copilot 与 MCP 服务器交互。

你还将使用 VS Code 编写自定义工具 SuiteScript 文件和其他项目文件。

Node.js,为什么?

Node.js 是一个流行的 JavaScript 运行时环境,它附带了一个丰富的包管理器 npm。由于 VS Code 内置的 MCP 服务器只能连接到一个你可以设置重定向 URI 的远程 MCP 服务器,因此在这种情况下无法使用它,因为目前无法在 NetSuite 中创建集成记录,必须依赖 Claude AI 的集成。因此,一个名为 mcp-remote@latest 的 Node 包应运而生,用于远程调用 MCP 服务器而不是本地调用。

只需要对 .vscode/mcp.json 进行配置,这样 VS Code 就可以运行 Node Pack Executor (npx) 命令来运行上述提到的包。

你需要安装的一个包是 SuiteCloud 开发框架 CLI,这可以通过 npm install -g @oracle/suitecloud-cli 实现,这样做是为了让你能够使用 suitecloud 命令来设置 NetSuite 项目,链接 NetSuite 账户并部署自定义工具。

预定义的 MCP 工具列表

虽然你可以通过向 MCP 发送带有方法 = tools/list 的 JSON-RPC 2.0 请求来列出可用工具,但 NetSuite 不会返回哪些字段是必需的。因此,我在这里提供了官方文档的链接,工具列表,此外你还可以在其 GitHub 仓库中查看样本工具的实现 MCP 样本工具

自定义工具 SuiteScript

此脚本是新的,它允许你使用大多数标准 NetSuite N 模块(除了 http、https 和搜索)来实现一些自定义逻辑,你希望 AI 客户端能够在用户代表下执行这些逻辑。在这个例子中,我从官方 NetSuite 自定义工具 中取了一些示例代码,确保我可以先让它工作,然后再尝试创建自己的函数。我想测试 N/sftp 是否有效,所以我决定将其作为我将探索的用例的一部分,想法是如果 NetSuite 连接到某个 SFTP(或多个),用户可以提示 AI 为他们获取文件并对这些文件执行某些操作。编写这些自定义工具脚本相当直观,唯一的额外工作是创建函数的模式。

挑战

  1. 我最初希望通过 VS Code 内置配置 MCP: 添加服务器 将 VS Code 与 NetSuite AI 连接器(MCP 服务器)连接起来,但由于无法像 Postman 那样更改 VS Code 中的授权重定向 URI,所以我决定使用 Postman 获取访问令牌,然后复制到 VS Code 中。

  2. mcp.json 文件中的环境变量是我希望存储在外部 .env 文件中的,但在启动时该文件不可用。我尝试使用 envFile 属性,但这似乎仅在 MCP 服务器启动后才使用,以便你可以将 .env 文件的内容加载到 MCP 服务器环境中。这意味着你必须将访问令牌粘贴到 mcp.json 文件中,因此我在推送到 GitHub 时删除了它。

  3. 部署示例工具时遇到了“自定义工具未找到”的问题,花了几个小时试图弄清楚为什么工具在发送给 MCP 服务器的 tools/list 消息中不可见,尽管 SDF 表明它已成功部署。结果发现问题是打字错误,我通过比较 MCP 示例工具的文件才发现这一点,很高兴 NetSuite 分享了那个 SuiteApp 的源文件。要部署工具,你需要将 XML 属性 exposeto3rdpartyagents 设置为 T,由于打字错误为 "exposeto3rdpartyagent",我创建的自定义工具从未被部署过。

  4. 更新:我想尝试使用 AI 代理和环境设置为 NetSuite 创建那些“感觉良好”的应用程序。因此第一个挑战是确保 AI 可以调用命令行工具如 "suitecloud-cli",我遇到了一个问题,因为我使用的是 git-bash,PATH 变量没有正确解析我的 "suitecloud-cli",我也无法让 Copilot 调用 Python 脚本。所以我不得不切换到使用 PowerShell。结合 Copilot 指令文件和预先安排的脚本,我几乎可以测试使用 Copilot 提示创建脚本,自动部署并通过 RESTlet 测试。

致谢

awesome-netsuite-ai - 这是一个非常有用的仓库,包含了 NetSuite 社区指南和与 NetSuite Connect AI 和自定义工具相关的见解。