Kuaidi100 launched China's first MCP-protocol-compatible logistics information service platform. The core API services of Kuaidi100's Baidiy
MVG Frankfurt: Blech und Halbzeuge is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Sheet metal and stock parts from Frankfurt: prices, DFM feedback with images, lead times, quotes.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http mvg-frankfurt-blech-und-halbzeuge-mcp https://mvg-frankfurt.de/mcp
# 2 — ask your agent for something these tools do
# find_materials, normalize_material, find_hole_operations and 22 more
MVG Frankfurt: Blech und Halbzeuge costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http mvg-frankfurt-blech-und-halbzeuge-mcp https://mvg-frankfurt.de/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
25 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Bleche: Werkstoffe mit lesbarem Code (material), Dicken (mm + label), Tafelformaten und REACH-Hinweis. Halbzeuge (Rohre, Profile, Flach-, Rund-, Vierkantmaterial): art_nr, Abmessungen, kg/m, Stangenlaenge. query mit Massen wie 'flach 20x5 alu', 'rohr 30x2', 'edelstahl 1.4301'. Beispiel: 'Alu-Winkel 15 x 15 x 2' ist ein Halbzeug-Winkelprofil -> kind 'halbzeug', query 'winkel 15x15x2 alu', danach ge
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | — |
| kind | string | no | — |
| thickness_mm | number | no | nur Bleche mit dieser Dicke |
| laser_only | boolean | no | — |
| kategorie | string | no | Halbzeug-Form (Teiltext), z. B. Flachstange, Rundstange, Rundrohr, Winkel, Vierkantstange, Vierkantrohr, U-Profil, Rechteckrohr, Sechskantstange, T-Profil, Z-Profil, HEB-Traeger. Die Antwort nennt unt |
| werkstoff | string | no | Halbzeug-Werkstoff, z. B. 'aluminium', 'edelstahl', '1.4301', 'V2A', 'messing', 'stahl' |
| breite_mm | number | no | Halbzeug: genau dieses Mass breite in mm (+-0,05) |
| hoehe_mm | number | no | Halbzeug: genau dieses Mass hoehe in mm (+-0,05) |
| dicke_mm | number | no | Halbzeug: genau dieses Mass dicke in mm (+-0,05) |
| wandstaerke_mm | number | no | Halbzeug: genau dieses Mass wandstaerke in mm (+-0,05) |
| durchmesser_mm | number | no | Halbzeug: genau dieses Mass durchmesser in mm (+-0,05) |
| aussendurchmesser_mm | number | no | Halbzeug: genau dieses Mass aussendurchmesser in mm (+-0,05) |
| schenkel_a_mm | number | no | Halbzeug: genau dieses Mass schenkel_a in mm (+-0,05) |
| schenkel_b_mm | number | no | Halbzeug: genau dieses Mass schenkel_b in mm (+-0,05) |
| schluesselweite_mm | number | no | Halbzeug: genau dieses Mass schluesselweite in mm (+-0,05) |
| ranges | object | no | Halbzeug: Massbereiche, z. B. {"breite_mm": {"min": 30, "max": 50}}. Schluessel wie die Einzelmasse. |
| offset | integer | no | — |
| limit | integer | no | — |
Freier Werkstoff-Text (z. B. 'V2A 2mm', 'AlMg3', '1.4301 geschliffen', 'verzinkt 1,5') -> passende Blech-Werkstoffe mit 'material'-Code und Dicken. Vor get_price nutzen, wenn der Nutzer den Werkstoff frei beschreibt. Beispiel: {"query": "V2A 2mm"}. [Zugang: oeffentlich, ohne Anmeldung. Aendert Daten: nein.]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | — |
| thickness_mm | number | no | — |
Gewinde schneiden und Senkungen je Werkstoff und Dicke: Groessen mit Kernloch bzw. Durchgang, Preis je Stueck netto/brutto (Cent), ob die Groesse fuer diesen Werkstoff und diese Dicke geht (ok/warn/block mit Grund), Ruestpauschale je Auftrag und Lieferzeit-Regel. Verwendung in create_quote: hole_operations an der upload/design-Position. Beispiel: {"material":"aluminium-almg3","thickness_mm":4}. [Z
| Parameter | Type | Required | Notes |
|---|---|---|---|
| material | string | yes | — |
| thickness_mm | number | no | — |
Richtpreis netto und brutto (Kanal online, gleiche Engine wie der Shop) fuer Blech-Zuschnitt (sheet_cut), Kantteil (sheet) und Halbzeug-Zuschnitt (profile), dazu Zubehoer. Alle Kosten stecken im Preis, bei delivery.mode=shipping auch Versand. Nichts wird gespeichert; verbindlich und mit Warenkorb-Link wird es mit create_quote. type 'sheet' (Kantteil) nur fuer gekantetes Blech nach Zeichnung (Schen
| Parameter | Type | Required | Notes |
|---|---|---|---|
| items | array | yes | — |
| delivery | object | no | — |
| include_pcf | boolean | no | false = ohne CO2e-Angaben (pcf_kg_co2e, pcf_method) |
Konstruktionsgrenzen fuer Werkstoff + Dicke (max. Format, max. Laser-Dicke je Werkstoff aus dem Maschinenpark, kleinster Lochdurchmesser, Steg, Randabstand, Biegung, Mindestschenkel) und, mit part, Pruefung eines Kantteils ohne Datei (tolerance_mm = gewuenschte Masstoleranz +/- mm). Mit design_id oder upload_id (Anmeldung, designs:write) wird eine CAD-Datei geprueft (flache Teile inkl. Konturen: S
| Parameter | Type | Required | Notes |
|---|---|---|---|
| material | string | no | — |
| thickness_mm | number | no | — |
| part | object | no | — |
| design_id | string | no | — |
| upload_id | string | no | — |
| tolerance_mm | number | no | — |
Fertigstellungs-/Abholtermin und Zustellfenster je Stufe (Economy, Standard, Express) inkl. Regel Express 24 h (bis Stichzeit bestellt: naechster Werktag gegen eigenen Aufpreis bei kleinen Zuschnitt-Mengen). Mit items gilt der Termin fuer genau diese Positionen; ohne items die allgemeinen Regeln. [Zugang: oeffentlich, ohne Anmeldung. Aendert Daten: nein.]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| items | array | no | — |
| shipping_kind | string | no | — |
Alle Lieferstufen (Termin fertig, Zustellfenster, Aufpreis) und die Versandkosten zur Postleitzahl fuer genau diese Positionen in einem Aufruf; dazu Abholung (ohne Versandkosten). Termine, keine Lagerangaben. Beispiel: {"items":[...], "postal_code":"60314"}. [Zugang: oeffentlich, ohne Anmeldung. Aendert Daten: nein.]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| items | array | yes | — |
| postal_code | string | no | — |
| shipping_kind | string | no | — |
Packstueck-Rechner: wie die Teile verpackt werden (Karton, Flachpaket, Bund, Palette) und was der Versand netto/brutto kostet (Richtwert; verbindlich ist der Versand in get_price/create_quote mit delivery.mode=shipping). [Zugang: oeffentlich, ohne Anmeldung. Aendert Daten: nein.]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| postal_code | string | yes | — |
| country | string | no | — |
| positions | array | yes | — |
Sucht in Magazin, Konstruktionsrichtlinien, FAQ, Preis-, Versand- und Werkstoffseiten. Mit path statt query wird eine Seite vollstaendig gelesen (path aus einem Treffer). [Zugang: oeffentlich, ohne Anmeldung. Aendert Daten: nein.]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | — |
| path | string | no | — |
| section | string | no | — |
| limit | integer | no | — |
Alle Formen des Teile-Editors (/teile-designer): Rechteck, Quadrat, Ronde, Ring, Lochkreis-Flansch, Lochplatte, Langloch-Platte, Laschen, Knotenbleche, gekantete Winkel/Wannen ... je Vorlage id, Name, Parameter (key, Einheit, min/max, Vorgabe) und ein Beispiel-Aufruf fuer configure_part. Gruppe 'anwendung': fertige Kantteile fuer den Bau (fensterbank, mauerabdeckung, attikahaube, ortgangblech, tra
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | — |
| group | string | no | — |
Teil aus einer Vorlage (template + params aus list_part_templates) plus optionale Zusatzloecher: der Server baut die Geometrie wie der Teile-Editor, prueft die Fertigbarkeit (Lochabstand Rand/Steg, Mindest-Loch-Ø je Dicke, Format) und rechnet den Shop-Preis netto+brutto inkl. aller Kosten (Kanal online). Ergebnis: status (ready|needs_review|price_unavailable|editor_only), price, lead_time, manufac
| Parameter | Type | Required | Notes |
|---|---|---|---|
| template | string | yes | — |
| params | object | no | Werte je Parameter-key der Vorlage (fehlende = Vorgabe) |
| material | string | yes | — |
| thickness_mm | number | yes | — |
| quantity | integer | no | — |
| corner_radius_mm | number | no | — |
| extra_holes | array | no | — |
| name | string | no | — |
| delivery | object | no | — |
Einfachster Weg fuer 'Ich brauche dieses Teil': rechteckige Platte length_mm x width_mm mit runden Loechern (holes: x_mm/y_mm = Lochmitte ab linker unterer Ecke, diameter_mm), optional corner_radius_mm. Sonst wie configure_part: Fertigbarkeit, Shop-Preis netto+brutto, Lieferzeit, preview_url, editor_url, draft_id. Beispiel: Platte 200 x 100 x 3 AlMg3 mit 6 Loechern Ø 9 -> {length_mm:200, width_mm:
| Parameter | Type | Required | Notes |
|---|---|---|---|
| length_mm | number | yes | — |
| width_mm | number | yes | — |
| material | string | yes | — |
| thickness_mm | number | yes | — |
| holes | array | no | — |
| corner_radius_mm | number | no | — |
| quantity | integer | no | — |
| name | string | no | — |
| delivery | object | no | — |
Reihenfolge, Einheiten, Verbote und Beispiele. Zu Beginn lesen. [Zugang: oeffentlich, ohne Anmeldung. Aendert Daten: nein.]
No parameter schema on file.
Fuer wen spricht dieser Zugang, welche Rechte gelten? [Zugang: requires login: Scope catalog:read. Aendert Daten: nein.]
No parameter schema on file.
Signierter Link fuer EINE STEP-, DXF-, AI- oder EPS-Datei (15 Minuten, einmalig, STEP bis 50 MiB, DXF/AI/EPS bis 20 MiB; AI/EPS wird zu DXF in mm, Masse stehen in der Upload-Antwort unter vektor). Bytes per PUT auf upload_url; kannst du die Datei nicht lesen, gib dem Nutzer browser_upload_url. Danach create_quote mit {type:'upload', upload_id, material, quantity} (DXF/AI/EPS zusaetzlich thickness_
| Parameter | Type | Required | Notes |
|---|---|---|---|
| filename | string | no | — |
| filenames | array | no | — |
Stand eines Uploads aus create_upload: waiting (Link offen, noch keine Datei), received (Datei da, weiter mit create_quote), expired (neuen Link holen). Hoechstens alle 10 Sekunden abfragen. [Zugang: requires login: Scope designs:write. Aendert Daten: nein.]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| upload_id | string | yes | — |
Verbindliches Angebot (24 h) netto und brutto mit quote_id und checkout_url: der Link oeffnet den Warenkorb der Website mit genau diesen Positionen. Bestellen und bezahlen tut dort ein Mensch. Positionen wie get_price plus upload (aus create_upload) und design. requirements: block = nicht bestellbar (kein checkout_url), warn = Kunde bestaetigt im Warenkorb. Positionen als Liste items, Beispiel: {"
| Parameter | Type | Required | Notes |
|---|---|---|---|
| items | array | yes | — |
| delivery | object | no | — |
| operation_key | string | no | Wiederholschutz: gleicher Wert beim erneuten Versuch, neuer Wert bei geaenderten Eingaben. |
| include_pcf | boolean | no | false = ohne CO2e-Angaben (pcf_kg_co2e, pcf_method) |
Ein frueheres Angebot (jede Fassung) erneut lesen, mit checkout_url. [Zugang: requires login: Scope quotes:read. Aendert Daten: nein.]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| quote_id | string | yes | — |
| include_pcf | boolean | no | false = ohne CO2e-Angaben (pcf_kg_co2e, pcf_method) |
Mengen aendern, Positionen entfernen (remove) oder ergaenzen (add_items). Ergebnis ist ein NEUES Angebot mit eigener quote_id und supersedes; das alte bleibt unveraendert abrufbar. index = lines[].index des Angebots. [Zugang: requires login: Scope quotes:write. Aendert Daten: ja (neue Angebotsfassung).]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| quote_id | string | yes | — |
| changes | array | no | — |
| add_items | array | no | — |
| delivery | object | no | — |
| operation_key | string | no | Wiederholschutz: gleicher Wert beim erneuten Versuch, neuer Wert bei geaenderten Eingaben. |
| include_pcf | boolean | no | false = ohne CO2e-Angaben (pcf_kg_co2e, pcf_method) |
Stueckliste schrittweise: weitere Positionen (z. B. je hochgeladener Datei) an ein Angebot anhaengen. Ergebnis ist eine neue Fassung mit allen Positionen (supersedes = bisherige quote_id); mit der neuen quote_id weiterarbeiten. [Zugang: requires login: Scope quotes:write. Aendert Daten: ja (neue Angebotsfassung).]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| quote_id | string | yes | — |
| items | array | yes | — |
| operation_key | string | no | Wiederholschutz: gleicher Wert beim erneuten Versuch, neuer Wert bei geaenderten Eingaben. |
| include_pcf | boolean | no | false = ohne CO2e-Angaben (pcf_kg_co2e, pcf_method) |
Angebote dieses Zugangs, neueste zuerst: quote_id, Datum, Ablauf, Status, Positionen, Summe, dfm_status, supersedes. Mit offset/limit blaettern. [Zugang: requires login: Scope quotes:read. Aendert Daten: nein.]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | — |
| offset | integer | no | — |
Direkter Link fuer den Nutzer: kind 'checkout' (Warenkorb mit den Positionen, auch zum Weitergeben an Kollegen: wer den Link hat, sieht Positionen und Preis und kann bestellen), 'part' (Querschnitt mit Massen) oder 'bending' (Biegeschritte) einer Kantteil-Position (index). [Zugang: requires login: Scope quotes:read. Aendert Daten: nein.]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| quote_id | string | yes | — |
| kind | string | yes | — |
| index | integer | no | — |
Bestellungen des angemeldeten Kundenkontos (wie unter /konto): Nummer, Datum, Betrag, Zahl- und Auftragsstatus, Status-Link. Nur mit OAuth-Zustimmung eines Kundenkontos. [Zugang: requires login: OAuth-Zustimmung eines Kundenkontos, Scope orders:read. Aendert Daten: nein.]
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | — |
Status einer Bestellung des angemeldeten Kundenkontos (order_id oder Nummer aus list_orders). Nur mit OAuth-Zustimmung eines Kundenkontos. Hoechstens alle 15 Minuten abfragen. Statt Abfragen: Ereignis-Meldungen order.status_changed ueber POST /v1/webhooks (MVG-API-Key, Scope webhooks:write, signiert). [Zugang: requires login: OAuth-Zustimmung eines Kundenkontos, Scope orders:read. Aendert Daten: n
| Parameter | Type | Required | Notes |
|---|---|---|---|
| order_id | string | yes | — |
Teile einer frueheren Bestellung des angemeldeten Kundenkontos erneut anbieten (order_id oder Nummer aus list_orders; optional parts mit part_id und quantity). Preise und Fertigbarkeit werden HEUTE neu gerechnet, nie der alte Preis. Ergebnis: Angebot mit checkout_url in den Warenkorb, KEINE Bestellung, bestellt und bezahlt wird im Browser von einem Menschen. Nur mit OAuth-Zustimmung eines Kundenko
| Parameter | Type | Required | Notes |
|---|---|---|---|
| order_id | string | yes | — |
| parts | array | no | — |
| operation_key | string | no | Wiederholschutz: gleicher Wert beim erneuten Versuch, neuer Wert bei geaenderten Eingaben. |
| include_pcf | boolean | no | false = ohne CO2e-Angaben (pcf_kg_co2e, pcf_method) |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install MVG Frankfurt: Blech und Halbzeuge or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | moderate | capability blast radius (moderate) — client exposure if the model is manipulated | −3 |
| coverage-honesty | manifest | inspection depth (manifest) — how much of the target the scan could see | −4 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
The scan read each tool’s name, description, input schema and annotations exactly as the server listed them the last time it answered us; no code was reviewed. We ask the server again about once a month, and a list that changed is graded again.
The implementation source was not read — this reflects the declared tool metadata only.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. moderate is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| find_materials | no tags | |
| normalize_material | no tags | |
| find_hole_operations | no tags | |
| get_price | no tags | |
| check_manufacturability | no tags | |
| get_lead_time | no tags | |
| get_delivery_options | no tags | |
| get_shipping_estimate | no tags | |
| search_docs | no tags | |
| list_part_templates | no tags | |
| configure_part | state-write | state-write: declares readOnlyHint: false |
| configure_plate | state-write | state-write: declares readOnlyHint: false |
| get_agent_guidance | no tags | |
| whoami | no tags | |
| create_upload | state-write | state-write: declares readOnlyHint: false |
| upload_status | no tags | |
| create_quote | state-write | state-write: declares readOnlyHint: false |
| get_quote | no tags | |
| update_quote_parts | state-write | state-write: declares readOnlyHint: false |
| add_quote_parts | state-write | state-write: declares readOnlyHint: false |
| list_quotes | no tags | |
| get_link | no tags | |
| list_orders | no tags | |
| check_order_status | no tags | |
| reorder_from_order | state-write | state-write: declares readOnlyHint: false |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 2.0.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish MVG Frankfurt: Blech und Halbzeuge can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.