一个全面的模型上下文协议(MCP)服务器,通过RESTlets和SuiteQL查询访问NetSuite数据。此服务器提供了广泛的NetSuite集成能力,支持财务数据、客户信息、交易记录等。
访问我们的官方网站:
👉 ChatFin – AI 财务平台
在LinkedIn上与我们联系:
👉 ChatFin LinkedIn
探索我们在NetSuite上的SuiteApp列表:
👉 ChatFin AI for NetSuite – SuiteApp
阅读我们的最新新闻稿:
👉 ChatFin 发布下一代AI产品以革新金融行业
预约演示:
👉 预约演示
复制示例环境文件:
cp .env.example .env
在NetSuite SuiteScripts中安装setup/SuiteScript_SearchRestlet.js作为RESTLet,并复制该套件脚本文件的URL。
配置所需的NetSuite设置:
# 必需
NETSUITE_REST_URL=https://your-account-id.suitetalk.api.netsuite.com/services/rest/
NETSUITE_SEARCH_REST_LET=https://your-suite-script-url
NETSUITE_ACCESS_TOKEN=your_jwt_access_token_here
# 可选
PORT=3000
LOG_LEVEL=info
LOG_TO_FILE=true
参见.env.example了解所有可用的配置选项。
从npm安装包:
npm install @chatfinai/netsuite-mcp
或使用yarn:
yarn add @chatfinai/netsuite-mcp
全局安装并使用命令行工具:
# 全局安装
npm install -g @chatfinai/netsuite-mcp
# 或使用yarn
yarn global add @chatfinai/netsuite-mcp
# 运行HTTP服务器
netsuite-mcp-http
# 运行STDIO服务器
netsuite-mcp-stdio
# 本地安装
npm install @chatfinai/netsuite-mcp
# 添加到您的package.json脚本:
# "start:netsuite-http": "netsuite-mcp-http",
# "start:netsuite-stdio": "netsuite-mcp-stdio"
# 然后运行:
npm run start:netsuite-http
# 或
npm run start:netsuite-stdio
添加到您的MCP客户端配置(例如Claude Desktop):
{
"mcpServers": {
"netsuite": {
"command": "netsuite-mcp-stdio",
"env": {
"NETSUITE_REST_URL": "https://your-account-id.suitetalk.api.netsuite.com/services/rest/",
"NETSUITE_SEARCH_REST_LET": "https://your-account-id.restlets.api.netsuite.com/app/site/hosting/restlet.nl?script=customscript_cf_search_rl&deploy=customdeploy_cf_search_rl",
"NETSUITE_ACCESS_TOKEN": "your_jwt_access_token_here"
}
}
}
}
参见examples/claude-desktop-config.json文件以获取完整的配置示例。
import { McpServerFactory } from "@chatfinai/netsuite-mcp";
// 创建并配置您的MCP服务器
const server = McpServerFactory.createServer();
// ... 根据需要进行配置
更多示例:
克隆并安装:
git clone https://github.com/ChatFinAI/netsuite-mcp.git
cd netsuite-mcp
npm install
配置环境:
cp .env.example .env
# 编辑.env文件以包含您的NetSuite配置
构建并运行:
npm run build
npm run start:http # HTTP服务器
npm run start:stdio # STDIO服务器
npm run dev # HTTP服务器 + ngrok隧道
npm run build # 编译TypeScript
npm run lint # 代码检查
npm run clean # 清理构建工件
npm run inspector # MCP调试工具
# 启动HTTP服务器(默认端口3000)
npm run start:http
# 启动开发隧道
npm run dev
# 启动STDIO服务器供MCP客户端使用
npm run start:stdio
# 使用MCP Inspector调试
npm run inspector
# 构建和清理
npm run clean # 清理dist和日志
npm run build # 编译TypeScript
npm run lint # 运行ESLint
# 开发
npm run dev # 启动HTTP服务器 + ngrok隧道
npm run ngrok # 启动ngrok隧道
npm run inspector # 启动MCP Inspector进行调试
# 进程管理
npm run stop # 停止所有服务器进程
应用程序提供两种服务器模式:
两个服务器都使用相同的核心组件进行NetSuite集成和工具注册。
get-accounts:检索账户表,支持过滤、排序和分页get-account-balance:获取特定期间的账户余额get-accounting-periods:列出所有会计期间get-subsidiaries:获取子公司信息get-customers:检索客户信息及其联系方式get-customer-details:获取详细客户信息get-vendors:列出供应商及其联系方式get-invoices:检索发票及其客户和金额详情get-invoice-items:获取发票中的明细项get-credit-memos:列出信用备忘录get-payments:获取付款记录get-items:检索可销售商品目录get-transactions:一般交易数据get-bills:供应商账单和账单支付get-journals:日记账条目get-departments:部门列表get-locations:位置信息get-classes:类别信息get-posting-period:过账期间所有工具均支持:
{
"name": "get-accounts",
"arguments": {
"Filters": [{ "Field": "Type", "Operator": "anyof", "Values": ["Income", "Expense"] }],
"Sort": [{ "Column": "AccountNumber", "Order": "ASC" }],
"Limit": 50,
"Offset": 0,
"CountOnly": false
}
}
项目包括全面的ngrok配置用于开发:
# 启动服务器和隧道
yarn dev
# 启动隧道
yarn ngrok
Ngrok特性:
logs/ngrok.log(JSON格式)使用官方inspector调试您的MCP服务器:
yarn inspector
这提供了一个Web界面来测试MCP工具和调试服务器行为。
文件日志(当LOG_TO_FILE=true时):
logs/app.log控制台日志(当LOG_TO_FILE=false时):
配置:
LOG_LEVEL=info # error, warn, info, debug
LOG_TO_FILE=true # 启用文件日志
LOG_MAX_SIZE=10m # 文件轮换前的最大文件大小
LOG_MAX_FILES=5 # 保留的文件数量
.env.example - 配置模板examples/claude-desktop-config.json - Claude Desktop设置examples/programmatic-usage.js - API使用示例401 认证错误:
NETSUITE_ACCESS_TOKEN已设置且有效403 禁止错误:
缺少环境变量:
.env.example到.envRESTlet连接问题:
NETSUITE_SEARCH_REST_LET URL正确连接超时:
NETSUITE_REST_URL与您的账户匹配CORS问题(HTTP模式):
ALLOWED_ORIGINS构建失败:
yarn clean然后yarn buildNgrok隧道问题:
NGROK_AUTH_TOKEN和NGROK_DOMAIN已设置logs/ngrok.log以获取连接详情本项目采用MIT许可证。详见LICENSE文件。
如有疑问或需要支持,请在GitHub上打开一个问题或联系我们:support@chatfin.ai。