---
title: "ドキュメントを AI が使えるデータに変える: PreciseMD の解析、NAS 連携、MCP/CLI"
description: "4 つのシナリオ: Playground でアップロードしたファイルを解析する、NAS を接続してバッチ処理する、MCP 経由で AI エージェントにツールを呼び出させる、CLI で解析をスクリプトやスケジュールに組み込む"
canonical_url: "https://docs.ardge.com/ja/knowledge/precisemd/mcp-cli-integration"
---
# ドキュメントを AI が使えるデータに変える: PreciseMD の解析、NAS 連携、MCP/CLI

> 4 つのシナリオ: Playground でアップロードしたファイルを解析する、NAS を接続してバッチ処理する、MCP 経由で AI エージェントにツールを呼び出させる、CLI で解析をスクリプトやスケジュールに組み込む

## 概要

PreciseMD は ARX プラットフォーム上のドキュメント解析アプリケーションです。画像、PDF、Excel ファイル、PowerPoint 資料に含まれるテキストや図表を高精度に抽出し、AI ナレッジベースがそのまま利用できるデータに変換します。

ナレッジベースの品質は、元データの精度で決まります。解析が完全であるほど、AI が検索と回答生成で誤る可能性は低くなり、従業員と顧客が正しい情報にたどり着く確実性が高まります。

この記事では 4 つのシナリオを扱います。それぞれ独立しているため、必要なものだけを読んでください。

- **シナリオ 1 · アップロードしたファイルを解析**: ドキュメントを PreciseMD に送り、構造化されたテキストと画像を取得します
- **シナリオ 2 · NAS を接続**: 既存のファイルシステムを接続し、そこにあるドキュメントをバッチ処理します
- **シナリオ 3 · MCP 連携**: AI エージェントに PreciseMD のツールを自律的に検出・呼び出しさせます
- **シナリオ 4 · CLI 連携**: 解析をスクリプト、スケジュール、CI パイプラインに組み込みます

## 対象バージョン

- ARX OS 1.0 以降
- PreciseMD 1.0 以降

## 事前準備

次の 2 点を確認してください。

- App Market から PreciseMD をインストールしていること
- 自分のアカウントに PreciseMD へのアクセス権があり、デスクトップにアプリケーションが表示されること

---

## シナリオ 1. アップロードしたファイルを解析し、構造化されたテキストと画像を取得する

このシナリオは、手元に数個のファイルがあり、まず解析品質を確認したい場合に適しています。すべての流れは Playground ページ上で完結し、設定は不要です。

### 1. ファイルをアップロードする

1. PreciseMD を開き、Playground ページに移動します
2. 「Source Documents」セクションの Upload ボタンをクリックします
3. 解析するファイルを選択するか、ドロップエリアにドラッグします
4. アップロードをクリックします

> **対応形式**: PDF、JPG、PNG、WEBP、BMP、TIFF、DOCX、XLSX、PPTX
> **1 回のアップロード上限**: 100 ファイル

### 2. 解析を実行する

1. 「Source Documents」セクションで、解析するファイルを選択します
2. 下部の「RUN」ボタンをクリックして解析を開始します

#### 複雑なドキュメント: 高度なビジュアル解析を有効にする

財務諸表や輸入申告書のようにレイアウトが複雑なドキュメントでは、**高度なビジュアル解析** を利用できます。システムがビジョンモデルを通して解析結果を再確認するため、精度が向上します。

有効にすると、ドキュメントのレイアウトを説明したり、特に注意すべき項目を指定したりするテキスト解析プロンプトを追加できます。プロンプトが具体的であるほど、補正後の結果は実際に必要なものに近づきます。

> ⚠️ **解析時間が増加します**
> 有効にすると、1 ページあたり約 5 秒長くかかります。ファイル数が多い場合は、その分を見込んでください。

### 3. 解析結果を確認する

1. 「Run History」セクションで、確認したいファイルをクリックします
2. ダイアログが開き、4 つの表示方法を選べます

- **Original**: 元のファイルそのまま
- **Bounding Box**: 解析された領域を元のファイル上に枠線で表示
- **Preview**: 解析後の Markdown ドキュメントをレンダリングした表示
- **Markdown**: 解析結果を Markdown のソースとして表示

---

## シナリオ 2. NAS を接続し、既存のドキュメントに対してバッチ解析タスクを設定する

社内ドキュメントがすでに NAS 上にある場合、1 つずつアップロードする必要はありません。PreciseMD は SMB 経由で NAS に接続してファイルを直接読み取り、解析結果を指定した別のフォルダーに書き出します。元のデータはそのまま保たれ、同時にナレッジベースの元データが構築されます。

### 1. NAS 接続を設定する

1. PreciseMD を開き、Data Source に移動します
2. 「Add Connection」ボタンをクリックします
3. 接続名、NAS の IP、ユーザー名とパスワードを入力し、Shared folder を選択します

### 2. 解析タスクを作成する

1. PreciseMD を開き、Task に移動します
2. 「Add Task」ボタンをクリックします
3. Task Name、Source Folder、Target Folder を設定します

各項目の意味は次のとおりです。

- **Source Folder**: このタスクが処理する元データの場所
- **Target Folder**: 解析後の構造化データの出力先
- **Scan Path**: 何階層下までスキャンするか
- **Model Connection**: このタスクが使用するモデル。空欄の場合はシステムのデフォルトモデルが使用されます
- **VLM & Prompt**: [複雑なドキュメント: 高度なビジュアル解析を有効にする](#%E8%A4%87%E9%9B%91%E3%81%AA%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88-%E9%AB%98%E5%BA%A6%E3%81%AA%E3%83%93%E3%82%B8%E3%83%A5%E3%82%A2%E3%83%AB%E8%A7%A3%E6%9E%90%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B) と同じ方法で設定します

### 3. 解析を実行する

1. PreciseMD を開き、Task に移動します
2. 実行するタスクの行で「Run」ボタンをクリックし、解析を開始します
3. そのタスク行の Last Result が Completed になるまで待ちます

---

## シナリオ 3. AI エージェントが MCP 経由で PreciseMD を使ってドキュメントを解析する

最初の 2 つのシナリオは、すべて Web インターフェース上の人による作業です。Claude Code、Cursor、あるいは自社で構築したものなど、AI エージェント自身にドキュメントの解析、データソースの管理、バッチタスクの追跡を行わせるには、PreciseMD の **HTTP MCP** インターフェースを通じてこれらの機能を統合します。

統合すると、エージェントは次の 11 個のツールを利用できます。

<table>
<thead>
  <tr>
    <th>
      ツール
    </th>
    
    <th>
      役割
    </th>
    
    <th>
      権限レベル
    </th>
    
    <th>
      データソース制限
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        arcor_system_version
      </code>
    </td>
    
    <td>
      システムバージョンを取得する
    </td>
    
    <td>
      読み取り専用
    </td>
    
    <td>
      —
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        arcor_list_capabilities
      </code>
    </td>
    
    <td>
      現在の PAT が使用できるツールを取得する
    </td>
    
    <td>
      読み取り専用
    </td>
    
    <td>
      —
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        arcor_run_ocr
      </code>
    </td>
    
    <td>
      単一ファイルを解析する
    </td>
    
    <td>
      標準
    </td>
    
    <td>
      —
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        arcor_run_batch_ocr
      </code>
    </td>
    
    <td>
      データソースに対してバッチ解析を実行する
    </td>
    
    <td>
      標準
    </td>
    
    <td>
      制限あり
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        arcor_get_job
      </code>
    </td>
    
    <td>
      バッチタスクのステータスと進捗を取得する
    </td>
    
    <td>
      読み取り専用
    </td>
    
    <td>
      制限あり
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        arcor_cancel_job
      </code>
    </td>
    
    <td>
      実行中のバッチタスクをキャンセルする
    </td>
    
    <td>
      破壊的
    </td>
    
    <td>
      制限あり
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        arcor_create_datasource
      </code>
    </td>
    
    <td>
      SMB データソースを作成する
    </td>
    
    <td>
      標準
    </td>
    
    <td>
      —
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        arcor_list_datasources
      </code>
    </td>
    
    <td>
      データソースを一覧表示する
    </td>
    
    <td>
      読み取り専用
    </td>
    
    <td>
      制限あり
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        arcor_browse_datasource
      </code>
    </td>
    
    <td>
      データソース内のファイルを参照する
    </td>
    
    <td>
      読み取り専用
    </td>
    
    <td>
      制限あり
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        arcor_delete_datasource
      </code>
    </td>
    
    <td>
      データソースを削除する
    </td>
    
    <td>
      破壊的
    </td>
    
    <td>
      制限あり
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        arcor_list_prompts
      </code>
    </td>
    
    <td>
      利用可能な解析プロンプトを一覧表示する
    </td>
    
    <td>
      読み取り専用
    </td>
    
    <td>
      —
    </td>
  </tr>
</tbody>
</table>

権限レベルは PAT の操作スコープに対応します。読み取り専用の PAT は「読み取り専用」のツールしか使用できず、「破壊的」なツールには削除が可能な PAT が必要です。「制限あり」のツールは PAT がアクセスを許可されたデータソースしか操作できず、一覧の結果にもそれらのデータソースだけが表示されます。

> ⚠️ **開始前に実行環境を確認してください**
> ファイルのアップロードは REST エンドポイントを経由し、MCP ツール呼び出しでは **ありません**。エージェントを動かす環境が HTTP リクエストを送信できる必要があります（`curl`、Python の `requests`、ワークフローエンジンの HTTP ノードなどが該当します）。
> コードを実行できず HTTP リクエストも送信できない純粋なチャットインターフェースでは、単一ファイルの解析はまったくできません。ファイル内容を直接受け取る MCP ツールが存在しないためです。

### 1. アクセス用の PAT を作成する

MCP 接続は **PAT（個人アクセストークン）** で認証されます。PAT はシステム管理者が作成し、任意のユーザーアカウントに対して作成できます。一般ユーザーが自分で作成することはできません。

1. 管理者アカウントで PreciseMD を開き、User Management ページに移動します
2. 権限を付与するユーザーの Action 列で、「Manage personal access tokens」をクリックします
3. 「Personal Access Tokens」ダイアログで、「Create」ボタンをクリックします
4. 「Create Personal Access Token」ダイアログで、Name、Action Scope、Resource Scope、Expires At（空欄の場合は無期限）を設定します
5. 生成されたトークンを取得します

> ⚠️ **トークンはすぐに保管してください**
> トークンが作成されたら、直ちにエージェントが起動時に読み取れる場所に保管してください。紛失した場合、新しく作成し直すしかありません。

PAT の作成では、2 種類のスコープを決めます。

- **操作スコープ（Action Scope）**: この PAT が実行できる操作の種類。Read only、Read and write、Read, write and delete のいずれか
- **データアクセススコープ（Resource Scope）**: この PAT がアクセスできるデータソース。「Grant all datasources」にチェックを入れると現在および将来のすべてのデータソースが対象となり、個別のデータソースだけを指定することもできます。少なくとも 1 つを選択しないと作成できません

### 2. AI エージェント側で MCP サーバーを設定する

次の接続情報をエージェントの MCP 設定に入力します。

<table>
<thead>
  <tr>
    <th>
      項目
    </th>
    
    <th>
      値
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      エンドポイント
    </td>
    
    <td>
      <code>
        <PRECISEMD_URL>/mcp
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      トランスポート
    </td>
    
    <td>
      Streamable HTTP
    </td>
  </tr>
  
  <tr>
    <td>
      認証
    </td>
    
    <td>
      <code>
        Authorization: Bearer <YOUR_PAT>
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      リクエストあたりの上限
    </td>
    
    <td>
      256 KB（ツール呼び出しの引数のみが対象です。ファイル内容がこのエンドポイントを通ることはありません）
    </td>
  </tr>
</tbody>
</table>

> 💡 **<PRECISEMD_URL> の確認方法**
> ARX デスクトップで PreciseMD のアイコンを右クリックし、新しいタブで開くを選択して、アドレスバーからスキーム、ホスト、ポートをコピーします（例: `http://192.168.1.20:30002`）。本ページのすべての `<PRECISEMD_URL>` をこの値に置き換えてください。

Claude Code の場合、次の内容をプロジェクトのルートディレクトリに `.mcp.json` として保存します。そのプロジェクトで初めて Claude Code を起動すると、この MCP サーバーを有効にするかどうかを尋ねられるので、有効にしてください。

```json
{
  "mcpServers": {
    "precisemd": {
      "type": "http",
      "url": "<PRECISEMD_URL>/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_PAT>"
      }
    }
  }
}
```

#### PreciseMD MCP スキルをエージェントに読み込ませる

`precisemd-mcp` スキルは、ツールのつなぎ方をエージェントに教えます。ファイルのアップロード方法、バッチジョブのポーリング方法、各エラーの意味が含まれます。各 PreciseMD インストールは、自身のバージョンに合ったスキルを認証なしで提供します。

`SKILLS` には、エージェントがスキルを読み込むディレクトリを指定します。Claude Code は `~/.claude/skills`、Codex、Cursor、GitHub Copilot は `~/.agents/skills` です。

```bash
SKILLS=~/.claude/skills
curl -fSL -o /tmp/mcp.zip "<PRECISEMD_URL>/api/v1/skills/mcp.zip"
rm -rf "$SKILLS/precisemd-mcp"
mkdir -p "$SKILLS" && unzip /tmp/mcp.zip -d "$SKILLS"
```

Windows では、代わりに PowerShell で次を実行します。

```powershell
$skills = "$HOME\.claude\skills"
Invoke-WebRequest -UseBasicParsing -Uri "<PRECISEMD_URL>/api/v1/skills/mcp.zip" -OutFile "$env:TEMP\mcp.zip"
Remove-Item -Recurse -Force "$skills\precisemd-mcp" -ErrorAction SilentlyContinue
Expand-Archive -Path "$env:TEMP\mcp.zip" -DestinationPath $skills
```

- **Claude Desktop と claude.ai**: **Customize > Skills** で `mcp.zip` をそのままアップロードします。先に展開しないでください
- **自社で構築したエージェント**: zip を展開し、エージェントに `precisemd-mcp/SKILL.md` を読ませます。そこから参照されるファイルはすべて `precisemd-mcp/` フォルダー内にあります

> ⚠️ **エクスプローラーの「すべて展開」は使わないでください**
> zip には `precisemd-mcp/` フォルダーが 1 つだけ入っており、エージェントはスキルディレクトリの直下でこのフォルダーを探します。「すべて展開」は zip の名前のフォルダーでもう 1 階層包むため、エージェントがスキルを読み込めなくなります。

> 💡 **PreciseMD をアップグレードしたら、スキルをダウンロードし直してください**
> 上のコマンドは展開前に古いフォルダーを削除するため、新しいバージョンで削除されたファイルが残りません。展開時に zip ファイルではないというエラーが出る場合、お使いの PreciseMD インストールはまだこのダウンロードに対応していません。

### 3. ファイルをアップロードして解析を実行する

MCP リクエストには 256 KB の上限があるため、**ファイル内容は MCP チャネルを通りません**。代わりに専用の REST エンドポイントからアップロードし、返された認証情報をツールに渡します。

<table>
<thead>
  <tr>
    <th>
      項目
    </th>
    
    <th>
      値
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      アップロードエンドポイント
    </td>
    
    <td>
      <code>
        POST /api/v1/mcp/uploads
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      認証
    </td>
    
    <td>
      MCP 接続と同じ PAT（Read only の PAT はアップロードできず、403 が返されます）
    </td>
  </tr>
  
  <tr>
    <td>
      ファイルサイズ上限
    </td>
    
    <td>
      100 MB
    </td>
  </tr>
  
  <tr>
    <td>
      対応形式
    </td>
    
    <td>
      PDF、JPG、PNG、WEBP、BMP、TIFF
    </td>
  </tr>
  
  <tr>
    <td>
      コンテンツタイプ
    </td>
    
    <td>
      <code>
        application/octet-stream
      </code>
      
      （ファイル内容を直接送信）または <code>
        multipart/form-data
      </code>
      
      （フィールド名は <code>
        file
      </code>
      
      ）
    </td>
  </tr>
</tbody>
</table>

アップロードの例:

```bash
curl -X POST <PRECISEMD_URL>/api/v1/mcp/uploads \
  -H "Authorization: Bearer <YOUR_PAT>" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @invoice.pdf
```

レスポンスの `data.uploadToken` を `arcor_run_ocr` に渡すと、エージェントは解析後の Markdown を取得できます。`uploadToken` は 1 回しか使用できず、使用しない場合は約 15 分で失効します。2 つの流れは次のとおりです。

**単一ファイルの解析**: ファイルをアップロード（REST）→ `arcor_run_ocr`（MCP）→ Markdown を取得

**バッチ解析**（アップロード不要）: `arcor_list_datasources` → `arcor_browse_datasource` → `arcor_run_batch_ocr` → `arcor_get_job` をポーリング

バッチ解析のソースパスとターゲットパスは、いずれも共有フォルダーのルートからの相対パスで、先頭に `/` は付けません（例: `invoices/2026`）。ターゲットフォルダーは事前に存在している必要があり、MCP ツールが自動で作成することはありません。

---

## シナリオ 4. AI エージェントが CLI 経由で PreciseMD を使ってドキュメントを解析する

CLI は単一の実行ファイルで、スクリプト、スケジュールタスク、CI パイプライン、あるいはシェルにアクセスできるエージェントが直接コマンドを実行する用途に適しています。自動化向けに設計されており、すべてのコマンドが `--json` 出力に対応し、エラーを終了コードで分類するため、プログラム側で次の動作を判断できます。

コマンドの一覧:

<table>
<thead>
  <tr>
    <th>
      グループ
    </th>
    
    <th>
      コマンド
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      認証
    </td>
    
    <td>
      <code>
        auth login｜status｜logout
      </code>
      
      , <code>
        health
      </code>
      
      , <code>
        version
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      単一ファイル解析
    </td>
    
    <td>
      <code>
        ocr <file>
      </code>
      
      , <code>
        ocr result <id>
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      データソース
    </td>
    
    <td>
      <code>
        ds create｜list｜get｜update｜delete
      </code>
      
      , <code>
        ds browse｜upload｜download
      </code>
      
      , <code>
        ds create-dir｜test-connection
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      タスク
    </td>
    
    <td>
      <code>
        task create｜list｜get｜update｜delete
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      ジョブ
    </td>
    
    <td>
      <code>
        job trigger｜list｜status｜logs｜cancel
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      プロンプトテンプレート
    </td>
    
    <td>
      <code>
        prompt-template create｜list｜get｜update｜delete
      </code>
      
      （<code>
        pt
      </code>
      
       と省略できます）
    </td>
  </tr>
  
  <tr>
    <td>
      Playground
    </td>
    
    <td>
      <code>
        playground quick-upload｜quick-run
      </code>
      
      , <code>
        playground workspace …
      </code>
    </td>
  </tr>
</tbody>
</table>

共通パラメーター: `--server <url>`、`--json`、`--token <PAT>`、`--config <path>`、`--fields <field list>`

### 1. CLI をインストールする

実行ファイルは PreciseMD サーバー自身が配布するため、外部のパッケージレジストリは不要です。次のコマンドは `~/.local/bin` にインストールし、sudo は必要ありません。

```bash
export ARCOR_SERVER="<PRECISEMD_URL>"

OS=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m); [ "$ARCH" = "x86_64" ] && ARCH="amd64"; [ "$ARCH" = "aarch64" ] && ARCH="arm64"
mkdir -p "$HOME/.local/bin"
curl -fSL -o "$HOME/.local/bin/arcor" \
  "${ARCOR_SERVER}/api/v1/cli/download?os=${OS}&arch=${ARCH}"
chmod +x "$HOME/.local/bin/arcor"
export PATH="$HOME/.local/bin:$PATH"
arcor version
```

サーバーが提供する実行ファイルは、Linux（amd64、arm64）、macOS（Apple Silicon、arm64）、Windows（amd64）に対応しています。Intel チップの Mac 向けのバージョンはありません。Windows では、代わりにブラウザーで `<PRECISEMD_URL>/api/v1/cli/download?os=windows&arch=amd64` を開いて `arcor.exe` をダウンロードしてください。

#### PreciseMD CLI スキルをエージェントに読み込ませる

エージェントが CLI を操作するとき、`precisemd-cli` スキルがよく使うコマンドとフラグ、各終了コードの意味を教えます。スキル名は `precisemd-cli` ですが、コマンドは引き続き `arcor`、設定ファイルは `~/.arcor/`、環境変数は `ARCOR_SERVER` と `ARCOR_TOKEN` のままです。各 PreciseMD インストールは、自身のバージョンに合ったスキルを認証なしで提供します。

`SKILLS` には、エージェントがスキルを読み込むディレクトリを指定します。Claude Code は `~/.claude/skills`、Codex、Cursor、GitHub Copilot は `~/.agents/skills` です。コマンドは上で設定した `ARCOR_SERVER` を使います。

```bash
SKILLS=~/.claude/skills
curl -fSL -o /tmp/cli.zip "${ARCOR_SERVER}/api/v1/skills/cli.zip"
rm -rf "$SKILLS/precisemd-cli"
mkdir -p "$SKILLS" && unzip /tmp/cli.zip -d "$SKILLS"
```

Windows では、先に PowerShell で `ARCOR_SERVER` を設定し（`$env:ARCOR_SERVER = "<PRECISEMD_URL>"`）、次を実行します。

```powershell
$skills = "$HOME\.claude\skills"
Invoke-WebRequest -UseBasicParsing -Uri "${env:ARCOR_SERVER}/api/v1/skills/cli.zip" -OutFile "$env:TEMP\cli.zip"
Remove-Item -Recurse -Force "$skills\precisemd-cli" -ErrorAction SilentlyContinue
Expand-Archive -Path "$env:TEMP\cli.zip" -DestinationPath $skills
```

- **Claude Desktop と claude.ai**: **Customize > Skills** で `cli.zip` をそのままアップロードします。先に展開しないでください
- **自社で構築したエージェント**: zip を展開し、エージェントに `precisemd-cli/SKILL.md` を読ませます。そこから参照されるファイルはすべて `precisemd-cli/` フォルダー内にあります

> ⚠️ **エクスプローラーの「すべて展開」は使わないでください**
> zip には `precisemd-cli/` フォルダーが 1 つだけ入っており、エージェントはスキルディレクトリの直下でこのフォルダーを探します。「すべて展開」は zip の名前のフォルダーでもう 1 階層包むため、エージェントがスキルを読み込めなくなります。

> 💡 **PreciseMD をアップグレードしたら、スキルをダウンロードし直してください**
> 上のコマンドは展開前に古いフォルダーを削除するため、新しいバージョンで削除されたファイルが残りません。展開時に zip ファイルではないというエラーが出る場合、お使いの PreciseMD インストールはまだこのダウンロードに対応していません。

### 2. サインインしてアクセスを設定する

CLI は PAT で認証されます。シナリオ 3 と同じ方法で作成してください。[アクセス用の PAT を作成する](#1-%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E7%94%A8%E3%81%AE-pat-%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B) を参照してください。

```bash
# Store the PAT (this non-interactive form is the one to use for automation)
arcor auth login --server <PRECISEMD_URL> --token <YOUR_PAT>

# Or pipe it in, to keep the token out of your command history
echo <YOUR_PAT> | arcor auth login --server <PRECISEMD_URL>

# Or just set the environment variable, writing nothing to disk
export ARCOR_TOKEN=<YOUR_PAT>
```

続いて確認します。

```bash
arcor auth status    # confirm the PAT is still valid
arcor health         # confirm the server connection is fine
```

- 設定ファイルは `~/.arcor/config.yaml`（モード 0600）に置かれます。`--config` で別のパスを指定できます
- サインインに成功すると、以降のコマンドで `--server` は不要になります
- `arcor auth logout` はローカルに保存された PAT を消去するだけで、サーバー側で失効させることは **ありません**

### 3. 単一ファイルを解析する

```bash
arcor ocr invoice.pdf                       # print the Markdown directly
arcor ocr invoice.pdf --output result.md    # write to a file
arcor ocr invoice.pdf --json                # print the full structured JSON
arcor ocr invoice.pdf --timeout 15m         # custom wait cap (10 minutes by default)
arcor ocr invoice.pdf --async               # return a runId immediately, without waiting
arcor ocr result <runId>                    # retrieve the result later
arcor ocr invoice.pdf --vlm --prompt "..."  # turn on advanced visual parsing with a parsing prompt
```

`arcor ocr` はアップロード、実行、ポーリング、出力を自動的に処理するため、単一ファイルを解析する最も直接的な方法です。`--quiet` を追加すると進捗メッセージが無効になり、プログラムが出力を解析しやすくなります。

> `arcor ocr` は PDF、JPG、PNG、WebP、BMP、TIFF に対応しています。Office 形式（DOCX、XLSX、PPTX）には Web インターフェースを使用してください。

### 4. バッチ解析

バッチ解析は 3 つのオブジェクトで構成されます。**データソース**（ファイルの場所）、**タスク**（処理方法）、**ジョブ**（実際の 1 回の実行）です。

#### ソースとターゲットのデータソースを作成する

```bash
arcor ds create --name "invoices-in" --scheme smb \
  --ip 192.168.1.10 --user svc --password '***' --share invoices-in

arcor ds create --name "invoices-out" --scheme smb \
  --ip 192.168.1.10 --user svc --password '***' --share invoices-out
```

返された ID は次の手順で使用します。`--json | jq -r '.id'` で取り出せます。

> ⚠️ **作成できるのはリモートデータソースのみです**
> 例えば SMB です。ローカルファイルシステムのデータソースはシステムが管理しており、自分で作成しようとすると 403 が返されます。

#### タスクを作成する

```bash
arcor task create \
  --name "invoice-ocr" \
  --prompt "Convert to Markdown faithfully" \
  --source-datasource-id <source ID> --source-path "." \
  --target-datasource-id <target ID> --target-path "." \
  --enable-vlm \
  --scan-depth 2
```

- `--source-path`／`--target-path`: 共有フォルダーのルートからの相対パスで、先頭に `/` は付けません。`.` はルートそのものを表します。ターゲットフォルダーは事前に存在している必要があり、`arcor ds create-dir <target ID> --path <path>` で作成できます
- `--prompt`: `--enable-vlm` と併用する必要があり、併用しない場合は拒否されます
- `--enable-vlm`: 高度なビジュアル解析を有効にします。時間はかかりますが、品質は向上します
- `--scan-depth`: スキャンするフォルダーの階層数。`1` はソースフォルダー自体のみを処理し、`2` はさらに 1 階層下まで処理します（以降も同様）。指定しない場合や `0` 以下を指定した場合は 10 階層です

#### 実行と監視

```bash
arcor job trigger <taskId>                # trigger the task, returns a jobId (JSON field: id)
arcor job status <jobId>                  # query the overall progress once
arcor job logs <jobId>                    # each file's result
arcor job logs <jobId> --status running   # which file is being processed right now
arcor job logs <jobId> --status failed    # only the failed files
```

#### 出力ファイルの命名規則

PDF と画像は各ページから `.md` と `.jpg` が 1 つずつ生成されます。DOCX、PPTX は `.md` のみが生成されます。

```text
report.pdf            → report_pdf_page_001.md, report_pdf_page_001.jpg
sub/dir/invoice.pdf   → sub/dir/invoice_pdf_page_001.md, …
```

形式は `{name}_{extension}_page_{number}.md` で、ターゲットフォルダーはソース側のサブディレクトリ構造を保持します。ページ内の画像（製品写真や図表など）は、同じ場所の `imgs/` フォルダーに保存され、Markdown からは `<img src="imgs/…">` として参照されます。

すべての `.md` ファイルの先頭には YAML フロントマターがあり、ソースパス、ページ番号、処理時間、VLM の有効・無効、ファイルハッシュなどが記録されるため、下流の RAG システムがインデックスを作成しやすくなっています。

出力を確認します。

```bash
arcor ds browse <target ID> --path "." --json | jq '.items[].name'
```

### 5. 自動化での注意点

エラーは終了コードで分類されるため、スクリプト側で次の動作を判断できます。

<table>
<thead>
  <tr>
    <th>
      終了コード
    </th>
    
    <th>
      意味
    </th>
    
    <th>
      対処方法
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        0
      </code>
    </td>
    
    <td>
      成功
    </td>
    
    <td>
      —
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        1
      </code>
    </td>
    
    <td>
      引数または入力のエラー
    </td>
    
    <td>
      <code>
        <command> --help
      </code>
      
       で引数を確認します
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        2
      </code>
    </td>
    
    <td>
      認証の失敗（401/403）
    </td>
    
    <td>
      <strong>
        自動で再試行しないでください。
      </strong>
      
       PAT が期限切れか、権限が不足しています。新しい PAT を取得し、<code>
        arcor auth login
      </code>
      
       を実行します
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        3
      </code>
    </td>
    
    <td>
      サーバーエラー（5xx）
    </td>
    
    <td>
      時間を置いて再試行します
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        4
      </code>
    </td>
    
    <td>
      ネットワークエラー（サーバーに接続できない、リクエストのタイムアウト）
    </td>
    
    <td>
      サーバーアドレスを確認し、バックオフを挟んで再試行します
    </td>
  </tr>
</tbody>
</table>

`arcor ocr` の待機が `--timeout` を超えると `1` が返され、エラーメッセージに `arcor ocr result <runId>` が表示されます。これを実行すれば、再アップロードせずに結果を取得できます。

エージェントが CLI を使用する場合は、次の点を守ってください。

- **常に --json を渡す**: テーブル出力は人間向けであり、プログラムが確実に解析することはできません
- **--fields で出力を絞る**: 例えば `--fields id,name,status` のように、必要なものだけを取得するとコンテキストを節約できます
- **--dry-run は存在しません**: `create` / `update` / `delete` は即座に反映されます。変更や削除の前に `get <id>` で対象を確認してください
- **--from-json と個別のパラメーターを併用しない**: CLI はその組み合わせを明確に拒否します


## Sitemap

See the full [sitemap](https://docs.ardge.com/sitemap.md) for all pages.
