Skip to main content
Glama
RudrenduPaul

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를 지원하는 모든 에이전트 프레임워크에서 작동합니다.

CI PyPI version Python 3.10+ License: MIT OpenSSF Scorecard


Terminal recording showing erfa --help listing the quote and audit subcommands, then erfa audit printing a full fill-rate report for a five-line RFQ against the mock ERP backend

목차

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 sync

RFQ 문서(PDF, Excel, Word)를 파싱하면 Anthropic API를 호출하므로, 실제 문서를 다루는 작업을 실행하기 전에 ANTHROPIC_API_KEY를 설정하세요:

export ANTHROPIC_API_KEY="sk-ant-..."

이 키는 기존 견적 파일에 대해 erfa audit을 실행하거나 --help로 CLI를 탐색할 때는 필요하지 않습니다. 문서 파싱만 Claude를 호출합니다.

해결하는 문제

저희는 하루의 대부분을 견적 입력에 보내는 영업 엔지니어가 3~5명 있는 전자 부품 유통업체와 협력하고 있었습니다. 저희가 찾은 모든 도구는 특정 ERP에 묶여 있거나 6개월 통합 프로젝트가 필요했습니다. 저희는 유통업체가 이미 보유한 시스템과 함께 작동하고, 자체 호스팅이 가능하며(견적 데이터는 민감한 정보이므로), 실제로 확장 가능한 무언가를 원했습니다.

MCP 아키텍처 덕분에 새 ERP를 추가하는 것은 파일 하나를 작성하는 것과 같습니다. 파서는 유통업체가 실제로 보내는 문서 형식(손으로 작성한 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는 두 개의 하위 명령어를 제공합니다. 아래 모든 플래그는 erfa --help에서 가져온 것입니다.

명령어

인수

플래그

설명

erfa quote

rfq (경로, 필수)

--mock, --margin <float> (기본값 0.15), --output/-o <path>

RFQ 파일을 파싱하여 견적 초안을 출력합니다. ANTHROPIC_API_KEY가 필요합니다. 파싱은 항상 Claude를 거치며, --mock은 ERP 백엔드만 교체합니다.

erfa audit

quote_file (경로, 필수)

없음

erfa quote --output으로 저장된 견적 JSON 파일에 대한 전체 감사 보고서(찾음 / 대체됨 / 찾지 못함, 충족율)를 출력합니다. 로컬 파일만 읽으며 API 키가 필요 없습니다.

erfa mcp

없음

없음

quote_rfq, lookup_part, audit_quote를 타입이 있는 도구로 노출하는 MCP stdio 서버를 시작합니다. 따라서 MCP 호환 에이전트(Claude, GPT-4, Gemini)가 CLI를 셸로 호출하지 않고 직접 호출할 수 있습니다. MCP 클라이언트 구성을 명령어로 erfa mcp를 가리키세요.

# 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

감사 출력 예시(tests/fixtures/sample_rfq.txt의 샘플 RFQ에 목업 ERP의 가격 책정 로직을 실행하여 생성된 erfa audit docs/example-quote.json의 실제 출력):

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)

가격이 0인 부품: 부품이 ERP 카탈로그에 있지만 단가가 $0.00인 경우, 에이전트는 해당 라인을 건너뛰지 않고 $0로 견적을 내고 line.notes에 가격이 0원임을 알리는 메시지를 설정하여 고객에게 견적을 보내기 전에 발견할 수 있도록 합니다. 견적을 보내기 전에 찾았거나 대체된 모든 라인에 대해 line.notes를 확인하세요.

API 참조

전체 참조는 docs/api.md에 있습니다: 모든 QuoteAgent 매개변수, 공유 ERP 커넥터 인터페이스, Quote/QuoteLineItem 필드별 설명, 예외 계층 구조. 아래 내보내기는 추측이 아닌 src/electronics_rfq_agent/__init__.py에서 가져온 from electronics_rfq_agent import ...가 실제로 제공하는 것입니다:

내보내기

설명

QuoteAgent

파싱 + ERP 조회 + 견적 구성을 오케스트레이션합니다. run()(비동기) 및 run_sync().

EpicorMCP, SAPMCP, OracleMCP, DynamicsMCP

지원되는 각 시스템당 하나씩 있는 ERP 커넥터입니다. 모두 동일한 search_parts / get_part / get_price / check_inventory 인터페이스를 구현합니다.

MockERP (electronics_rfq_agent.mcp.mock에서)

현실적인 부품 200개가 포함된 인메모리 백엔드입니다. 자격 증명도 네트워크도 필요 없습니다.

Quote, QuoteLineItem, RFQLineItem, ERPPartResult, ERPConfig

견적, 각 라인, 파싱된 RFQ 라인, 원시 ERP 데이터 및 커넥터 구성을 위한 Pydantic v2 모델입니다.

ERPConnectionError, RFQParseError

QuoteAgent가 발생시킬 수 있는 두 가지 예외: 연결/인증 실패 및 구문 분석 불가 문서. 라인별 ERP 오류는 발생하지 않으며 대신 line.notes에 기록됩니다.

TelemetryCollector, TelemetryEvent

선택적 로컬 원격 측정(QuoteAgenttelemetry=True), 개수 및 타이밍만 포함하며 RFQ 콘텐츠는 포함하지 않습니다.

대안과의 차이점

Electronics RFQ Agent

수동 프로세스

SAP Joule

일반 AI (ChatGPT)

다중 ERP 지원

SAP + Epicor + Oracle + Dynamics

N/A

SAP 중심 (Joule Studio는 SAP Integration Suite를 통해 비SAP 소스에 도달 가능)

ERP 액세스 불가

견적 시간 (50줄)

~15초

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는 PyPI에 없는 SAP NetWeaver RFC 라이브러리가 필요하며 SAP 지원 포털(S-User 필요)에서 수동으로 다운로드해야 합니다. 단계별 지침은 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.py

ERP 조회 지연 시간(개별 조회 100회, 목업 백엔드):

P50

P99

평균

0.00025ms

0.0023ms

0.00032ms

RFQ 크기별 견적 구성 시간(파서 목업, Anthropic API 호출 없음):

RFQ 크기

구성 시간

10줄

0.004초

25줄

0.001초

50줄

0.001초

이 수치는 ERP 조회 및 견적 구성에만 해당됩니다. RFQ 파서는 목업이며 Anthropic API 호출은 이루어지지 않습니다. 프로덕션에서는 AI 문서 파싱에 문서당 515초, 실제 ERP 조회에 라인당 100500ms(최대 max_concurrent=10으로 병렬 처리)가 추가되어 50줄 RFQ의 경우 현실적으로 총 ~15초가 소요됩니다. 수동 기준: 2~4시간.

통합 매트릭스

Electronics RFQ Agent는 MCP를 지원하는 모든 에이전트 프레임워크에서 작동합니다:

프레임워크

Install(설치)

예제

Claude (내장)

pip install electronics-rfq-agent-cli

01-basic-quote

LangGraph

pip install 'electronics-rfq-agent-cli[langgraph]'

04-langgraph-agent

OpenAI Agents SDK

pip install electronics-rfq-agent-cli[agents]

05-openai-agents

CrewAI

pip install electronics-rfq-agent-cli[crewai]

n/a

Try it in 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

견적 데이터는 사용자 환경을 벗어나지 않습니다.

Security

  • 취약점 스캔: Trivy가 모든 CI 실행을 스캔하고(HIGH/CRITICAL 심각도, 수정되지 않은 발견 항목이 있으면 빌드가 실패하며), 결과는 GitHub Security 탭에 업로드됩니다.

  • 릴리스 서명: 릴리스 워크플로우는 버전이 태그된 후, 빌드된 wheel과 sdist에 대한 서명을 Sigstore를 통해 수행하고 CycloneDX SBOM을 각 GitHub Release에 첨부합니다.

  • 의존성 고정: 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 라이브러리가 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 라이선스로 소스가 공개되어 있고 사용자 환경에 직접 구축(self-hosted) 하며, 같은 MCP 인터페이스를 통해 SAP, Epicor, Oracle, Dynamics 와 함께 동작합니다. 데이터를 외부(환경 밖)로 보낼 필요가 없으며, 특정 ERP 공급업체에 얽매이지 않습니다.

CLI 대신 자신의 에이전트로 이 도구를 호출하려면 어떻게 해야 하나요?

erfa mcp를 실행하면 quote_rfq, lookup_part, audit_quote와 같은 형식화된 도구를 제공하는 MCP 표준 서버(stdio) 가상으로 시작됩니다. Claude, GPT-4, Gemini 또는 커스텀 에이전트 프레임워크 등 MCP 호환 클라이언트에서 erfa mcp를 시작 명령으로 지정하면, 구조화된 JSON 입출력으로 해당 도구를 직접 호출할 수 있습니다. 파싱할 CLI 출력이 필요하지 않습니다.

파싱 가능한 문서 형식은 어떤 것이 있나요?

PDF(스캔된 테이블 포함, Claude의 비전 기능 사용), Excel(.xlsx/.xls, 모든 시트에서 품목 헤더 행을 찾음), Word(.docx, 모든 테이블 읽음)입니다. 일반 텍스트형 RFQ도 처리됩니다.

ERP 카탈로그에 없는 품목은 어떻게 처리되나요?

그러한 품목은 not_found로 표시되며, 그 이유가 메모로 기록되고(무음히 삭제하지 않고 추측하지 않은 채) 총 금액 계산에서 제외됩니다. 저장된 견적 JSON에 대해 erfa audit을 실행하면 어떤 라인이 온전한 지(substitute?) 대체되었는지, 반면에 누락된 알 수 있는지 정확히 그와 이유를 함께 보여줍니다.

상용으로 사용할 수 있나요?

예. MIT 라이선스이므로 로열티 없이 상용으로 사용·수정·배포할 수 있으며, 상용 배포로 인해 수정사항을 공개해야 할 의무도 없습니다. 라이선스 파일에 표시된 저작자 표시만 하면 됩니다.

RFQ 및 가격 데이터가 Anthropic 이외의 다른 곳으로 전송되나요?

RFQ 문서 내용은 파싱을 위해 Anthropic API로 만 전송됩니다. ERP 조회는 사용자 환경에서의 연결된 ERP 시스템으로 대해 설정된 커넥터를 통해 직접 수행됩니다. 즉, 중개 서비스가 존재하지 않고, 사용자가 일부러 quote JSON을 직접 저장하지 않으면 견적 데이터가 자신의 환경 밖에 저장되지 않습니다.

이 도구는 PyPI에 배포되어 있나요?

네, electronics-rfq-agent-cli(pip install electronics-rfq-agent-cli)로 배포합니다. 게시 파이프라인(빌드, Sigstore 서명, SBOM, trusted-publisher 업로드)은 .github/workflows/release.yml에 저장되어 있으며, 모든 v* 버전(v) 태그를 push할 때마다 실행됩니다. Python import 경로(electronics_rfq_agent)와 erfa CLI 명령은 변경되지 않고, 레지스트리에 노출되는 패키지 이름만 -cli 접두사가 붙습니다. CLI 도구에 대한 유지보수자의 네이밍(명명 규칙)을 따르고 있습니다.

기여

  • PR을 열기 전에 CONTRIBUTING.md 를 읽어주세요.

  • 좋은 첫 이슈(Good first issue) 는 GitHub 작업 라벨로 가이드되어 있습니다.

  • ERP 어댑터는 electronics_rfq_agent/mcp/ 디렉터리에 있으며, 각각은 단일 파일로 구성되어 있습니다. 여러 privileged 커넥터를 제공하지 않고 Central 파일을 추가하기 때문에 핵심 코드 변경이 없다는 특징이 있습니다.

  • 모든 PR은 80% 이상의 테스트 커버리지를 요구합니다.

GitHub Discussions: 질문하고 아이디어를 공유 Discord: 곧 제공됩니다

전체 문서: 시작하기 · API 참조 · ERP 설정: Epicor · SAP · Oracle · Dynamics 365 · 체인지로그(Changelog)

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

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
1dResponse time
0dRelease cycle
4Releases (12mo)
Commit activity

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Intelligently 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.
  • A
    license
    Not graded
    quality
    D
    maintenance
    Agent-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
  • A
    license
    Not graded
    quality
    A
    maintenance
    This MCP server enables AI agents to understand and analyze electrical schematics from Cadence and Altium for comprehensive design reviews through natural conversations.
    596
    31
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    A 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

View all related MCP servers

Related MCP Connectors

  • Electronic component sourcing, BOM management, and PCB design workflows.

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

  • Real SEC, 13F, insider, congress & macro data your AI agent can cite. Hosted MCP, 24 tools.

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/RudrenduPaul/electronics-rfq-agent'

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