Skip to main content
Glama
RudrenduPaul

Electronics RFQ Agent

Electronics RFQ Agent

Ihre Vertriebsingenieure verbringen 2-4 Stunden damit, RFQ-Dokumente in Angebote umzuwandeln. Dieses Tool erledigt das in Sekunden.

Electronics RFQ Agent ist eine Python-Bibliothek und CLI, die RFQ-Dokumente (PDF, Excel, Word) liest, jede Position gegen Ihren ERP-Katalog abgleicht und einen Angebotsentwurf ausgibt. Es verbindet sich über MCP-Server mit SAP, Epicor, Oracle und Microsoft Dynamics und funktioniert daher mit Claude, GPT-4 oder jedem Agent-Framework, das MCP spricht.

CI PyPI version Python 3.10+ License: MIT OpenSSF Scorecard


Terminalaufzeichnung, die erfa --help mit den Unterbefehlen quote und audit zeigt, gefolgt von erfa audit, das einen vollständigen Fill-Rate-Bericht für eine fünfzeilige RFQ gegen das Mock-ERP-Backend ausgibt

Inhaltsverzeichnis

Related MCP server: databid

Installation

pip install electronics-rfq-agent-cli
# or
uv add electronics-rfq-agent-cli

Um stattdessen aus dem Quellcode zu installieren:

git clone https://github.com/RudrenduPaul/electronics-rfq-agent
cd electronics-rfq-agent
pip install -e .
# or, with uv:
uv sync

Das Parsen von RFQ-Dokumenten (PDF, Excel, Word) ruft die Anthropic-API auf. Setzen Sie daher ANTHROPIC_API_KEY, bevor Sie etwas ausführen, das ein echtes Dokument verarbeitet:

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

Sie benötigen diesen Schlüssel nicht, um erfa audit gegen eine vorhandene Angebotsdatei auszuführen oder um die CLI mit --help zu erkunden. Nur das Dokument-Parsing ruft Claude auf.

Das Problem, das dieses Tool löst

Wir arbeiteten mit Elektronik-Distributoren zusammen, deren 3-5 Vertriebsingenieure den Großteil ihres Tages mit der Angebotserfassung verbrachten. Jedes Tool, das wir fanden, war entweder an ein bestimmtes ERP gebunden oder erforderte ein 6-monatiges Integrationsprojekt. Wir wollten etwas, das mit der vorhandenen Infrastruktur der Distributoren funktioniert, selbst gehostet werden kann (Angebotsdaten sind sensibel) und tatsächlich erweiterbar ist.

Die MCP-Architektur bedeutet, dass das Hinzufügen eines neuen ERP das Schreiben einer einzigen Datei ist. Der Parser verarbeitet die Dokumentformate, die Distributoren tatsächlich senden: handschriftlich ausgefüllte PDFs, mehrseitige Excel-Dateien und gelegentlich gescannte Tabellen.

Schnellstart

Kein ERP-System erforderlich, um es auszuprobieren; das Mock-Backend enthält 200 realistische Elektronik-Bauteile. Sie benötigen jedoch ANTHROPIC_API_KEY, da das Parsen des RFQ-Dokuments weiterhin ein echter Claude-Aufruf ist:

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 wendet automatisch mengenbasierte Preisstaffeln an: Menge >= 1000 erhält 20 % Rabatt, Menge >= 100 erhält 10 % Rabatt, Menge >= 10 erhält 5 % Rabatt. Unter Menge 10 gilt der Listenpreis. Dies spiegelt reale Mengenrabatte wider, sodass Benchmarks und Integrationstests realistische Kostenkurven abbilden.

Verbindung zu einem echten ERP herstellen:

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())

Befehle

erfa enthält zwei Unterbefehle. Jedes unten aufgeführte Flag stammt direkt aus erfa --help.

Befehl

Argumente

Flags

Funktion

erfa quote

rfq (Pfad, erforderlich)

--mock, --margin <float> (Standard 0.15), --output/-o <Pfad>

Parst eine RFQ-Datei und gibt einen Angebotsentwurf aus. Benötigt ANTHROPIC_API_KEY; das Parsing läuft immer über Claude, --mock tauscht nur das ERP-Backend aus.

erfa audit

quote_file (Pfad, erforderlich)

keine

Gibt einen vollständigen Audit-Bericht (gefunden / ersetzt / nicht gefunden, Fill-Rate) für eine Angebots-JSON-Datei aus, die mit erfa quote --output gespeichert wurde. Liest nur eine lokale Datei, kein API-Schlüssel erforderlich.

erfa mcp

keine

keine

Startet einen MCP-stdio-Server, der quote_rfq, lookup_part und audit_quote als typisierte Tools bereitstellt, sodass jeder MCP-kompatible Agent (Claude, GPT-4, Gemini) sie direkt aufrufen kann, ohne die CLI als Subprozess zu starten. Konfigurieren Sie Ihren MCP-Client mit erfa mcp als Befehl.

# 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

Beispiel für eine Audit-Ausgabe (echte Ausgabe von erfa audit docs/example-quote.json, erzeugt durch Ausführen der Preislogik des Mock-ERP gegen die Beispiel-RFQ in tests/fixtures/sample_rfq.txt):

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)

Positionen mit Nullpreis: Wenn ein Bauteil im ERP-Katalog existiert, aber einen Stückpreis von $0,00 hat, bietet der Agent $0 an, anstatt die Position zu überspringen, und setzt line.notes auf eine Meldung, die den Nullpreis kennzeichnet, damit Sie ihn bemerken, bevor Sie dem Kunden ein Angebot senden. Prüfen Sie line.notes für jede gefundene oder ersetzte Position, bevor Sie ein Angebot versenden.

API-Referenz

Die vollständige Referenz finden Sie in docs/api.md: jeden QuoteAgent-Parameter, die gemeinsame ERP-Connector-Schnittstelle, Quote/QuoteLineItem Feld für Feld sowie die Ausnahmehierarchie. Die unten aufgeführten Exporte sind das, was from electronics_rfq_agent import ... tatsächlich liefert – aus src/electronics_rfq_agent/__init__.py extrahiert, nicht geraten:

Export

Was es ist

QuoteAgent

Orchestriert Parsing + ERP-Suche + Angebotszusammenstellung. run() (async) und run_sync().

EpicorMCP, SAPMCP, OracleMCP, DynamicsMCP

ERP-Connectors, einer pro unterstütztem System. Alle implementieren dieselbe search_parts / get_part / get_price / check_inventory-Schnittstelle.

MockERP (aus electronics_rfq_agent.mcp.mock)

In-Memory-Backend mit 200 realistischen Bauteilen. Keine Anmeldedaten, kein Netzwerk.

Quote, QuoteLineItem, RFQLineItem, ERPPartResult, ERPConfig

Pydantic-v2-Modelle für das Angebot, jede Position, die geparste RFQ-Zeile, rohe ERP-Daten und die Connector-Konfiguration.

ERPConnectionError, RFQParseError

Die beiden Ausnahmen, die QuoteAgent auslösen kann: Verbindungs-/Authentifizierungsfehler und nicht parsebare Dokumente. Fehler pro ERP-Position lösen keine Ausnahme aus; sie landen stattdessen in line.notes.

TelemetryCollector, TelemetryEvent

Optionale lokale Telemetrie (telemetry=True bei QuoteAgent), nur Zähler und Zeitmessungen, keine RFQ-Inhalte.

Unterschiede zu den Alternativen

Electronics RFQ Agent

Manueller Prozess

SAP Joule

Generische KI (ChatGPT)

Multi-ERP-Unterstützung

SAP + Epicor + Oracle + Dynamics

N/A

SAP-zentriert (Joule Studio kann über SAP Integration Suite auf Nicht-SAP-Quellen zugreifen)

Kein ERP-Zugriff

Angebotszeit (50 Positionen)

~15s

2-4 Stunden

Nicht öffentlich dokumentiert

N/A

Selbst hostbar

Ja

N/A

Nein (SAP-BTP-Cloud-Dienst)

Nein

Daten bleiben lokal

Ja

Ja

Nein

Nein

Open Source

MIT

N/A

Nein

Nein

Dev-Mock-Backend

Ja

N/A

Nicht öffentlich dokumentiert

N/A

MCP-kompatibel

Ja

N/A

Nicht öffentlich dokumentiert

Nein

ERP-Unterstützung

ERP

Status

Verbindung

Dokumentation

Epicor Kinetic

Unterstützt

REST-API

Einrichtung

SAP ECC / S/4HANA

Beta (manuelle Installation)

PyRFC (BAPI)

Einrichtung

Oracle Cloud SCM

Unterstützt

REST-API

Einrichtung

Microsoft Dynamics 365

Unterstützt

Graph-API

Einrichtung

Mock-Backend

Integriert

In-Memory

Keine Konfiguration erforderlich

Hinweis zu SAP: pyrfc erfordert die SAP-NetWeaver-RFC-Bibliothek, die nicht auf PyPI verfügbar ist und manuell vom SAP-Supportportal heruntergeladen werden muss (S-Benutzer erforderlich). Schritt-für-Schritt-Anleitung unter docs/erp-setup/sap.md.

Benchmarks

Gemessen mit dem In-Memory-Mock-Backend (200 realistische Bauteile, kein ERP-System erforderlich). Führen Sie es selbst aus:

git clone https://github.com/RudrenduPaul/electronics-rfq-agent
cd electronics-rfq-agent
uv run python benchmarks/run.py

ERP-Suchlatenz (100 einzelne Suchen, Mock-Backend):

P50

P99

Mittelwert

0.00025ms

0.0023ms

0.00032ms

Angebotszusammenstellungszeit nach RFQ-Größe (Parser gemockt, kein Anthropic-API-Aufruf):

RFQ-Größe

Zusammenstellungszeit

10 Positionen

0.004s

25 Positionen

0.001s

50 Positionen

0.001s

Diese Zahlen decken nur die ERP-Suche und die Angebotszusammenstellung ab. Der RFQ-Parser ist gemockt und es wird kein Anthropic-API-Aufruf durchgeführt. In der Produktion fügt das KI-Dokument-Parsing 5-15s pro Dokument hinzu, und echte ERP-Suchen dauern 100-500ms pro Position (parallelisiert mit bis zu max_concurrent=10), was eine realistische Gesamtzeit von ~15s für eine 50-Positionen-RFQ ergibt. Manuelle Basislinie: 2-4 Stunden.

Integrationsmatrix

Electronics RFQ Agent funktioniert mit jedem Agent-Framework, das MCP unterstützt:

Framework

Installation

Beispiel

Claude (integriert)

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

In Docker ausprobieren

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

Ihre Angebotsdaten verlassen niemals Ihre Umgebung.

Sicherheit

  • Schwachstellenscan: Trivy scannt jeden CI-Lauf (Schweregrad HIGH/CRITICAL, Build schlägt bei nicht behobenen Befunden fehl), Ergebnisse werden in den GitHub Security-Tab hochgeladen.

  • Release-Signierung: Der Release-Workflow signiert erstellte Wheels und Sdists mit Sigstore und fügt jedem GitHub-Release eine CycloneDX-SBOM hinzu, sobald eine Version getaggt wurde.

  • Abhängigkeits-Pinning: Dependabot hält GitHub-Actions- und Python-Abhängigkeiten aktuell (wöchentliche Patch-Updates, monatliche Actions-Updates).

  • Offenlegung: SECURITY.md. Melden Sie Schwachstellen privat per E-Mail oder über GitHub Security Advisories; Bestätigung innerhalb von 48 Stunden, verantwortungsvolle Offenlegung innerhalb von 90 Tagen.

FAQ

Was macht Electronics RFQ Agent eigentlich? Es nimmt ein RFQ-Dokument (PDF, Excel oder Word) von einem Kunden entgegen, extrahiert mit Claude jede Position, schlägt jedes Teil über einen MCP-Connector in Ihrem ERP-Katalog nach und liefert einen bepreisten Angebotsentwurf mit angewendeter Marge zurück. Ein Vertriebsingenieur prüft ihn und sendet ihn, anstatt ihn von Grund auf neu zu erstellen.

Ist es produktionsreif? Es ist Beta (v0.2.x). Die Kernbibliothek sowie die Epicor-, Oracle- und Dynamics-Connectors sind durch CI abgedeckt (Lint, mypy strict, pytest mit einer 80-%-Coverage-Schwelle, Trivy-Scanning) für Python 3.10-3.12. Die SAP-Unterstützung ist ausdrücklich als Beta markiert und erfordert einen manuellen Installationsschritt (die SAP-NetWeaver-RFC-Bibliothek ist nicht auf PyPI).

Brauche ich ein ERP-System, um es auszuprobieren? Nein. MockERP wird mit 200 realistischen Elektronikteilen ausgeliefert und wendet mengenbasierte Preisstufen an, sodass Sie den vollständigen Parse-Lookup-Quote-Ablauf ohne ERP-Anmeldedaten ausführen können. Sie benötigen weiterhin ANTHROPIC_API_KEY, da die Dokumentanalyse ein echter Claude-Aufruf ist. Nur erfa audit (Lesen einer bereits gespeicherten Angebotsdatei) funktioniert ganz ohne Schlüssel.

Wie unterscheidet sich das davon, ChatGPT zu bitten, das RFQ zu lesen? Ein generisches Chatmodell kann ein Dokument lesen und sogar Preise erraten, aber es hat keine Verbindung zu Ihrem tatsächlichen ERP-Katalog, Lagerbestand oder Vertragspreisen – es erfindet also Zahlen. Electronics RFQ Agent schlägt jede Position gegen Ihre echten Katalogdaten nach und bietet nur das an, was tatsächlich auf Lager ist, zum tatsächlichen Einstandspreis zuzüglich Ihrer konfigurierten Marge.

Wie unterscheidet sich das von SAP Joule? Joule ist SAPs proprietäre KI-Assistenten-Suite, die in SAPs Cloud-Plattform (SAP BTP) integriert ist und sich auf SAP-Daten konzentriert. Electronics RFQ Agent ist MIT-lizenziert, selbst gehostet und funktioniert über dieselbe MCP-Schnittstelle mit SAP, Epicor, Oracle und Dynamics. Ihre Angebotsdaten müssen Ihre Umgebung nie verlassen, und Sie sind nicht an einen einzigen ERP-Anbieter gebunden.

Wie rufe ich das aus einem Agenten statt über die CLI auf? Führen Sie erfa mcp aus, um einen MCP-stdio-Server zu starten, der quote_rfq, lookup_part und audit_quote als typisierte Tools bereitstellt. Richten Sie einen beliebigen MCP-kompatiblen Client (Claude, GPT-4, Gemini oder ein benutzerdefiniertes Agent-Framework) mit erfa mcp als Startbefehl ein, und er kann diese Tools direkt mit strukturiertem JSON aufrufen – ohne CLI-Ausgabe, die geparst werden müsste.

Welche Dokumentformate kann es parsen? PDF (einschließlich gescannter Tabellen über Claudes Vision-Funktion), Excel (.xlsx/.xls, durchsucht jedes Arbeitsblatt nach der Kopfzeile der Positionen) und Word (.docx, liest alle Tabellen). Auch reine Text-RFQs funktionieren.

Was passiert mit einer Position, die nicht im ERP-Katalog ist? Sie wird als not_found markiert, mit einem Hinweis, der erklärt, warum (anstatt stillschweigend verworfen oder geraten zu werden), und sie wird von der Angebotssumme ausgeschlossen. Führen Sie erfa audit mit dem gespeicherten Angebots-JSON aus, um genau zu sehen, welche Zeilen gefunden, ersetzt oder fehlend waren und warum.

Kann ich das kommerziell nutzen? Ja. Es ist MIT-lizenziert, sodass Sie es kommerziell nutzen, modifizieren und ausliefern können, ohne Lizenzgebühren und ohne Verpflichtung, Ihre Änderungen als Open Source zu veröffentlichen. Es ist lediglich eine Namensnennung über die Lizenzdatei erforderlich.

Werden meine RFQ- und Preisangaben außer an Anthropic noch irgendwohin gesendet? Nur der Inhalt des RFQ-Dokuments wird zur Analyse an die Anthropic-API gesendet. ERP-Abfragen gehen direkt von Ihrem Rechner über den von Ihnen konfigurierten Connector an Ihr ERP-System: Es gibt keinen zwischengeschalteten Dienst, und nichts wird außerhalb Ihrer eigenen Umgebung gespeichert, es sei denn, Sie entscheiden sich, Angebots-JSON selbst zu speichern.

Ist das auf PyPI veröffentlicht? Ja, als electronics-rfq-agent-cli (pip install electronics-rfq-agent-cli). Die Veröffentlichungs-Pipeline (Build, Sigstore-Signierung, SBOM, Trusted-Publisher-Upload) befindet sich in .github/workflows/release.yml und wird bei jedem Push eines v*-Tags ausgeführt. Der Python-Importpfad (electronics_rfq_agent) und der erfa-CLI-Befehl sind unverändert; nur der gegenüber der Registry verwendete Paketname trägt das Suffix -cli, entsprechend der Namenskonvention dieses Maintainers für CLI-Tools.

Mitwirken

  • Lesen Sie CONTRIBUTING.md, bevor Sie einen PR eröffnen

  • Good first issues sind in GitHub gekennzeichnet

  • ERP-Adapter befinden sich in electronics_rfq_agent/mcp/; jeder ist eine eigenständige Datei ohne Änderungen am Kern

  • Alle PRs erfordern 80 % Testabdeckung

GitHub Discussions: Fragen stellen, Ideen teilen Discord: bald verfügbar

Vollständige Dokumentation: Erste Schritte · API-Referenz · ERP-Einrichtung: Epicor · SAP · Oracle · Dynamics 365 · Changelog

MIT. Beiträge sind willkommen.

Lizenz

MIT. Siehe LICENSE.

Diese Arbeit zitieren

Wenn Sie Electronics RFQ Agent in der Forschung verwenden, zitieren Sie bitte:

@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}
}

Erstellt von Rudrendu Paul und 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