Skip to main content
Glama
devrobotlabs

@devrobotlabs/visionapi-mcp

Official
by devrobotlabs

@devrobotlabs/visionapi-mcp

Vision API 用のMCPサーバーです。Claude Code、Claude Desktop、Cursor、その他のMCPホストをスキャンフォルダに向けて、請求書を依頼するだけです。統合コードを書く必要も、生成コードにAPIキーを埋め込む必要も、記憶から契約を言い換える必要もありません。

You: pull the totals out of every invoice in ~/inbox and put them in a CSV

Claude: [vision_analyze × 7]
        Done — 7 invoices, 14 credits. Three had no PO number; I left those cells empty.

インストール

インストールするものはありません。ホストの設定に追加すれば、npx 経由で実行されます。

Claude Codeclaude mcp add visionapi --env VISION_API_KEY=sk_live_... -- npx -y @devrobotlabs/visionapi-mcp ~/inbox

Claude Desktopclaude_desktop_config.json:

{
  "mcpServers": {
    "visionapi": {
      "command": "npx",
      "args": ["-y", "@devrobotlabs/visionapi-mcp", "/Users/me/inbox"],
      "env": { "VISION_API_KEY": "sk_live_..." }
    }
  }
}

Cursor.cursor/mcp.json、同じ構成:

{
  "mcpServers": {
    "visionapi": {
      "command": "npx",
      "args": ["-y", "@devrobotlabs/visionapi-mcp", "."],
      "env": { "VISION_API_KEY": "sk_live_..." }
    }
  }
}

VS Code.vscode/mcp.json:

{
  "servers": {
    "visionapi": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@devrobotlabs/visionapi-mcp", "${workspaceFolder}"],
      "env": { "VISION_API_KEY": "sk_live_..." }
    }
  }
}

キーは app.visionapi.io/dashboard/keys で取得できます。新規アカウントには50クレジットが付与され、カードは不要です。

ホスト設定のブロックは、examples/ ディレクトリではなくこのREADMEに置いてあります——9つのクライアントライブラリからの意図的な変更です。READMEにしか存在しないスニペットは、誰も実行しない実行可能スクリプトから乖離することはありません。

Related MCP server: receiptconverter-mcp

読み取り可能なディレクトリ

位置引数はすべて、サーバーがファイルを読み取ってもよいディレクトリです。 何も指定しない場合、プロセスの作業ディレクトリだけが唯一のルートになります——これは安全なデフォルトです。MCPホストはプロジェクトディレクトリをcwdとしてstdioサーバーを起動するからです。

これは見た目以上に重要です。このサーバーは有効な支出用クレデンシャルを保持し、シェルの権限で実行されるため、シェルが読み取れるものは何でも読み取れます。~/Documents/passport.jpg の生テキストを要求することは、そのドキュメントの内容をモデルのコンテキストとホストが保持するトランスクリプトに取り込む、実際に機能する方法です。許可リストは、混乱した、または操作されたエージェントが誤ってそうするのを防ぐものです。

パスは比較前に両方の側で realpath で解決されるため、許可されたディレクトリ内のシンボリックリンクがその外を指すことはできません。

--allow-any-path は許可リストを完全に無効にします。起動時にstderrに警告を出力し、使用には理由が必要です。

ツール

ツール

機能

コスト

vision_analyze

1つの画像またはPDFから構造化フィールドを抽出

画像1枚につき1クレジット、PDF1ページにつき2クレジット

vision_ask

1つのファイルについて最大5つの平易な質問

画像1枚につき1クレジット、PDF1ページにつき1クレジット

vision_detect

このファイルは何か?抽出なしのランク付けされたプリセット

5回の呼び出しにつき1クレジット

vision_list_presets

プリセットカタログ

無料

vision_get_preset

1つのプリセットが返すすべてのフィールド

無料

vision_credits

残高とバケット

無料

vision_get_task

キューされたタスクのステータス/結果

無料

クレジットを消費する3つのツールは readOnlyHint: false と注釈されているため、読み取り専用ツールを自動承認するホストでも、それらの1つが実行される前に停止して確認を求めます。

カタログはリソースとしても公開されています——visionapi://presetsvisionapi://presets/{name}——リソースを好むホスト向けです。ツールが主要なインターフェースです。リソースのサポートはホストによって不均一だからです。

出力

レスポンスはモデルが読めるようにレンダリングされ、JSONとしてダンプされることはありません。37フィールドの請求書プリセットが、そのうち12フィールドを埋めるドキュメントに対して返す場合、テーブルと Not found in this document (25): … の1行として返されます——{"value":null,"confidence":"low"} の25回の繰り返しではなく——3〜4倍小さく、処理しやすくなります。

その過程で失われるものはありません。すべてのツールは format を受け取ります:

  • markdown (デフォルト) — 上記のレンダリング。

  • compact_json — 同じ情報をデータとして、_not_found_low_confidence の配列付き。エージェントが読むのではなく解析する場合用。

  • json — APIレスポンスをそのまま。契約に対して実際のHTTPコードを書くときに使うもの。

信頼度は高くない場合にのみ表示されるため、(mid)(low) が目立ち、一般的なケースでは読むコストがかかりません。

長いドキュメント

modeauto のままにしてください。APIは同期リクエストを60秒で終了します。サーバーはその後、リクエストをキューに再送信してポーリングし、進行状況をホストに報告します。課金は1回だけです。タイムアウトした試行が予約を完全に解放したからです。

約10ページを超えるものには事前に mode: "async" を渡し、長いドキュメントを安くサンプリングするには pages: "1-5" を渡してください——選択したページのみが課金されます。

コストと失敗

失敗はコストがかかりません。すべての非2xxレスポンスはクレジット予約を完全に解放するため、失敗した呼び出しは修正して再試行しても安全で、クリーンアップの必要はありません。ツールの説明にその旨が記載されているため、このサーバーを使用するエージェントはエラー後も賢明に動作し、諦めたり、機能しないものを再試行したりしません。

2つのエラーには、自分でも知っておく価値のあるアドバイスが含まれています:

エラー

意味

insufficient_credits

再試行しても意味がありません——残高は自動では変わりません。チャージしてください。

too_many_tasks

自分の非同期タスクがプランの上限に達しています。タイマーではなく、それらのタスクの1つが完了したときに解除されます——つまり、スリープして再試行すると、待っているまさにそのものをブロックすることになります。

環境変数

変数

必須

目的

VISION_API_KEY

課金対象ツール用

あなたのキー。カタログツールはこれなしで動作します。

VISION_API_URL

いいえ

APIのベースURLを上書きします。めったに必要ありません。

キーがなくてもサーバーの起動は止まりません: stderrに警告し、tools/list は引き続き機能し、最初の課金対象呼び出しは修正方法を示すメッセージを返します。起動を拒否するサーバーは、ユーザーに何かが壊れているとしか伝えません。

開発

npm install
npm run typecheck
npm test          # 37 offline tests — no key, no network
npx @modelcontextprotocol/inspector node ./dist/cli.js ~/some/dir

npm install --no-save ../node でクライアントのローカルビルドをテストします。npm install ../node ではありません——これは package.json"file:../node" に書き換え、そのマニフェストが公開されるものだからです。

リンク

MITライセンス。

Install Server
A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    An MCP server that lets AI assistants read and visually analyze local documents — PDFs, Excel spreadsheets, CSV files, Word documents, PowerPoint presentations, and images.
    4
    56
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that gives your Claude, Cline, or Cursor session the ability to extract text, tables, and metadata from any PDF URL — including scanned PDFs via OCR.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server that extracts clean text, tables, and structured data from documents, images, code, and audio files, supporting 97 formats with OCR, transcription, and code intelligence.
    MIT

View all related MCP servers

Related MCP Connectors

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

  • Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.

  • Generate PDFs from templates via AI chat. Works with Claude, ChatGPT, Cursor, and any MCP client.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/devrobotlabs/visionapi-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server