インストール不要。2分以内に動きます。
cloud.anythingmcp.com で無料トライアルを開始し、Oracle NetSuite をワンクリックで追加して、AI クライアント(Claude、ChatGPT、Copilot、Cursor)を生成された MCP エンドポイントに向けるだけ。Docker も git clone も、開発経験も不要です。
AnythingMCP は Claude のコネクタディレクトリに掲載されています。ワンクリックで Claude に追加 (新しいタブで開きます)し、サインインして Claude が使える MCP サーバーを選んでください。
概要
AI に Oracle NetSuite で作業させます。顧客、仕入先、アイテム、トランザクション、総勘定元帳に対する読み取り専用の SuiteQL クエリの実行、顧客、仕入先、従業員、アイテム、受注書、請求書、発注書、仕入請求書、仕訳の明細付きでの読み取り、レコードタイプとフィールドの確認、顧客と受注書の作成ができます。NetSuite の OAuth 2.0 でサインインし、本番アカウントとサンドボックスアカウントに対応しています。
こう聞いてみよう
Oracle NetSuite のサンプルプロンプト
プロンプトをクリックでコピー。Claude / ChatGPT / Cursor / Gemini / Copilot / OpenClaw に貼り付けて、このコネクターで実行できます。
Claude は AI のため誤ることがあります。回答をご確認ください。
💡 インストール不要? cloud.anythingmcp.com を直接利用してください。 サインインし、Connectors → Oracle NetSuite をクリック、認証情報を貼り付け、MCP API キーを発行すれば完了です。Docker も
git cloneもローカルサーバーも不要。
Oracle NetSuite + Claude
AI に Oracle NetSuite で作業させます。顧客、仕入先、アイテム、トランザクション、総勘定元帳に対する読み取り専用の SuiteQL クエリの実行、顧客、仕入先、従業員、アイテム、受注書、請求書、発注書、仕入請求書、仕訳の明細付きでの読み取り、レコードタイプとフィールドの確認、顧客と受注書の作成ができます。NetSuite の OAuth 2.0 でサインインし、本番アカウントとサンドボックスアカウントに対応しています。
前提条件
完全なセットアップ手順はコネクタ自体に組み込まれています (ストアでコネクタを選択すると表示)。必要な環境変数:
NETSUITE_ACCOUNT_ID, NETSUITE_CLIENT_ID, NETSUITE_CLIENT_SECRET
ステップ 1 — 認証情報を取得
管理者が一度だけ設定します。所要時間は約 20 分です。
- 機能を有効にする: Setup → Company → Enable Features を開きます。SuiteCloud サブタブで REST Web Services にチェックを入れ、Manage Authentication の下の OAuth 2.0 にもチェックを入れます。Analytics サブタブで、SuiteQL の読み取り元である SuiteAnalytics Workbook にチェックを入れます。最後に保存します。
- AI 用のロールを作成する: Setup → Users/Roles → Manage Roles → New を開きます。権限 REST Web Services(Full)と Log in using OAuth 2.0 Access Tokens(Full)を追加し、AI に読ませるリストとトランザクション(顧客、仕入先、アイテム、従業員、勘定科目、受注書、請求書、発注書、仕入請求書、仕訳、Find Transaction)には View を、書き込みを許可するもの(顧客、受注書)には Create を付与します。このロールを、サインインするユーザーに割り当てます。Administrator より専用のロールのほうが安全です。AI にはロールで許可された範囲しか見えません。
- インテグレーションレコードを作成する: Setup → Integration → Manage Integrations → New を開きます。状態を Enabled にし、Token-Based Authentication と TBA: Authorization Flow のチェックを外し、OAuth 2.0 の下の Authorization Code Grant にチェックを入れ、Public Client はチェックを外したままにします。リダイレクト URI に
https://cloud.anythingmcp.com/api/mcp-oauth/callback(AnythingMCP をセルフホストしている場合は<your AnythingMCP URL>/api/mcp-oauth/callback)を入力し、スコープ REST Web Services にチェックを入れます。保存すると、NetSuite はページ下部に Client ID と Client Secret を一度だけ表示します。これをNETSUITE_CLIENT_IDとNETSUITE_CLIENT_SECRETに貼り付けます。 - アカウント ID: Setup → Company → Company Information で確認します。
NETSUITE_ACCOUNT_IDには、NetSuite の Web アドレスに表示される形式で入力します。小文字にし、アンダースコアをハイフンに置き換えるため、1234567_SB1は1234567-sb1になります。サンドボックスの場合は、インテグレーションレコードをそのサンドボックス内で作成してください。 - コネクターをインストールし、Authorize with Provider をクリックして NetSuite にサインインし、手順 2 のロールを選択します。
netsuite_list_record_typesを実行して接続を確認し、続いてnetsuite_suiteql_queryでSELECT id, companyname FROM customerのような最初のクエリを実行します。
週に一度は再承認: この種類のインテグレーションでは、NetSuite はリフレッシュトークンを 7 日間だけ有効にし、更新しません。そのため、少なくとも週に一度は Authorize with Provider をクリックしてください。その間、アクセストークンは自動的に更新されます。インテグレーションレコード、ロール、ユーザーのいずれかを無効にすると、アクセスはすぐに終了します。
中心となるのは SuiteQL: netsuite_suiteql_query は、NetSuite の分析データ(顧客、仕入先、アイテム、勘定科目、子会社、そしてトランザクションとその明細および転記金額)に対して、読み取り専用の SQL クエリを 1 つ実行します。AI はこれを使って、顧客ごとの未払い請求書、アイテム別の売上、仕入先別の支出といった質問に答えます。結果は最大 1,000 行ずつのページで返され、1 つのクエリで返されるのは合計最大 100,000 行です。そのため、大きな質問には個々の行ではなく集計値で答えます。ロールが閲覧できない行はエラーなしで除外されるため、結果が空の場合は権限が不足している可能性があります。
レコード: 専用のツールで、顧客、仕入先、従業員、アイテム、受注書、請求書、発注書、仕入請求書、仕訳を明細付きで読み取れます。その他のレコードタイプは netsuite_get_record で読み取れます。netsuite_describe_record_type は、カスタムフィールドを含め、レコードタイプのすべてのフィールドを一覧表示します。
書き込みは確認してから: netsuite_create_customer は、あなたが確認した時点で顧客を作成します。netsuite_create_sales_order(受注を Pending Approval として作成するため、誰かが承認するまで何も出荷されません)と netsuite_update_record は、インストール時はオフになっています。必要な場合はツールごとにオンにしてください。転記済みのトランザクションを変更すると、帳簿に影響します。
よくあるエラー: INVALID_LOGIN は、週ごとの承認の期限が切れたか、インテグレーション、ロール、ユーザーのいずれかが無効にされたことを示します。もう一度承認してください。403 または INSUFFICIENT_PERMISSION は、ロールに権限が不足していることを示します。CONCURRENCY_LIMIT_EXCEEDED は、アカウントへの並列リクエストが多すぎることを示します。少し待ってから再試行してください。ホストが不明というエラーは、NETSUITE_ACCOUNT_ID が Web アドレスの形式で書かれていないことを示します。
このコネクターは OAuth 2.0 でのみサインインします。Token-Based Authentication(TBA)には対応していません。レコードの削除、保存検索やレポートの実行、RESTlet の呼び出し、ファイルキャビネットの使用は行いません。
ステップ 2 — アダプターをインストール
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
ステップ 3 — Claude にコネクタを追加
サーバーURL: AnythingMCP で MCP Servers を開き、このコネクタがあるサーバーを選んで URL(
https://cloud.anythingmcp.com/mcp/…)をコピーします。このガイドでYOUR_SERVER_IDと表示されている箇所に使ってください。
推奨ルート:設定ファイルを触らずに claude.ai web で動作します。
- Claude で Customize → Connectors を開きます。
- + をクリックし、Add custom connector を選びます。
- 名前(例:
Oracle NetSuite)とリモート MCP サーバー URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_IDを入力し、Add をクリックします。 - Connect をクリックし、AnythingMCP にサインイン(OAuth)してアクセスを許可します。
下記のすべてのツールがチャットに表示されます。プロンプトを入力し始めてください。
利用可能なツール
| Tool | What it does |
|---|---|
netsuite_suiteql_query | Run one read-only SuiteQL query (NetSuite's SQL over the analytics schema), e.g. "SELECT id, companyname, email FROM customer WHERE… |
netsuite_list_record_types | List the record types the REST record API offers in this account (standard and custom, e.g. customer, salesOrder, inventoryItem… |
netsuite_describe_record_type | Describe one record type as JSON Schema: every field with its type, title and whether it is read-only, the sublists and their line fields… |
netsuite_list_records | List the internal ids of one record type, optionally filtered with the record API's q syntax (field, operator, value), e.g. q = email… |
netsuite_get_record | Read any record by type and internal id (or eid:<external id>), e.g. contact, account, subsidiary, location, estimate, creditMemo… |
netsuite_get_customer | Read one customer by internal id (or eid:<external id>): entityId, companyName or person name, email, phone, subsidiary, currency, terms… |
netsuite_get_vendor | Read one vendor by internal id (or eid:<external id>): entityId, companyName, email, phone, subsidiary, currency, terms, balance, category… |
netsuite_get_employee | Read one employee by internal id: entityId, name, email, title, department, location, subsidiary, supervisor, hireDate, isInactive and the… |
netsuite_get_item | Read one item by its record type and internal id: itemId, displayName, description, prices, cost, units, quantities on hand where tracked… |
netsuite_get_sales_order | Read one sales order by internal id: tranId, entity (customer), tranDate, status, orderStatus, currency, subtotal, total, shipping address… |
netsuite_get_invoice | Read one customer invoice by internal id: tranId, entity, tranDate, dueDate, status, currency, subtotal, taxTotal, total, amountRemaining… |
netsuite_get_purchase_order | Read one purchase order by internal id: tranId, entity (vendor), tranDate, status, currency, total, dueDate and, expanded by default… |
netsuite_get_vendor_bill | Read one vendor bill by internal id: tranId, entity (vendor), tranDate, dueDate, status, currency, total, approvalStatus and, expanded by… |
netsuite_get_journal_entry | Read one journal entry by internal id: tranId, tranDate, postingPeriod, subsidiary, currency, approved, memo and, expanded by default… |
netsuite_create_customer | Create a customer, a company (company_name) or a person (is_person true with first_name and last_name) |
netsuite_create_sales_order | Create a sales order for an existing customer, by default in status Pending Approval (A) so nothing is fulfilled before someone approves it |
netsuite_update_record | Change fields of an existing record of any type (PATCH): only the fields given are changed |
プロンプトの例
- 「60 日を超えて未払いの請求書がある顧客と、それぞれの未払い額を教えてください。」
- 「前四半期の売上をアイテム別に、金額の多い順に上位 20 件表示してください。」
- 「仕入請求書をもとに、今年それぞれの仕入先にいくら支出したか教えてください。」
- 「英国子会社に Harbor Supplies Ltd. の顧客を作成してください。保存する前に内容を見せてください。」
FAQ
Claude Code は Claude Desktop と同じように動作しますか? はい。両方を https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID に向けてください。
次のステップ
このガイドは役に立ちましたか?