Electronics RFQ Agent
Electronics RFQ Agent
あなたの営業エンジニアは、RFQ文書を見積書に変換するのに2〜4時間費やしています。これを数秒で実現します。
Electronics RFQ Agentは、RFQ文書(PDF、Excel、Word)を読み取り、各ラインアイテムをERPカタログと照合し、ドラフト見積書を出力するPythonライブラリおよびCLIです。MCPサーバーを通じてSAP、Epicor、Oracle、Microsoft Dynamicsに接続するため、Claude、GPT-4、またはMCPに対応したあらゆるエージェントフレームワークで動作します。

目次
Related MCP server: databid
インストール
pip install electronics-rfq-agent-cli
# or
uv add electronics-rfq-agent-cliソースからインストールする場合:
git clone https://github.com/RudrenduPaul/electronics-rfq-agent
cd electronics-rfq-agent
pip install -e .
# or, with uv:
uv syncRFQ文書(PDF、Excel、Word)の解析はAnthropic APIを呼び出すため、実際の文書を扱う前にANTHROPIC_API_KEYを設定してください:
export ANTHROPIC_API_KEY="sk-ant-..."既存の見積書ファイルに対してerfa auditを実行する場合や、--helpでCLIを調べる場合には、このキーは必要ありません。ドキュメント解析のみがClaudeを呼び出します。
このツールが解決する問題
私たちは、3〜5人の営業エンジニアが1日の大半を見積もり入力に費やしているエレクトロニクス販売代理店と仕事をしていました。見つけたツールはどれも、特定のERPに紐づいているか、6ヶ月の統合プロジェクトが必要でした。私たちが求めていたのは、販売代理店がすでに持っているものと連携でき、セルフホストが可能で(見積もりデータは機密性が高い)、実際に拡張可能なものでした。
MCPアーキテクチャにより、新しいERPの追加は1つのファイルを作成するだけです。パーサーは、販売代理店が実際に送ってくる文書形式(手書きのPDF、複数シートのExcelファイル、時折あるスキャンされた表)を処理します。
クイックスタート
試すのにERPシステムは不要です。モックバックエンドには200個の現実的な電子部品が同梱されています。RFQ文書の解析は依然として実際のClaude呼び出しであるため、ANTHROPIC_API_KEYの設定が必要です:
from electronics_rfq_agent import QuoteAgent
from electronics_rfq_agent.mcp.mock import MockERP
agent = QuoteAgent(erp=MockERP())
quote = agent.run_sync("path/to/rfq.xlsx")
for line in quote.lines:
print(f"{line.rfq_line.part_number}: {line.status} @ {line.unit_price}")
print(quote.summary())MockERPは数量ベースの価格ティアを自動的に適用します: 数量 >= 1000で20%オフ、数量 >= 100で10%オフ、数量 >= 10で5%オフ。数量10未満ではリスト価格が適用されます。これは実際のボリューム価格設定を反映しており、ベンチマークと統合テストが現実的なコスト曲線を反映します。
実際のERPに接続する:
from electronics_rfq_agent import QuoteAgent
from electronics_rfq_agent.mcp import EpicorMCP
agent = QuoteAgent(
erp=EpicorMCP(base_url="https://your-epicor.company.com", api_key="..."),
max_concurrent=10, # parallel ERP lookups (default: 10)
)
quote = agent.run_sync("rfq_2026_0619.xlsx")
print(quote.summary())コマンド
erfaには2つのサブコマンドが含まれています。以下のすべてのフラグはerfa --helpから直接取得したものです。
コマンド | 引数 | フラグ | 説明 |
|
|
| RFQファイルを解析し、ドラフト見積書を出力します。 |
|
| なし |
|
| なし | なし |
|
# Generate a quote from an RFQ file against the mock ERP
export ANTHROPIC_API_KEY="sk-ant-..."
erfa quote rfq.xlsx --mock
# Save the quote as JSON for later inspection
erfa quote rfq.xlsx --mock --output quote.json
# Audit what happened: what was found, substituted, or missing and why
erfa audit quote.json監査出力の例(erfa audit docs/example-quote.jsonの実際の出力。tests/fixtures/sample_rfq.txtのサンプルRFQに対してモックERPの価格ロジックを実行して生成):
Audit Report - Quote df9fd083
RFQ Source : tests/fixtures/sample_rfq.txt
Lines : 5
Total : USD 64.04
FOUND (4)
------------------------------------------------------------
L 1 RES-0402-10K-1PCT qty=1000 unit=0.0064 ext=6.40
L 2 CAP-100NF-50V-X7R-0402 qty=500 unit=0.0104 ext=5.20
L 3 IC-LM358-SOIC8 qty=50 unit=0.7101 ext=35.50
L 4 XTAL-16MHZ-SMD qty=25 unit=0.6774 ext=16.94
NOT FOUND (1)
------------------------------------------------------------
L 5 MOSFET-NMOS-20V-3A-SOT23 Part 'MOSFET-NMOS-20V-3A-SOT23' not found in ERP catalog
Fill rate: 80% (4 found / 0 substituted / 1 not found)ゼロ価格の部品: ERPカタログに部品が存在するが単価が$0.00の場合、エージェントはラインをスキップせずに$0で見積もり、顧客に見積もりを出す前に気づけるよう、ゼロ価格を警告するメッセージを
line.notesに設定します。見積書を送信する前に、検出または代替されたすべてのラインのline.notesを確認してください。
APIリファレンス
完全なリファレンスはdocs/api.mdにあります: QuoteAgentのすべてのパラメータ、共有ERPコネクタインターフェース、Quote/QuoteLineItemのフィールドごとの説明、例外階層。以下のエクスポートは、from electronics_rfq_agent import ...が実際に提供するもので、src/electronics_rfq_agent/__init__.pyからgrepしたものであり、推測ではありません:
エクスポート | 説明 |
| 解析 + ERPルックアップ + 見積書組み立てを統括します。 |
| サポートされているシステムごとのERPコネクタ。すべて同じ |
| 200個の現実的な部品を備えたインメモリバックエンド。認証情報もネットワークも不要です。 |
| 見積書、各ライン、解析されたRFQライン、生のERPデータ、コネクタ設定のためのPydantic v2モデル。 |
|
|
| オプトインのローカルテレメトリ( |
代替手段との違い
Electronics RFQ Agent | 手動プロセス | SAP Joule | 汎用AI(ChatGPT) | |
マルチERPサポート | SAP + Epicor + Oracle + Dynamics | N/A | SAP中心(Joule StudioはSAP Integration Suite経由で非SAPソースに到達可能) | ERPアクセスなし |
見積時間(50ライン) | ~15s | 2〜4時間 | 公開文書なし | N/A |
セルフホスト可能 | はい | N/A | いいえ(SAP BTPクラウドサービス) | いいえ |
データはローカルに保持 | はい | はい | いいえ | いいえ |
オープンソース | MIT | N/A | いいえ | いいえ |
開発用モックバックエンド | はい | N/A | 公開文書なし | N/A |
MCP互換 | はい | N/A | 公開文書なし | いいえ |
ERPサポート
ERP | ステータス | 接続方法 | ドキュメント |
Epicor Kinetic | サポート対象 | REST API | |
SAP ECC / S/4HANA | ベータ(手動インストール) | PyRFC (BAPI) | |
Oracle Cloud SCM | サポート対象 | REST API | |
Microsoft Dynamics 365 | サポート対象 | Graph API | |
モックバックエンド | 組み込み | インメモリ | 設定不要 |
SAPに関する注意: pyrfcにはSAP NetWeaver RFC Libraryが必要です。これはPyPIにはなく、SAPサポートポータルから手動でダウンロードする必要があります(Sユーザーが必要)。ステップバイステップの手順はdocs/erp-setup/sap.mdを参照してください。
ベンチマーク
インメモリのモックバックエンド(200個の現実的な部品、ERPシステム不要)を使用して測定しました。自分で実行するには:
git clone https://github.com/RudrenduPaul/electronics-rfq-agent
cd electronics-rfq-agent
uv run python benchmarks/run.pyERPルックアップのレイテンシ(100回の個別ルックアップ、モックバックエンド):
P50 | P99 | 平均 |
0.00025ms | 0.0023ms | 0.00032ms |
RFQサイズ別の見積書組み立て時間(パーサーはモック、Anthropic API呼び出しなし):
RFQサイズ | 組み立て時間 |
10ライン | 0.004s |
25ライン | 0.001s |
50ライン | 0.001s |
これらの数値はERPルックアップと見積書組み立てのみを対象としています。RFQパーサーはモックされており、Anthropic API呼び出しは行われません。本番環境では、AIドキュメント解析が文書あたり5〜15秒、実際のERPルックアップがラインあたり100〜500ミリ秒(最大max_concurrent=10で並列化)追加され、50ラインのRFQでは現実的に合計約15秒になります。手動のベースライン: 2〜4時間。
統合マトリックス
Electronics RFQ Agentは、MCPをサポートするあらゆるエージェントフレームワークで動作します:
フレームワーク | インストール | 例 |
Claude(組み込み) |
| |
LangGraph |
| |
OpenAI Agents SDK |
| |
CrewAI |
| n/a |
Dockerで試す
git clone https://github.com/RudrenduPaul/electronics-rfq-agent
cd electronics-rfq-agent
cp .env.example .env # add your ERP credentials and Anthropic API key
docker compose up -dお客様の見積データが環境外に出ることはありません。
セキュリティ
脆弱性スキャン: TrivyはすべてのCI実行をスキャンし(HIGH/CRITICALの深刻度、未修正の検出結果があるとビルドは失敗)、結果はGitHub Securityタブにアップロードされます。
リリース署名: リリースワークフローは、バージョンがタグ付けされると、ビルドされたwheelsとsdistsをSigstoreで署名し、各GitHub ReleaseにCycloneDX SBOMを添付します。
依存関係の固定: DependabotはGitHub ActionsとPythonの依存関係を最新に保ちます(毎週のパッチ更新、毎月のActions更新)。
開示: SECURITY.md。脆弱性はメールまたはGitHub Security Advisoriesを通じて非公開で報告してください。48時間以内の確認応答、90日間の責任ある開示。
FAQ
Electronics RFQ Agentは実際に何をするのですか? 顧客からRFQ文書(PDF、Excel、またはWord)を受け取り、Claudeですべてのラインアイテムを抽出し、MCPコネクタ経由で各部品をERPカタログと照合し、マージンを適用した価格付きのドラフト見積を返します。営業エンジニアがゼロから作成する代わりに、それをレビューして送信します。
本番環境で使用できますか? ベータ版(v0.2.x)です。コアライブラリ、Epicor、Oracle、Dynamicsコネクタは、Python 3.10〜3.12でCI(lint、mypy strict、80%カバレッジゲート付きpytest、Trivyスキャン)の対象です。SAPサポートは明示的にベータ版とされており、手動インストール手順が必要です(SAP NetWeaver RFC LibraryはPyPIにありません)。
試すのにERPシステムは必要ですか?
いいえ。MockERPには200個の現実的な電子部品が同梱されており、数量ベースの価格ティアが適用されるため、ERPの認証情報なしで解析・照合・見積の全フローを実行できます。文書解析は実際のClaude呼び出しであるため、ANTHROPIC_API_KEYは引き続き必要です。キーがまったくなくても動作するのはerfa audit(保存済みの見積ファイルを読み取る)だけです。
ChatGPTにRFQを読ませるのとどう違うのですか? 一般的なチャットモデルは文書を読んだり価格を推測したりすることはできますが、実際のERPカタログ、在庫、契約価格には接続されていないため、数値をでっち上げています。Electronics RFQ Agentはすべてのラインアイテムを実際のカタログデータと照合し、実際に在庫があるものだけを、実際の原価に設定したマージンを加えた価格で見積もります。
SAP Jouleとどう違うのですか? JouleはSAPの独自AIアシスタントスイートであり、SAPのクラウドプラットフォーム(SAP BTP)に組み込まれ、SAPデータを中心としています。Electronics RFQ AgentはMITライセンスで、セルフホスト型であり、同じMCPインターフェースを通じてSAP、Epicor、Oracle、Dynamicsと連携します。見積データを環境外に出す必要はなく、単一のERPベンダーに縛られることもありません。
CLIではなくエージェントからこれを呼び出すにはどうすればよいですか?
erfa mcpを実行して、quote_rfq、lookup_part、audit_quoteを型付きツールとして公開するMCP stdioサーバーを起動します。MCP互換の任意のクライアント(Claude、GPT-4、Gemini、またはカスタムエージェントフレームワーク)を起動コマンドとしてerfa mcpに指定すると、構造化JSONを入出力としてそれらのツールを直接呼び出すことができ、解析するCLI出力はありません。
どの文書形式を解析できますか?
PDF(Claudeのビジョン機能によるスキャンされた表を含む)、Excel(.xlsx/.xls、すべてのワークシートからラインアイテムのヘッダー行を検索)、Word(.docx、すべての表を読み取る)です。プレーンテキストのRFQも機能します。
ERPカタログにないラインアイテムはどうなりますか?
理由を説明するメモとともにnot_foundとマークされ(黙って破棄されたり推測されたりはしません)、見積合計から除外されます。保存された見積JSONに対してerfa auditを実行すると、どの行が見つかったか、置換されたか、欠落しているか、その理由を正確に確認できます。
商用利用できますか? はい。MITライセンスなので、ロイヤリティなしで商用利用、修正、配布が可能であり、変更をオープンソースにする義務もありません。ライセンスファイルによる帰属表示のみが必要です。
RFQと価格データはAnthropic以外に送信されますか? 解析のためにAnthropic APIに送信されるのはRFQ文書のコンテンツのみです。ERPルックアップは、設定したコネクタを介してマシンからERPシステムへ直接送信されます。中間サービスはなく、自分で見積JSONを永続化することを選択しない限り、環境外に保存されるものはありません。
これはPyPIに公開されていますか?
はい、electronics-rfq-agent-cliとして公開されています(pip install electronics-rfq-agent-cli)。公開パイプライン(ビルド、Sigstore署名、SBOM、trusted-publisherアップロード)は.github/workflows/release.ymlにあり、v*タグのプッシュのたびに実行されます。Pythonインポートパス(electronics_rfq_agent)とerfa CLIコマンドは変更されていません。レジストリ向けのパッケージ名のみが-cli接尾辞を持ち、このメンテナのCLIツールの命名規則に一致しています。
コントリビューション
PRを開く前にCONTRIBUTING.mdをお読みください
Good first issueはGitHubでラベル付けされています
ERPアダプタは
electronics_rfq_agent/mcp/にあります。各アダapterは自己完結型のファイルであり、コアへの変更は不要ですすべてのPRには80%のテストカバレッジが必要です
GitHub Discussions: 質問、アイデアの共有 Discord: 近日公開
完全なドキュメント: はじめに · APIリファレンス · ERPセットアップ: Epicor · SAP · Oracle · Dynamics 365 · 変更履歴
MIT。コントリビューション歓迎。
ライセンス
MIT。LICENSEを参照してください。
この成果の引用
研究でElectronics RFQ Agentを使用する場合は、以下を引用してください:
@software{paul2026electronicsrfq,
author = {Paul, Rudrendu and Nandy, Sourav},
title = {Electronics RFQ Agent: AI Quoting Agent for Electronics Distributors},
year = {2026},
url = {https://github.com/RudrenduPaul/electronics-rfq-agent},
license = {MIT}
}Rudrendu PaulとSourav Nandyによって構築されました
This server cannot be deployed
Maintenance
Related MCP Connectors
Let AI agents query data and act across all your business apps via MCP.
AI agent platform: manage leads, conversations, bots, calendar and CRM via MCP.
Hosted MCP for e-commerce: live product catalog, stock, and pricing for AI agents.
Agent-native supply network for components, fabrication, industrial RFQs, offers, and fulfillment.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceIntelligently generates cost estimates and lead times for manufacturing RFPs by parsing requests, matching against historical quotes, and calculating activity-based costs with confidence scoring and human approval workflows.-
- AlicenseNot gradedqualityDmaintenanceAgent-native company intelligence. AI agents search and retrieve structured, verified company context (certifications, capabilities, capacity, lead times) for manufacturing & supply chain via 5 MCP tools.MIT
- AlicenseNot gradedqualityDmaintenanceA FastMCP runtime that lets AI tools search electronic components, prices, and availability across the Distrify distributor network through one connection, federating queries across accessible distributors.MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that automates the procurement workflow, including RFQ generation, quote parsing, ERP item loading, and purchase requisition submission with human-in-the-loop approval gates.MIT