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.

Inhaltsverzeichnis
Related MCP server: databid
Installation
pip install electronics-rfq-agent-cli
# or
uv add electronics-rfq-agent-cliUm 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 syncDas 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 |
|
|
| Parst eine RFQ-Datei und gibt einen Angebotsentwurf aus. Benötigt |
|
| keine | Gibt einen vollständigen Audit-Bericht (gefunden / ersetzt / nicht gefunden, Fill-Rate) für eine Angebots-JSON-Datei aus, die mit |
| keine | keine | Startet einen MCP-stdio-Server, der |
# 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.jsonBeispiel 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.notesauf eine Meldung, die den Nullpreis kennzeichnet, damit Sie ihn bemerken, bevor Sie dem Kunden ein Angebot senden. Prüfen Sieline.notesfü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 |
| Orchestriert Parsing + ERP-Suche + Angebotszusammenstellung. |
| ERP-Connectors, einer pro unterstütztem System. Alle implementieren dieselbe |
| In-Memory-Backend mit 200 realistischen Bauteilen. Keine Anmeldedaten, kein Netzwerk. |
| Pydantic-v2-Modelle für das Angebot, jede Position, die geparste RFQ-Zeile, rohe ERP-Daten und die Connector-Konfiguration. |
| Die beiden Ausnahmen, die |
| Optionale lokale Telemetrie ( |
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 | |
SAP ECC / S/4HANA | Beta (manuelle Installation) | PyRFC (BAPI) | |
Oracle Cloud SCM | Unterstützt | REST-API | |
Microsoft Dynamics 365 | Unterstützt | Graph-API | |
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.pyERP-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) |
| |
LangGraph |
| |
OpenAI Agents SDK |
| |
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 -dIhre 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 KernAlle 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
This server cannot be installed
Maintenance
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 gradedqualityAmaintenanceThis MCP server enables AI agents to understand and analyze electrical schematics from Cadence and Altium for comprehensive design reviews through natural conversations.59631Apache 2.0
- AlicenseNot gradedqualityBmaintenanceA 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
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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