diff --git a/.gitattributes b/.gitattributes index 38405975..bbf0fa44 100644 --- a/.gitattributes +++ b/.gitattributes @@ -13,12 +13,12 @@ docs/** linguist-documentation content/** linguist-documentation *.md linguist-documentation *.mdx linguist-documentation -ROADMAP.md linguist-documentation +docs/ROADMAP.md linguist-documentation CHANGELOG.md linguist-documentation -SUPPORT.md linguist-documentation -CONTRIBUTING.md linguist-documentation -SECURITY.md linguist-documentation -CODE_OF_CONDUCT.md linguist-documentation +.github/SUPPORT.md linguist-documentation +.github/CONTRIBUTING.md linguist-documentation +.github/SECURITY.md linguist-documentation +.github/CODE_OF_CONDUCT.md linguist-documentation # Lockfiles and large generated artefacts shouldn't pollute language stats. package-lock.json linguist-generated diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 32ed59fa..c5df4a5a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -21,6 +21,6 @@ # Documentation /docs/ @keysersoft /README.md @keysersoft -/CONTRIBUTING.md @keysersoft -/SECURITY.md @keysersoft -/ROADMAP.md @keysersoft +/.github/CONTRIBUTING.md @keysersoft +/.github/SECURITY.md @keysersoft +/docs/ROADMAP.md @keysersoft diff --git a/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md similarity index 100% rename from CODE_OF_CONDUCT.md rename to .github/CODE_OF_CONDUCT.md diff --git a/CONTRIBUTING.md b/.github/CONTRIBUTING.md similarity index 92% rename from CONTRIBUTING.md rename to .github/CONTRIBUTING.md index 50341e90..4a00f7c8 100644 --- a/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -20,12 +20,12 @@ This project follows the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT. ## License -AnythingMCP is open source under the [GNU Affero General Public License v3](LICENSE) (AGPL-3.0-only). Code under `ee/` directories is licensed separately under the [AnythingMCP Commercial License](packages/backend/src/ee/LICENSE). See the [License FAQ](docs/license-faq.md) for a plain-language explanation. +AnythingMCP is open source under the [GNU Affero General Public License v3](../LICENSE) (AGPL-3.0-only). Code under `ee/` directories is licensed separately under the [AnythingMCP Commercial License](../packages/backend/src/ee/LICENSE). See the [License FAQ](../docs/license-faq.md) for a plain-language explanation. ### Contributor License Agreement (CLA) Before we can merge your first pull request, you must sign our -[Contributor License Agreement](CLA.md). An automated check on your PR +[Contributor License Agreement](../CLA.md). An automated check on your PR will ask you to sign by posting a comment — it takes one click and only needs to be done once. @@ -40,10 +40,10 @@ We use AI assistants (Claude Code, GitHub Copilot, etc.) in our own development - You take responsibility for the code you submit — review every line before opening a PR. - The catalog test suite (`npm test`) must pass. -- Adapter JSON must validate against [`docs/tool-definition.md`](docs/tool-definition.md). +- Adapter JSON must validate against [`docs/tool-definition.md`](../docs/tool-definition.md). - Don't paste AI output blindly into the PR description; write the *why* in your own words. -We will not refuse a PR because it was AI-assisted, and we will not single it out either. See [AUTHORS.md](AUTHORS.md) for how we use AI ourselves. +We will not refuse a PR because it was AI-assisted, and we will not single it out either. See [AUTHORS.md](../docs/AUTHORS.md) for how we use AI ourselves. ## Getting Started @@ -139,7 +139,7 @@ An adapter is one JSON file; the rest is generated and checked. 1. Write `packages/backend/src/adapters//.json`. Filename must equal `slug`; prefix every tool `_`; see - [docs/tool-definition.md](docs/tool-definition.md) for the envelope. + [docs/tool-definition.md](../docs/tool-definition.md) for the envelope. To start from a valid skeleton, run `npm run adapter:new -- --region --auth `. It refuses to overwrite an existing adapter unless you pass `--force`, and every spot diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 911e07e9..e632426a 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -7,7 +7,7 @@ contact_links: url: https://anythingmcp.com about: Setup guides for every adapter and every AI client, in seven languages. - name: 🔐 Security vulnerabilities - url: https://github.com/HelpCode-ai/anythingmcp/blob/main/SECURITY.md + url: https://github.com/HelpCode-ai/anythingmcp/blob/main/.github/SECURITY.md about: Please do NOT open a public issue. Follow the security disclosure policy. - name: 💼 Commercial licensing & support url: mailto:info@helpcode.ai diff --git a/SECURITY.md b/.github/SECURITY.md similarity index 98% rename from SECURITY.md rename to .github/SECURITY.md index fe267b8d..1da14d2d 100644 --- a/SECURITY.md +++ b/.github/SECURITY.md @@ -62,7 +62,7 @@ Update the value in `.env` and restart: `docker compose up -d`. Existing session `ENCRYPTION_KEY` encrypts connector credentials (API keys, OAuth tokens, database passwords) at rest. Rotating it requires re-encrypting every stored secret, because the existing ciphertext was sealed with the old key. -Until a built-in rotation command ships (tracked in [ROADMAP.md](ROADMAP.md)), the safe procedure is: +Until a built-in rotation command ships (tracked in [ROADMAP.md](../docs/ROADMAP.md)), the safe procedure is: 1. **Take a database backup** — `docker compose exec postgres pg_dump -U amcp anythingmcp > backup-pre-rotation.sql`. 2. **Export connector configs** — from the Admin UI, export each connector to JSON (this captures the *decrypted* credentials in transit; keep the export file in a secure location and delete it after step 5). diff --git a/SUPPORT.md b/.github/SUPPORT.md similarity index 81% rename from SUPPORT.md rename to .github/SUPPORT.md index a5e30fc0..5c154eb8 100644 --- a/SUPPORT.md +++ b/.github/SUPPORT.md @@ -14,12 +14,12 @@ The fastest answers usually come from other users. Before opening an issue, chec ## Documentation -- **[README](README.md)** — overview and quick start +- **[README](../README.md)** — overview and quick start - **[anythingmcp.com](https://anythingmcp.com)** — website with 150+ guides for individual adapters and AI clients (English / German / Italian) -- **[Deployment Guide](docs/deployment.md)** — production self-hosting -- **[API Reference](docs/api-reference.md)** — full REST API -- **[Tool Definition Format](docs/tool-definition.md)** — how adapter JSON files are structured -- **[License FAQ](docs/license-faq.md)** — what the AGPL-3.0 license means in practice +- **[Deployment Guide](../docs/deployment.md)** — production self-hosting +- **[API Reference](../docs/api-reference.md)** — full REST API +- **[Tool Definition Format](../docs/tool-definition.md)** — how adapter JSON files are structured +- **[License FAQ](../docs/license-faq.md)** — what the AGPL-3.0 license means in practice ## Bug reports diff --git a/.github/repo-about.txt b/.github/repo-about.txt index 281e2089..f58bf181 100644 --- a/.github/repo-about.txt +++ b/.github/repo-about.txt @@ -1 +1 @@ -Turn any REST, SOAP, GraphQL, OData or SQL API into MCP tools for Claude & ChatGPT. Self-hosted. {adapters} connectors: SAP S/4HANA & Business One, ERP, e-commerce. +Open-source, self-hosted MCP gateway: turn any REST/OpenAPI, SOAP, GraphQL, OData or SQL API into MCP tools for Claude, ChatGPT & Copilot. {adapters} connectors incl. SAP S/4HANA & Business One, ERP, e-commerce. diff --git a/LICENSING.md b/LICENSING.md index 465c8a5a..162a8968 100644 --- a/LICENSING.md +++ b/LICENSING.md @@ -29,6 +29,6 @@ Dates). ## Contributions Contributions are accepted under the [Contributor License -Agreement](CLA.md) — see [CONTRIBUTING.md](CONTRIBUTING.md). +Agreement](CLA.md) — see [CONTRIBUTING.md](.github/CONTRIBUTING.md). For commercial licensing inquiries: info@helpcode.ai diff --git a/README.de.md b/README.de.md index 48f94526..57298c24 100644 --- a/README.de.md +++ b/README.de.md @@ -2,15 +2,15 @@ AnythingMCP macht ERP-, E-Commerce-, REST-, SOAP- und SQL-Systeme zu MCP-Tools für Claude und ChatGPT: 265 Connectors, 21 davon ohne API-Schlüssel.

-

AnythingMCP

+

AnythingMCP: selbst gehostetes MCP-Gateway

English · Deutsch · 简体中文 · 日本語

- Mach aus jeder REST-/OpenAPI-, SOAP-, GraphQL- oder SQL-API MCP-Tools für Claude, ChatGPT und Copilot.
- Selbst gehosteter MCP-Server und MCP-Gateway, ohne Code. 265 fertige Adapter, auch für ERP und E-Commerce: SAP Business One, Xentral, weclapp, Shopware, WooCommerce, Amazon Seller, Kaufland und viele mehr. + AnythingMCP ist ein quelloffenes, selbst gehostetes MCP-Gateway, das jedes REST-/OpenAPI-, SOAP-, GraphQL-, OData- oder SQL-System in MCP-Tools für Claude, ChatGPT und Copilot verwandelt, ohne dass du einen MCP-Server programmierst.
+ Es bringt 265 fertige Adapter mit, darunter SAP, Odoo, Xentral, weclapp, Shopware, WooCommerce und Amazon Seller; 21 davon kommen ohne API-Schlüssel aus.

@@ -20,35 +20,15 @@ Docker pulls

-**Eine Frage in Claude, beantwortet aus Etsy, SAP und einer Logistik-API.** AnythingMCP bindet den Shop aus dem Marktplatz an, SAP S/4HANA über OData und eine REST-API über ihre OpenAPI-Spezifikation. Danach arbeitet Claude mit allen drei Systemen: -

- AnythingMCP-Demo: Etsy aus dem Marktplatz installiert, SAP S/4HANA als OData-Connector angelegt, eine Logistik-API aus ihrer OpenAPI-Spezifikation importiert. Danach beantwortet Claude, welche Etsy-Bestellungen hängen und ob SAP genug Bestand für einen Ersatzversand hat + Die Cloud 7 Tage kostenlos testen · Selbst betreiben · Doku · Connector-Anleitungen · Discussions

-

▶ Die ganze Demo ansehen (2:40, mit Ton)

- -**Selbst ausprobieren** — drei Zeilen, ohne das Repository zu klonen, [Details weiter unten](#run-it-yourself): - -```bash -mkdir anythingmcp && cd anythingmcp -curl -fsSLo docker-compose.yml \ - https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env -docker compose up -d # → http://localhost:3000 -``` - ---- - -Drei Begriffe tauchen immer wieder auf und bezeichnen unterschiedliche Dinge: - -- Ein **Adapter** ist eine der 265 JSON-Definitionen in diesem Repository — SAP Business One, Odoo, weclapp, Xentral, Shopware, WooCommerce, Amazon Seller, DHL und viele weitere. 21 davon benötigen überhaupt keinen API-Schlüssel; bei den anderen gibst du deine Zugangsdaten beim Import an. -- Ein **Connector** entsteht, wenn du einen Adapter oder deine eigene OpenAPI-Spezifikation, Postman-Collection, WSDL, einen GraphQL-Endpunkt oder eine Datenbank in deinem Workspace konfigurierst. In wenigen Minuten lässt sich so eine Verbindung einrichten, ohne einen MCP-Server zu programmieren. -- Ein **MCP-Server** ist die URL, die du Claude übergibst. Er stellt ausschließlich die Connectors bereit, die du ihm zuweist. +**Eine Frage in Claude, beantwortet aus Etsy, SAP und einer Logistik-API.** Die Demo installiert Etsy aus dem Katalog, bindet SAP S/4HANA über OData an und importiert eine Logistik-API aus ihrer OpenAPI-Spezifikation. Danach arbeitet Claude mit allen drei Systemen (2:40, mit Ton, auf Englisch): -Alles läuft auf deiner Infrastruktur. Du entscheidest also, welche Daten sie verlassen. Das Response-Mapping legt für jedes Tool fest, welche Felder das Modell erreichen dürfen. Gespeicherte Zugangsdaten werden mit AES-256-GCM verschlüsselt; das Audit-Log bewahrt die vollständige Antwort des angebundenen Systems bei dir auf. OAuth2, RBAC, SSO und SCIM sind im selbst gehosteten Build enthalten und werden nicht einem kostenpflichtigen Tarif vorbehalten. +https://github.com/user-attachments/assets/cc8c9ef3-11cf-4eab-aa4d-98472dc554b3 -**Im produktiven Einsatz bei [KOCH Freiburg GmbH](https://www.kochfreiburg.de/)**: Dort verbindet AnythingMCP KI-Assistenten mit mehr als 15 internen Systemen — ERP, CRM, SOAP-Diensten und lokalen Datenbanken. [helpcode.ai](https://helpcode.ai) aus Freiburg hat AnythingMCP aus diesem System herausgelöst und als Open Source veröffentlicht, weil ein Adapterkatalog in einer Community schneller wächst als im Alleingang. +**Im produktiven Einsatz bei [KOCH Freiburg GmbH](https://www.kochfreiburg.de/)**: Dort verbindet AnythingMCP KI-Assistenten mit mehr als 15 internen Systemen, von ERP und CRM bis zu SOAP-Diensten und lokalen Datenbanken. [helpcode.ai](https://helpcode.ai) hat es aus diesem System herausgelöst und als Open Source veröffentlicht, weil ein Adapterkatalog in einer Community schneller wächst als im Alleingang. --- @@ -56,7 +36,7 @@ Alles läuft auf deiner Infrastruktur. Du entscheidest also, welche Daten sie ve ## Selbst betreiben -**Der empfohlene Weg**, auf dem auch die unten genannten Messungen beruhen. Benötigt werden Docker 24+ und `openssl`; starte unter macOS zuerst Docker Desktop. +Voraussetzungen: Docker 24+ und `openssl`; unter macOS vorher Docker Desktop starten. Klonen ist nicht nötig: ```bash mkdir anythingmcp && cd anythingmcp @@ -66,26 +46,20 @@ printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl docker compose up -d ``` -Öffne und registriere dich — **das erste Konto erhält Administratorrechte**. + öffnen und registrieren: **Das erste Konto wird Admin.** Der MCP-Endpunkt ist `http://localhost:4000/mcp`, die API-Doku liegt unter `http://localhost:4000/api/docs`. -> **Bewahre die erzeugte `.env` auf.** Mit `ENCRYPTION_KEY` werden die gespeicherten Zugangsdaten entschlüsselt. Geht dieser Schlüssel verloren, musst du die Zugangsdaten für jeden Connector neu hinterlegen. Sichere ihn dort, wo du auch deine anderen Geheimnisse aufbewahrst. - -| Dienst | Standard-URL | -|---|---| -| Weboberfläche | `http://localhost:3000` | -| MCP-Endpunkt | `http://localhost:4000/mcp` | -| Swagger-Dokumentation | `http://localhost:4000/api/docs` | +> **Bewahre die erzeugte `.env` auf.** Mit dem `ENCRYPTION_KEY` werden deine gespeicherten Zugangsdaten entschlüsselt. Geht er verloren, musst du jeden Connector neu mit Zugangsdaten versehen. -*Auf amd64 gemessen: 31 s für den Image-Download, 24 s bis zu einer betriebsbereiten API und einer Anmeldeseite. Das veröffentlichte Image unterstützt vorerst nur amd64. Die Compose-Datei legt die Plattform deshalb ausdrücklich fest, sodass es auf Apple Silicon unter der Emulation von Docker Desktop läuft. Derselbe Start dauerte auf einem Laptop mit M-Chip 24 s; auf älterer Hardware kann er einige Minuten beanspruchen.* +Auf amd64 ist das Image in etwa 30 s geladen, 24 s später ist die API bereit. Das Image gibt es vorerst nur für amd64; die Compose-Datei legt die Plattform fest, sodass es auf Apple Silicon per Emulation läuft. -Der Schnellstart bindet die Dienste bewusst an `127.0.0.1`: Es gibt davor noch keine TLS-Terminierung. **Für eine Instanz, die andere Personen oder ein KI-Client aus der Cloud erreichen können sollen**, klone das Repository und führe `./setup.sh` aus. Das Skript fragt nach einer Domain, beschafft Zertifikate über Caddy, erzeugt die Geheimnisse und legt den MCP-Authentifizierungsmodus fest. Siehe die [Deployment-Anleitung](docs/deployment.md). +Der Quickstart bindet absichtlich nur an `127.0.0.1`, weil davor nichts TLS terminiert. **Für eine Instanz, die andere Personen oder ein Cloud-KI-Client erreichen sollen**, klonst du das Repository und startest `./setup.sh`: Es fragt nach einer Domain, holt Zertifikate über Caddy, erzeugt die Secrets und setzt den MCP-Auth-Modus. Siehe [Deployment-Anleitung](docs/deployment.md).
-Weitere Deployment-Möglichkeiten — verwaltete Cloud, Railway, DigitalOcean +Weitere Betriebsarten: Managed Cloud, Railway, DigitalOcean
-[**AnythingMCP Cloud**](https://cloud.anythingmcp.com) verwendet denselben AGPL-Code und wird von uns in **Frankfurt, Deutschland** betrieben. Damit kannst du es mit deinen eigenen APIs ausprobieren, ohne selbst Infrastruktur bereitzustellen. Wenn die Zugangsdaten dein Unternehmen nicht mehr verlassen sollen, ziehst du die Installation zu dir um — die Connectors bleiben dieselben. Eine DPA/AVV ist auf Anfrage über [info@helpcode.ai](mailto:info@helpcode.ai) erhältlich. SSO und SCIM stehen nur beim Self-Hosting zur Verfügung. +[**AnythingMCP Cloud**](https://cloud.anythingmcp.com) ist derselbe AGPL-Code, von uns in **Frankfurt** betrieben, mit 7 Tagen kostenlosem Test. Probier es dort mit deinen eigenen APIs aus und hol es ins eigene Haus, sobald die Zugangsdaten nicht mehr reisen sollen; die Connectors bleiben dieselben. AVV/DPA auf Anfrage über [info@helpcode.ai](mailto:info@helpcode.ai). SSO und SCIM gibt es nur selbst gehostet. [![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/deploy/8-X4WD?referralCode=k30bPV&utm_medium=integration&utm_source=template&utm_campaign=generic)   @@ -95,49 +69,59 @@ Der Schnellstart bindet die Dienste bewusst an `127.0.0.1`: Es gibt davor noch k --- - - -## Jedes System anbinden - -Die meisten Unternehmen haben noch keine MCP-Server. Sie haben eine REST-API, ein ERP, einen SOAP-Dienst und eine Datenbank. Aus jedem dieser Systeme werden MCP-Tools, und eine einzige MCP-Server-URL stellt sie Claude, ChatGPT oder Copilot bereit. - - - -### OpenAPI / REST-API zu MCP - -Importiere eine OpenAPI-3.x- oder Swagger-2.0-Spezifikation per URL oder durch Einfügen, und jede Operation wird zu einem MCP-Tool, bei dem Parameter, Authentifizierung und Endpunkt-Zuordnung bereits ausgefüllt sind. Im visuellen Editor gibst du den Tools passende Namen und Beschreibungen, damit das Modell das richtige auswählt. [Dokumentation zum REST-Connector](docs/connectors/rest.md) · [Anleitung](https://anythingmcp.com/de/guides/rest-api-to-mcp) · [5-Minuten-Demo: openapi-to-mcp](https://github.com/HelpCode-ai/openapi-to-mcp) + - +## So funktioniert es -### SOAP / WSDL zu MCP +1. **Connector anlegen.** Installiere einen **Adapter** aus dem Katalog (eine fertige JSON-Definition für SAP, Odoo, DHL und viele weitere) oder gib AnythingMCP deine eigene OpenAPI-Spezifikation, WSDL, deinen GraphQL-Endpunkt, eine Postman-Collection oder eine Datenbank. In deinem Workspace konfiguriert, ist das ein **Connector**, und jede seiner Operationen ist ein MCP-Tool. +2. **Festlegen, was das Modell sieht.** Tools im visuellen Editor umbenennen und beschreiben, Felder entfernen, die dein Netz nicht verlassen dürfen, und bestimmen, welche Rollen welche Tools aufrufen dürfen. +3. **Eine URL an den KI-Client geben.** Ein **MCP-Server** ist der Endpunkt, den du in Claude, ChatGPT, Copilot, Gemini oder Cursor einträgst. Er stellt nur die Connectors bereit, die du ihm zuweist. -Gib AnythingMCP eine WSDL, und jede SOAP-Operation wird zu einem Tool: Envelopes, Parameterreihenfolge und WCF-Dienste übernimmt AnythingMCP für dich, mit Basic-, Bearer- oder API-Key-Authentifizierung. So bringst du einen SOAP-Dienst aus dem Jahr 2009 in Minuten statt Wochen vor ein Modell von 2026. [Dokumentation zum SOAP-Connector](docs/connectors/soap.md) · [Anleitung](https://anythingmcp.com/de/guides/soap-to-mcp) · [5-Minuten-Demo: soap-to-mcp](https://github.com/HelpCode-ai/soap-to-mcp) +--- - + -### SQL-Datenbank zu MCP +## Jede API, jeden SOAP-Dienst und jede Datenbank anbinden -PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, SAP HANA, SQLite und MongoDB. Der Connector erzeugt Tools für Schema, Beispiele und Abfragen; du entscheidest, ob das Modell selbst SQL schreibt oder nur die Parameter von Abfragen ausfüllt, die du vorgegeben hast. Die Abfrage-Tools sind standardmäßig schreibgeschützt: AnythingMCP führt ein einzelnes SELECT aus und blockiert Schreibzugriffe und verkettete Statements. Gib ihm zusätzlich einen Datenbankbenutzer mit reinem Lesezugriff und eine Rolle, die nur die Tools sieht, die sie wirklich braucht. [Dokumentation zum Datenbank-Connector](docs/connectors/database.md) · [Anleitung](https://anythingmcp.com/de/guides/database-to-mcp) · [5-Minuten-Demo: sql-to-mcp](https://github.com/HelpCode-ai/sql-to-mcp) +Die meisten Unternehmen haben noch keine MCP-Server. Sie haben eine REST-API, ein ERP, einen SOAP-Dienst von 2009 und eine Datenbank. Aus jedem davon werden MCP-Tools: - +| Quelle | Was du bekommst | Doku | +|---|---|---| +| **OpenAPI / Swagger (REST)** | Spezifikation per URL importieren oder einfügen; jede Operation wird ein Tool, Parameter, Auth und Endpunkt-Mapping sind schon ausgefüllt | [REST](docs/connectors/rest.md) · [Anleitung](https://anythingmcp.com/de/guides/rest-api-to-mcp) · [Demo: openapi-to-mcp](https://github.com/HelpCode-ai/openapi-to-mcp) | +| **Postman-Collection, cURL** | Ordner, Auth, Body-Modi und `{{variables}}` werden übernommen; jeder Request wird ein Tool | [Postman-Import](docs/connectors/rest.md#from-postman-collection) | +| **SOAP / WSDL** | Jede Operation wird ein Tool; Envelopes, Parameterreihenfolge und WCF-Dienste übernimmt AnythingMCP | [SOAP](docs/connectors/soap.md) · [Anleitung](https://anythingmcp.com/de/guides/soap-to-mcp) · [Demo: soap-to-mcp](https://github.com/HelpCode-ai/soap-to-mcp) | +| **GraphQL** | Introspection macht aus Queries und Mutations Tools, oder du definierst die Operationen selbst | [GraphQL](docs/connectors/graphql.md) · [Anleitung](https://anythingmcp.com/de/guides/graphql-to-mcp) | +| **OData** (inklusive SAP Gateway) | Liest das `$metadata` jedes Dienstes, sodass das Modell Entitätsmengen, Schlüssel und die fachlichen SAP-Bezeichnungen sieht; V2 und V4 | [OData](docs/connectors/odata.md) · [Anleitung](https://anythingmcp.com/de/guides/odata-to-mcp) | +| **SQL und MongoDB** | PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, SAP HANA, SQLite und MongoDB: Schema-, Beispiel- und Abfrage-Tools, standardmäßig nur lesend | [Datenbank](docs/connectors/database.md) · [SAP HANA](docs/connectors/sap-hana.md) · [Anleitung](https://anythingmcp.com/de/guides/database-to-mcp) · [Demo: sql-to-mcp](https://github.com/HelpCode-ai/sql-to-mcp) | +| **Ein anderer MCP-Server** | Seine Tools erkennen und neben deinen eigenen bereitstellen, hinter derselben Authentifizierung und demselben Audit | [MCP-Bridge](docs/connectors/mcp-bridge.md) | -### GraphQL zu MCP +Tools werden zur Laufzeit registriert, ohne Neustart. `{{VAR}}`-Werte pro Connector werden auf dem Server eingesetzt und der KI nie gezeigt. -Per Introspection werden die Queries und Mutations eines GraphQL-Endpunkts zu MCP-Tools, oder du definierst die Operationen selbst. [Dokumentation zum GraphQL-Connector](docs/connectors/graphql.md) · [Anleitung](https://anythingmcp.com/de/guides/graphql-to-mcp) +--- - + -### Postman-Collection zu MCP +## Connector-Katalog -Importiere eine Postman-Collection im Format v2.1: Ordner, Authentifizierung, Body-Modi und `{{variables}}` werden übernommen, und jeder Request wird zu einem Tool. Mit cURL-Befehlen funktioniert es genauso. [Dokumentation zum Postman-Import](docs/connectors/rest.md#from-postman-collection) +265 Adapter mit über 2.400 Tools. Zu jedem gibt es eine Einrichtungsanleitung auf [anythingmcp.com/de/guides](https://anythingmcp.com/de/guides), in sieben Sprachen. ---- +| Kategorie | Beispiele | +|---|---| +| 💼 ERP, Buchhaltung & Rechnungen | SAP Business One, SAP S/4HANA, Odoo, weclapp, Xentral, Dynamics NAV, Lexware Office, sevDesk, Exact Online, bexio | +| 🛍️ E-Commerce & Marktplätze | Amazon Seller, WooCommerce, Shopware 6, Magento, eBay, Etsy, Kaufland, OTTO, Oxomi | +| 📦 Logistik & Versand | Deutsche Bahn, DHL, DPD, GLS, Shipcloud, Sendcloud | +| 👥 HR & Außendienst | Personio, HRWorks, Kenjo, MFR Mobile Field Report | +| 🏛️ Behörden & offene Daten | VIES-USt-IdNr., Handelsregister, UK Companies House, DESTATIS, Bundesbank, OpenPLZ, NINA | +| 🏦 Banking & Zahlungen | Revolut Business, Wise, PAYONE, Razorpay, Paystack | +| 💬 Messaging | WhatsApp, LINE, TeamViewer | +| 📈 Werbung & Analytics | Google Ads, Google Analytics 4, Google Search Console, Matomo | +| 🧠 KI-Entscheidungsmodelle | Jev von TypeSafe: Ja/Nein, Klassifikation und Scoring mit Wahrscheinlichkeiten, in etwa 300 ms | +
+ERP-Connectors: 18 Systeme mit Tools und Märkten -## ERP-Connectors - -Fertige Adapter für die ERP-Systeme, in denen die meisten Fragen zu Aufträgen, Beständen und Rechnungen ihre Antwort finden. Adapter installieren, Zugangsdaten eintragen, und die Tools stehen auf deinem MCP-Server bereit. Jeder Name führt zur passenden Einrichtungsanleitung. +
| System | Markt | Tools | Was die KI damit kann | |---|---|---|---| @@ -164,15 +148,13 @@ Fertige Adapter für die ERP-Systeme, in denen die meisten Fragen zu Aufträgen, **Repositories:** [erp-mcp-server](https://github.com/HelpCode-ai/erp-mcp-server) · [weclapp-mcp-server](https://github.com/kochfreiburg/weclapp-mcp-server) · [odoo-mcp-server](https://github.com/keysersoft/odoo-mcp-server) · [sap-mcp-server](https://github.com/HelpCode-ai/sap-mcp-server) · [sap-hana-mcp-server](https://github.com/HelpCode-ai/sap-hana-mcp-server) · [sap-business-one-mcp-server](https://github.com/HelpCode-ai/sap-business-one-mcp-server) · [xentral-mcp-server](https://github.com/kochfreiburg/xentral-mcp-server) -**Dein ERP ist nicht dabei, oder es ist eine Eigenentwicklung bzw. läuft on-premises?** Binde es über seine [REST-API](#openapi--rest-api-to-mcp), seine [SOAP-Dienste](#soap--wsdl-to-mcp) oder direkt über seine [SQL-Datenbank](#sql-database-to-mcp) an, mit reinem Lesezugriff. So betreibt [KOCH Freiburg](https://www.kochfreiburg.de/) sein ERP im Produktivbetrieb. - ---- +
+
+E-Commerce- & Marktplatz-Connectors: 13 Shops und Marktplätze -## E-Commerce- & Marktplatz-Connectors - -Shops und Marktplätze, von Amazon und eBay bis zu den Marktplätzen im DACH-Raum. Jeder Name führt zur passenden Einrichtungsanleitung. +
| System | Markt | Tools | Was die KI damit kann | |---|---|---|---| @@ -194,78 +176,23 @@ Shops und Marktplätze, von Amazon und eBay bis zu den Marktplätzen im DACH-Rau **Repositories:** [ecommerce-mcp-server](https://github.com/HelpCode-ai/ecommerce-mcp-server) · [amazon-seller-mcp-server](https://github.com/keysersoft/amazon-seller-mcp-server) · [billbee-mcp-server](https://github.com/kochfreiburg/billbee-mcp-server) · [magento-mcp-server](https://github.com/keysersoft/magento-mcp-server) · [woocommerce-mcp-server](https://github.com/keysersoft/woocommerce-mcp-server) · [shopware-mcp-server](https://github.com/kochfreiburg/shopware-mcp-server) · [kaufland-mcp-server](https://github.com/kochfreiburg/kaufland-mcp-server) · [otto-market-mcp-server](https://github.com/kochfreiburg/otto-market-mcp-server) ---- - -## Was AnythingMCP verbindet, steuert und lernt - -### Verbinden - -- **6 Connector-Typen** — [REST](docs/connectors/rest.md), [SOAP](docs/connectors/soap.md), [GraphQL](docs/connectors/graphql.md), [OData](docs/connectors/odata.md) (inklusive SAP Gateway), [Datenbank](docs/connectors/database.md), [MCP-zu-MCP-Brücke](docs/connectors/mcp-bridge.md). Acht Datenbank-Engines: PostgreSQL, MySQL, MariaDB, MSSQL, Oracle, SAP HANA, MongoDB, SQLite. -- **Vorhandenes importieren** — OpenAPI/Swagger, Postman, cURL, WSDL, GraphQL-Introspection oder die Tool-Erkennung direkt an einem laufenden MCP-Server. -- **Der Adapterkatalog** — [was bereits enthalten ist](#the-adapter-catalog). -- **Visueller Tool-Editor** — ordne Parameter dem Pfad, Query-Parametern, Request-Body und Headern zu. Benenne und beschreibe Tools so, dass die KI sie wie beabsichtigt versteht. -- **Dynamischer MCP-Server** — Tools werden zur Laufzeit registriert, ohne Neustart. `{{VAR}}`-Interpolation pro Connector, für die KI verborgen. - -### Steuern - -- **[Antworten gezielt formen](#control-what-the-model-sees)** — lege für jedes Tool genau fest, welche Felder das Modell erreichen, mit einer direkten Vorher-Nachher-Vorschau. -- **Nur lesen, wo es darauf ankommt.** Jedes Tool trägt MCP-Annotationen (`readOnlyHint`, `destructiveHint`), die aus der Operation abgeleitet und pro Tool überschrieben werden können. So kann ein Client unterscheiden, ob eine Rechnung gelesen oder eine Gutschrift erstellt wird. Rollenbasierte Tool-Freigaben ermöglichen einen MCP-Server, der ausschließlich lesen darf — für die meisten ERP-Anbindungen der richtige Einstieg. -- **Alle gängigen Authentifizierungsverfahren** — OAuth2 (PKCE und Client Credentials), Bearer, API Key, Basic, HMAC-Signaturen, [LOGIN_TOKEN](docs/connectors/login-token-auth.md) und OAuth 1.0a. -- **Audit-Logging** — jeder Tool-Aufruf wird mit Eingabe, Ausgabe, Dauer und Status in deiner eigenen Datenbank protokolliert. -- **[SSO](docs/sso.md) und [SCIM](docs/scim-entra-setup.md)** — Entra ID, Google, Okta, Auth0 und generisches OIDC. Rollen werden bei jeder Anmeldung mit den Gruppen deines Verzeichnisdienstes synchronisiert. Deaktivierst du dort eine Person, verlieren auch ihr Workspace-Zugriff und ihre MCP-API-Schlüssel ihre Gültigkeit (nur beim Self-Hosting). - -### Lernen - -- **[Knowledge Graph](docs/knowledge-graph.md)** — eine PII-sichere Übersicht pro Workspace darüber, wie die Daten deiner Connectors zusammenhängen. Sie wird dem Agenten als MCP-Tool bereitgestellt, damit er Aufrufe über mehrere Systeme hinweg richtig verknüpft. -- **[KI-Skills](docs/knowledge-graph.md)** — wiederkehrende Nutzungsmuster werden zu kleinen, wiederverwendbaren Regeln, die in die Anweisungen des Servers einfließen. Sie leiten den Agenten an, ohne einen zusätzlichen Tool-Aufruf zu benötigen (optional, muss aktiviert werden). - ---- - -## AnythingMCP im Vergleich - -AnythingMCP ist ein MCP-Gateway, das einen Schritt früher ansetzt: Es erzeugt die MCP-Server aus den APIs, ERP-Systemen und Datenbanken, die du bereits betreibst, und stellt sie dann hinter einem einzigen Endpunkt bereit, mit begrenztem Zugriff und Audit-Log. Die anderen MCP-Gateways bündeln und sichern MCP-Server, die schon vorhanden sind, doch die meisten Unternehmen haben noch gar keine — sondern eine REST-API, einen SOAP-Dienst aus dem Jahr 2009 und eine Datenbank, die niemand direkt zugänglich machen möchte. Jedes der folgenden Projekte löst ein echtes Problem, nur eben nicht dasselbe. - -| | Was es ist | Wähle es stattdessen, wenn … | -|---|---|---| -| **[ContextForge](https://github.com/IBM/mcp-context-forge)** (IBM) | Föderation und Registry vor bereits vorhandenen MCP-Servern | Deine Tools bereits MCP-Server sind und du Föderation, virtuelle Server und eine Registry brauchst | -| **[Docker MCP Gateway](https://github.com/docker/mcp-gateway)** | Führt MCP-Server aus einem Katalog als Container hinter einem Endpunkt aus, einschließlich Verwaltung von Geheimnissen | Du von Anbietern veröffentlichte MCP-Server in Docker isolieren möchtest und der vorhandene Katalog deinen Bedarf abdeckt | -| **[MetaMCP](https://github.com/metatool-ai/metamcp)** | Bündelt MCP-Server in Endpunkten mit getrennten Namensräumen und einer Middleware-Schicht | Du hauptsächlich vorhandene MCP-Server pro Client gruppieren und deren Zugriffsbereich neu festlegen möchtest | -| **[Composio](https://github.com/ComposioHQ/composio)** | Ein gehosteter Katalog verwalteter Integrationen, bei dem die Authentifizierung für dich übernommen wird | Dir ein fester verwalteter Katalog genügt und du keinen eigenen SOAP-Dienst, keine interne API und keine eigene Datenbank anbinden musst | -| **AnythingMCP** | Macht die bereits eingesetzten APIs, SOAP-Dienste und Datenbanken zu MCP-Tools | Deine Systeme **noch keine** MCP-Server sind und du selbst entscheiden möchtest, ob die Zugangsdaten bei dir bleiben | - -Vergleichsseiten mit vollständigen Funktionstabellen: [anythingmcp.com/vs](https://anythingmcp.com/vs). - ---- - - - -## Knowledge Graph & KI-Skills - -Das reine Weiterleiten von Aufrufen überlässt dem Agenten den schwierigen Teil: Welches Tool kommt als Nächstes, und was bedeutet in deinem Unternehmen eigentlich „offener Auftrag“ oder „aktiver Kunde“? AnythingMCP lernt beides — **wie die Daten deiner Connectors zusammenhängen** und **wie dein Team die Tools tatsächlich nutzt** — und gibt dieses Wissen als Kontext an den KI-Client zurück, statt zusätzliche Tool-Aufrufe zu erfordern. - -- **Knowledge Graph** — eine Übersicht pro Workspace über *Entitäten* (Kunden, Aufträge, Produkte …) und ihre *Beziehungen*. Sie entsteht aus Tool-Namen, Parametern sowie den Ein- und Ausgaben tatsächlicher Aufrufe. Ein optionaler KI-Durchlauf erschließt Verbindungen zwischen Connectors, die Heuristiken übersehen. Der Graph bleibt **PII-sicher**: Er speichert Entitäts- und Feld*namen* sowie Beziehungsmetadaten, niemals die Werte. -- **Visuell aufbauen** — mit einem Graph-Editor kannst du Entitäten und Verbindungen selbst anlegen, bearbeiten und löschen, Beschreibungen ergänzen und KI-Vorschläge prüfen. -- **Über MCP bereitstellen** — jeder Server stellt ein `kg_how_to_obtain`-Tool bereit. Damit kann der Agent *des Kunden* beispielsweise fragen: „Wie komme ich von einer Shopware-Bestellung zu einer DHL-Sendungsnummer?“ und erhält Hinweise zur Verknüpfung der Connectors. -- **KI-Skills aus der tatsächlichen Nutzung** — bei aktivierter Absichtserfassung kann jeder Tool-Aufruf festhalten, *warum* er erfolgte. Ein KI-Durchlauf macht aus wiederkehrenden Mustern kleine, wiederverwendbare Regeln (etwa: *„Der heutige Umsatz umfasst Aufträge mit den Statuswerten 2, 3 und 4“*). Du kannst jede Regel übernehmen, bearbeiten oder verwerfen, oder Vorschläge mit hoher Konfidenz automatisch übernehmen lassen. Übernommene Skills werden beim Bereitstellen in die **Anweisungen** des MCP-Servers eingefügt und leiten den Agenten an, **ohne einen einzigen zusätzlichen Tool-Aufruf**. Das Wissen, das dein Team durch die Nutzung aufbaut, bleibt nicht mehr nur in den Köpfen einzelner Personen. - -Die KI-Durchläufe sind **standardmäßig ausgeschaltet**. Du aktivierst sie über ein globales Umgebungsflag *und* einen Schalter im jeweiligen Workspace; unterstützt werden OpenAI, OpenRouter und Anthropic. Der Graph, die manuelle Bearbeitung und das MCP-Tool funktionieren auch ganz ohne LLM-Schlüssel. +
-➡️ **[Anleitung zu Knowledge Graph & KI-Skills →](docs/knowledge-graph.md)** +**Ein Adapter ist eine einzige JSON-Datei.** Deshalb ist der Katalog so groß, und deshalb ist ein neuer Adapter ein guter erster Beitrag. Deiner fehlt? [Wünsch ihn dir](https://github.com/HelpCode-ai/anythingmcp/issues/new?template=adapter_request.yml) (wir priorisieren nach 👍) oder [bau ihn](.github/CONTRIBUTING.md). Dein ERP ist nicht dabei oder eine Eigenentwicklung? Binde seine REST-API, seine SOAP-Dienste oder direkt seine SQL-Datenbank an, nur lesend. --- - + -## Bestimme, was das Modell sieht +## Sicherheit und Governance -Für jedes Tool lässt sich **genau festlegen, welche Felder deine Infrastruktur verlassen**. Das Mapping wird pro Tool hinterlegt und auf die ausgehende Antwort angewendet. Der KI-Client — und das dahinterliegende Modell eines Drittanbieters — erhält damit nur die von dir freigegebene Datenstruktur. +Alles läuft auf deiner Infrastruktur, du entscheidest also, was sie verlässt. OAuth2, RBAC, SSO und SCIM sind im selbst gehosteten Build enthalten und werden nicht einem kostenpflichtigen Tarif vorbehalten. -- **Entferne, was bei dir bleiben soll.** Gib die zu entfernenden Pfade an. Die entsprechenden Felder werden vor der Übergabe an den Agenten herausgefiltert: etwa die IBAN eines Kunden, das Gehalt eines Mitarbeiters oder ein Zugriffstoken, das eine API zusammen mit den Daten zurückgibt. -- **Oder definiere die gesamte Ausgabe.** Eine `select`-Vorlage legt fest, welche Felder erhalten bleiben und wie sie heißen sollen. Für Umformungen, die eine solche Vorlage nicht abdeckt, steht ein JMESPath-Ausdruck zur Verfügung. Wenn eine stabile Struktur für den Agenten hilfreicher ist, ersetze den Wert durch einen Platzhalter (`"iban": "= [redacted]"`), statt das Feld zu entfernen. -- **Prüfe das Ergebnis vor dem Speichern.** Der Editor wendet das Mapping auf eine echte Antwort an und zeigt Original und Ergebnis samt Größenunterschied nebeneinander. Bei einem mitgelieferten Adapter ergibt eine Antwort mit vier Zügen **12.172 B → 1.072 B (−91 %)**. -- **Standardmäßig wird bei Fehlern die Rohantwort weitergegeben — das wird ausdrücklich so benannt.** Schlägt ein Mapping zur Laufzeit fehl, werden die unveränderte Antwort und eine Warnung ausgegeben, damit ein einzelner fehlerhafter Ausdruck ein funktionierendes Tool nicht lahmlegt. Für Felder, die die Infrastruktur unter keinen Umständen verlassen dürfen, ist dieser Standard ungeeignet: Setze bei diesen Tools **`"fallbackToRaw": false`**. Ein fehlerhaftes Mapping lässt dann den Aufruf scheitern, statt die Daten ungefiltert weiterzugeben. - -Das bringt zwei Vorteile zugleich: Sensible Felder gelangen nicht zum Modell, und jedes entfernte Feld spart Kosten im Kontextfenster. +- **Response-Mapping.** Jedes Tool legt fest, welche Felder das Modell erreichen: die IBAN eines Kunden oder das Gehalt einer Mitarbeiterin entfernen, oder die Felder benennen, die bleiben. Der Editor zeigt Vorher und Nachher an einer echten Antwort; ein mitgelieferter Adapter schrumpft von 12.172 B auf 1.072 B (−91 %), du zahlst diese Felder also auch nicht im Kontextfenster. Ein fehlerhaftes Mapping liefert standardmäßig die Rohantwort; setze `"fallbackToRaw": false` bei Tools, deren Felder niemals rausgehen dürfen, dann schlägt der Aufruf stattdessen fehl. +- **Nur lesend, wo es darauf ankommt.** Jedes Tool trägt MCP-Annotationen (`readOnlyHint`, `destructiveHint`), aus der Operation abgeleitet und pro Tool überschreibbar. Mit rollenbasierten Tool-Whitelists veröffentlichst du einen MCP-Server, der nur lesen kann; so sollten die meisten mit einem ERP anfangen. Datenbank-Abfrage-Tools führen ein einzelnes SELECT aus und blockieren Schreibzugriffe und verkettete Statements. +- **Jedes Auth-Verfahren, das dir begegnet.** OAuth2 (PKCE und Client Credentials), Bearer, API-Key, Basic, HMAC-Request-Signing, [LOGIN_TOKEN](docs/connectors/login-token-auth.md) und OAuth 1.0a. Zugangsdaten werden mit AES-256-GCM verschlüsselt gespeichert. +- **Audit-Log.** Jeder Tool-Aufruf wird mit Eingabe, Ausgabe, Dauer und Status in deiner eigenen Datenbank protokolliert, einschließlich der vollständigen Antwort des Quellsystems, die das Modell nie gesehen hat. +- **[SSO](docs/sso.md) und [SCIM](docs/scim-entra-setup.md).** Entra ID, Google, Okta, Auth0 oder jeder OIDC-Anbieter. Rollen werden bei jeder Anmeldung aus deinen Verzeichnisgruppen übernommen; wer im Verzeichnis deaktiviert wird, verliert Workspace-Zugang und MCP-API-Keys gleich mit. ```json { @@ -278,150 +205,102 @@ Das bringt zwei Vorteile zugleich: Sensible Felder gelangen nicht zum Modell, un } ``` -> Das Audit-Log speichert weiterhin die vollständige Antwort des angebundenen Systems in deiner eigenen Datenbank. Die Begrenzung dessen, was der Agent sieht, geht somit nicht zulasten des Nachweises, was die API tatsächlich zurückgegeben hat. - -➡️ **[Referenz zum Response-Mapping →](docs/tool-definition.md#3-response-mapping-optional)** +[Referenz zum Response-Mapping](docs/tool-definition.md#3-response-mapping-optional) --- -## Eigene Claude-Connectors erstellen — ohne Code + -Claude unterstützt **benutzerdefinierte Connectors**: entfernte MCP-Server, die du einmal unter *Customize → Connectors* hinzufügst und anschließend in Claude.ai, Claude Desktop und Claude Code nutzen kannst. AnythingMCP erzeugt einen solchen Connector **aus jeder bereits vorhandenen API** — ohne dass du einen MCP-Server programmieren musst: +## Mit Claude, ChatGPT, Copilot und Gemini nutzen -1. Importiere deine API-Spezifikation oder wähle einen fertigen Adapter. -2. Passe Tool-Namen, Beschreibungen und Parameter im **visuellen Editor** an — du bestimmst, was die KI sieht. -3. Füge die URL deines MCP-Servers als benutzerdefinierten Connector in Claude hinzu (OAuth 2.0 wird direkt unterstützt). +Derselbe MCP-Server funktioniert in jedem Client, der MCP spricht; du baust einen Connector also nur einmal: -Deine Zugangsdaten bleiben auf deiner Infrastruktur, jeder Tool-Aufruf erscheint im Audit-Log, und die rollenbasierte Zugriffskontrolle legt fest, welche Benutzer welche Tools sehen. [Schritt-für-Schritt-Anleitung →](docs/integrations/claude.md) +- **Claude.** Trag die Server-URL als **benutzerdefinierten Connector** unter *Customize → Connectors* ein; danach funktioniert er in Claude.ai, Claude Desktop und Claude Code. OAuth 2.0 wird direkt unterstützt. [Claude einrichten](docs/integrations/claude.md) +- **ChatGPT.** Apps in ChatGPT basieren auf MCP. Füge den Server in den Einstellungen von ChatGPT hinzu oder nutze ihn als Tool-Schicht einer Apps-SDK-App. [ChatGPT einrichten](docs/integrations/chatgpt.md) +- **Copilot, Gemini, Cursor** und andere MCP-Clients: [Anleitungen zur Client-Einrichtung](docs/guides.md). --- -## Deine API als ChatGPT-App bereitstellen - -**Apps in ChatGPT basieren auf MCP.** AnythingMCP liefert das dazugehörige MCP-Backend, ohne dass du es selbst schreiben musst. Verweise auf deinen REST-, SOAP-, GraphQL- oder Datenbank-Endpunkt, und du erhältst einen für ChatGPT geeigneten Connector. Füge ihn in den ChatGPT-Einstellungen hinzu oder verwende ihn als Tool-Schicht einer Apps-SDK-App, damit ChatGPT deine Geschäftsdaten lesen und mit ihnen arbeiten kann. + -Derselbe Connector funktioniert gleichzeitig in **Claude, ChatGPT, Gemini, Copilot und Cursor** — einmal erstellen, überall verbinden. [ChatGPT-Einrichtungsanleitung →](docs/integrations/chatgpt.md) - ---- +## Knowledge Graph und KI-Skills -## Warum AnythingMCP? +Wer Aufrufe nur weiterreicht, überlässt dem Agenten den schwierigen Teil: zu wissen, welches Tool als Nächstes dran ist und was dein Unternehmen mit „offener Auftrag" meint. AnythingMCP lernt beides und gibt es als Kontext zurück, nicht als zusätzliche Tool-Aufrufe. -KI-Clients sprechen MCP, deine Systeme dagegen REST, SOAP, GraphQL und SQL. Einen eigenen MCP-Server pro System zu schreiben und zu warten — einschließlich Authentifizierung, Audit und Zugriffskontrolle — kostet jeweils Wochen. AnythingMCP bildet die No-Code-Schicht dazwischen: +- **Knowledge Graph.** Eine Karte pro Workspace mit Entitäten (Kunden, Aufträge, Produkte) und ihren Beziehungen über Connectors hinweg, aufgebaut aus Tool-Definitionen und echten Aufrufen und von Hand bearbeitbar. Gespeichert werden Feldnamen und Beziehungen, nie Werte. Jeder Server stellt ihn über ein Tool `kg_how_to_obtain` bereit, damit der Agent fragen kann, wie er von einer Shopware-Bestellung zur DHL-Sendungsnummer kommt. +- **KI-Skills.** Wiederkehrende Nutzung wird zu kleinen Regeln („der heutige Umsatz umfasst die Auftragsstatus 2, 3 und 4"), die du übernimmst, bearbeitest oder verwirfst und die in die Anweisungen des Servers einfließen. -| Problem | Lösung | -|---|---| -| Du hast REST-APIs, aber KI-Clients sprechen MCP | **REST → MCP** mit OpenAPI-/Swagger-Import | -| Du hast ältere SOAP-/WSDL-Dienste | **SOAP → MCP** mit automatischem WSDL-Parsing | -| Du möchtest Datenbanken über KI-Agenten abfragen | **DB → MCP** mit automatisch erzeugten Abfrage-Tools (7 Engines) | -| Du möchtest einen Endpunkt für alle APIs | **MCP-Middleware**, die mehrere Connectors zusammenführt | -| Du brauchst einen MCP-Server für SAP Business One / Odoo / Shopware / … | **Der Adapterkatalog** — in einer Minute installieren und Zugangsdaten hinterlegen | -| Du kannst Zugangsdaten keinem Drittanbieter überlassen | **Betrieb auf deiner Infrastruktur**, Zugangsdaten mit AES-256-GCM verschlüsselt gespeichert | -| Du brauchst Authentifizierung, Audit-Logs und RBAC | **OAuth2, Audit-Log und rollenbasierter Zugriff** sind eingebaut | -| Ein Modell eines Drittanbieters würde jedes Feld der API-Antwort sehen | **[Response-Mapping pro Tool](#control-what-the-model-sees)** — Felder entfernen oder umformen, bevor sie dein Netzwerk verlassen | -| Dein Agent ruft Tools in der falschen Reihenfolge auf oder erkennt Beziehungen zwischen Systemen nicht | **[Knowledge Graph & KI-Skills](#knowledge-graph--ai-skills)** — Hinweise zur Aufrufreihenfolge und erlernte Geschäftsregeln als Kontext | - -**Was Menschen damit tatsächlich umsetzen** - -| | Anleitungen | -|---|---| -| Mit Claude auf das ERP zugreifen | [SAP Business One](https://anythingmcp.com/de/guides/connect-sap-business-one-to-claude) · [Odoo](https://anythingmcp.com/de/guides/connect-odoo-to-claude) · [weclapp](https://anythingmcp.com/de/guides/weclapp-to-mcp) · [Xentral](https://anythingmcp.com/de/guides/xentral-to-mcp) | -| Bestellungen, Bestände und Gebühren über Shops und Marktplätze hinweg prüfen | [Amazon Seller](https://anythingmcp.com/de/guides/connect-amazon-seller-to-claude) · [WooCommerce](https://anythingmcp.com/de/guides/connect-woocommerce-to-claude) · [Kaufland](https://anythingmcp.com/de/guides/connect-kaufland-to-claude) | -| Pakete verfolgen | [DHL](https://anythingmcp.com/guides/dhl-tracking-to-mcp) · [GLS](https://anythingmcp.com/guides/gls-tracking-to-mcp) | -| Eine Rechnung vor der Zahlung prüfen | [VIES VAT](https://anythingmcp.com/guides/vies-vat-to-mcp) · [Handelsregister](https://anythingmcp.com/guides/handelsregister-to-mcp) | -| Einen KI-Agenten mit reinem Lesezugriff auf eine Produktionsdatenbank ausstatten | [Datenbank-Connectors](docs/connectors/database.md) | -| Einen SOAP-Dienst aus dem Jahr 2009 mit einem Modell von 2026 verbinden | [SOAP → MCP](https://anythingmcp.com/guides/soap-to-mcp) | -| Zugverbindungen, aktuelle Verspätungen und Routen abfragen | [Deutsche Bahn](https://anythingmcp.com/guides/deutsche-bahn-to-mcp) | +Die KI-Durchläufe sind standardmäßig aus und nutzen deinen eigenen Schlüssel für OpenAI, OpenRouter oder Anthropic; Graph, Editor und MCP-Tool funktionieren auch ohne. [Anleitung zum Knowledge Graph](docs/knowledge-graph.md) --- - + -## Der Adapterkatalog +## Wo es hineinpasst -265 Adapter mit mehr als 2.400 Tools. **21 benötigen keinen API-Schlüssel**. Bei den übrigen gibst du deine Zugangsdaten beim Import an; danach stehen die Tools sofort bereit. Für jeden Adapter gibt es auf [anythingmcp.com/guides](https://anythingmcp.com/guides) eine Einrichtungsanleitung in sieben Sprachen. - -| Kategorie | Beispiele | -|---|---| -| 📦 Logistik & Versand | Deutsche Bahn, DHL, DPD, GLS, Shipcloud, Sendcloud | -| 💼 ERP, Buchhaltung & Rechnungsstellung | [SAP Business One, Odoo, weclapp, Xentral und 12 weitere ERP-Systeme](#erp-connectors), Lexware Office, sevDesk, Exact Online, bexio | -| 🛍️ E-Commerce | [Amazon Seller, WooCommerce, Shopware 6, Kaufland, OTTO und 8 weitere](#e-commerce--marketplace-connectors), Oxomi | -| 👥 Personalwesen & Außendienst | Personio, HRWorks, Kenjo, MFR Mobile Field Report | -| 🏛️ Behörden & öffentliche Daten | VIES VAT, Handelsregister, UK Companies House 🇬🇧, DESTATIS, Bundesbank, OpenPLZ, NINA | -| 🏦 Banking & Zahlungen | Revolut Business, Wise 🇬🇧, PAYONE, Razorpay 🇮🇳, Paystack 🇳🇬 | -| 💬 Messaging & Kommunikation | WhatsApp, LINE 🇯🇵, TeamViewer | -| 🎾 Sport & Web3 | Playtomic, Sorare | -| 🏗️ Bauwesen & Karten | PlanRadar, HERE Geocoding | -| 📈 Werbung & Analytics | Google Ads, Google Analytics 4, Google Search Console, Matomo | -| 🧠 KI-Entscheidungsmodelle | Jev von TypeSafe: Ja/Nein, Klassifizierung und Bewertung mit Wahrscheinlichkeiten, in rund 300 ms | - -**Ein Adapter besteht aus einer einzigen JSON-Datei.** Deshalb konnte der Katalog so groß werden, und deshalb eignet sich ein neuer Adapter gut als erster Beitrag. Fehlt deiner? [Schlage ihn vor](https://github.com/HelpCode-ai/anythingmcp/issues/new?template=adapter_request.yml) — wir priorisieren nach 👍 — oder [erstelle ihn selbst](CONTRIBUTING.md). +Die meisten MCP-Gateways bündeln und sichern MCP-Server, die du schon hast. AnythingMCP setzt einen Schritt früher an: Es erzeugt die MCP-Server aus den APIs, ERPs und Datenbanken, die du bereits betreibst, und stellt sie dann hinter einem Endpunkt bereit, mit Berechtigungen und Audit. Sind deine Tools schon MCP-Server und brauchst du nur die Bündelung, reicht womöglich ein reines Gateway. Direkte Vergleiche: [anythingmcp.com/de/vs](https://anythingmcp.com/de/vs). --- -## Anleitungen, Client-Einrichtung & FAQ - -➡️ **[docs/guides.md](docs/guides.md)** — Einrichtung von Claude / ChatGPT / Gemini / Copilot / Cursor · Anleitungen für REST-, SOAP-, GraphQL-, Datenbank- und MCP-Brücken-Connectors · API-Referenz & Deployment-Dokumentation · FAQ. - -Du suchst einen bestimmten Dienst? Für jeden Adapter gibt es eine Schritt-für-Schritt-Anleitung auf **[anythingmcp.com/guides](https://anythingmcp.com/guides)**. - ## FAQ -**Wie verbinde ich mein ERP (SAP Business One, Odoo, Xentral …) mit Claude oder ChatGPT?** -Installiere den Adapter deines ERP-Systems aus dem [Katalog](#erp-connectors), trage die API-Zugangsdaten ein und füge die URL deines MCP-Servers in Claude als benutzerdefinierten Connector oder in ChatGPT als App hinzu. Gibt es für dein ERP keinen Adapter, bindest du seine REST- oder SOAP-API oder seine SQL-Datenbank direkt an. Fang mit einer Rolle an, die nur lesen darf. +### Was ist ein MCP-Gateway? +Ein einzelner MCP-Endpunkt vor vielen Tools, der Authentifizierung, Zugriffskontrolle und Audit für alle übernimmt. KI-Clients wie Claude und ChatGPT verbinden sich mit dem Gateway statt mit jedem einzelnen System. AnythingMCP ist ein Gateway, das die Tools zusätzlich selbst erzeugt, aus APIs und Datenbanken, die keinen eigenen MCP-Server haben. -**Wie mache ich aus einer OpenAPI-Spezifikation einen MCP-Server?** -Lege einen REST-Connector an und importiere die Spezifikation per URL oder durch Einfügen. Jede Operation wird zu einem MCP-Tool am `/mcp`-Endpunkt deines Servers, ganz ohne Code. [So funktioniert es](docs/connectors/rest.md#from-openapi--swagger). +### Wie verbinde ich mein ERP (SAP, Odoo, Xentral …) mit Claude oder ChatGPT? +Installiere den Adapter deines ERP aus dem [Katalog](#connector-catalog), trage die API-Zugangsdaten ein und füge die URL deines MCP-Servers in Claude als benutzerdefinierten Connector oder in ChatGPT als App hinzu. Gibt es keinen Adapter, bindest du die REST- oder SOAP-API oder die SQL-Datenbank direkt an. Fang mit einer Rolle an, die nur lesen darf. -**Kann ich einen SOAP-/WSDL-Dienst mit Claude verbinden?** -Ja. AnythingMCP liest die WSDL ein, macht aus jeder Operation ein Tool und baut bei jedem Aufruf den SOAP-Envelope, auch für WCF-Dienste. Authentifiziert wird per HTTP Basic, Bearer oder API-Key-Header; WS-Security-Header sind noch nicht implementiert. [Dokumentation zum SOAP-Connector](docs/connectors/soap.md). +### Wie mache ich aus einer OpenAPI-Spezifikation einen MCP-Server? +Leg einen REST-Connector an und importiere die Spezifikation per URL oder durch Einfügen. Jede Operation wird ein MCP-Tool auf dem `/mcp`-Endpunkt deines Servers, ohne Code. [So funktioniert es](docs/connectors/rest.md#from-openapi--swagger) -**Kann Claude meine SQL-Server-, Oracle- oder PostgreSQL-Datenbank sicher abfragen?** -Datenbank-Connectors sind standardmäßig schreibgeschützt: AnythingMCP führt nur ein einzelnes SELECT (oder `WITH … SELECT`) aus und blockiert Schreibzugriffe und verkettete Statements. Zusätzlich: Verwende einen Datenbankbenutzer, der ausschließlich SELECT-Rechte hat, setze nach Möglichkeit auf statische Abfragen, bei denen das Modell nur die Parameter liefert, und gib die Tools pro Rolle gezielt frei. Das Response-Mapping entfernt die Spalten, die das Modell nicht erreichen dürfen, und jede Abfrage landet im Audit-Log in deiner eigenen Datenbank. +### Kann ich einen SOAP-/WSDL-Dienst mit Claude verbinden? +Ja. AnythingMCP liest die WSDL, macht aus jeder Operation ein Tool und baut bei jedem Aufruf den SOAP-Envelope, auch für WCF-Dienste. Authentifiziert wird per HTTP Basic, Bearer oder API-Key-Header; WS-Security-Header sind noch nicht implementiert. [SOAP-Connector](docs/connectors/soap.md) -**Wie verbinde ich Shopware, WooCommerce oder Amazon Seller Central mit Claude?** -Installiere den [E-Commerce-Adapter](#e-commerce--marketplace-connectors) für deinen Shop oder Marktplatz und autorisiere ihn. WooCommerce bringt 49 Tools mit, Amazon Seller Central nutzt die offizielle Selling Partner API, und der Shopware-6-Adapter liest den Storefront-Katalog über die Store API. +### Kann Claude meine SQL-Server-, Oracle- oder PostgreSQL-Datenbank sicher abfragen? +Abfrage-Tools sind standardmäßig nur lesend. Zusätzlich: einen Datenbankbenutzer nur mit SELECT-Rechten verwenden, statische Abfragen bevorzugen, bei denen das Modell nur die Parameter liefert, und die Tools pro Rolle freigeben. Das Response-Mapping entfernt Spalten, die das Modell nicht erreichen dürfen, und jede Abfrage landet in deinem Audit-Log. -**Ist AnythingMCP ein MCP-Gateway? Selbst gehostet und kostenlos?** -Dreimal ja: ein MCP-Endpunkt vor allen Connectors, mit OAuth2, RBAC, SSO und Audit. Es läuft unter AGPL-3.0 auf deinen eigenen Servern, kommerzielle Nutzung eingeschlossen; [AnythingMCP Cloud](https://cloud.anythingmcp.com) ist die optionale gehostete Variante. +### Wie verbinde ich Shopware, WooCommerce oder Amazon Seller Central mit Claude? +Installiere den [E-Commerce-Adapter](#e-commerce--marketplace-connectors) für deinen Shop oder Marktplatz und autorisiere ihn. WooCommerce bringt 49 Tools mit, Amazon Seller Central nutzt die offizielle Selling Partner API, und der Shopware-6-Adapter liest den Storefront-Katalog über die Store API. -**Worin unterscheidet es sich von Composio?** -Composio ist ein gehosteter Katalog verwalteter Integrationen. AnythingMCP macht zusätzlich deine eigenen internen APIs, SOAP-Dienste und Datenbanken zu Tools und kann sämtliche Zugangsdaten auf deiner Infrastruktur halten. [Ausführlicher Vergleich](https://anythingmcp.com/de/vs/alternatives-to-composio). +### Ist AnythingMCP kostenlos, und kann ich es selbst hosten? +Ja. Es läuft unter AGPL-3.0 auf deinen eigenen Servern, auch für kommerzielle Nutzung. [AnythingMCP Cloud](https://cloud.anythingmcp.com/login?mode=register) ist die optionale gehostete Version, betrieben in Frankfurt, mit 7 Tagen kostenlosem Test. --- -## Community & Unterstützung +## Community und Unterstützung -- 💬 **Fragen & Diskussionen** — [GitHub Discussions](https://github.com/HelpCode-ai/anythingmcp/discussions) — stimme über den nächsten Adapter ab und zeige, was du gebaut hast. -- 🐛 **Fehler / 💡 Funktionswünsche** — [Issues](https://github.com/HelpCode-ai/anythingmcp/issues) · 🆘 [SUPPORT.md](SUPPORT.md) -- 🔐 **Sicherheit** — eröffne dafür bitte kein öffentliches Issue; befolge [SECURITY.md](SECURITY.md). -- 🏢 Entwickelt von [helpcode.ai](https://helpcode.ai) in Freiburg, Deutschland. KI-gestützte Entwicklung mit menschlicher Prüfung — [AUTHORS.md](AUTHORS.md) beschreibt, welche Teile das betrifft und wie wir vorgehen. +- 💬 **Fragen und Ideen:** [GitHub Discussions](https://github.com/HelpCode-ai/anythingmcp/discussions). Stimm über den nächsten Adapter ab und zeig, was du gebaut hast. +- 🐛 **Fehler und Wünsche:** [Issues](https://github.com/HelpCode-ai/anythingmcp/issues) · [Support](.github/SUPPORT.md) +- 👥 **Anwender:** [wer AnythingMCP produktiv einsetzt](docs/ADOPTERS.md) und wie du dich einträgst +- 🔐 **Sicherheit:** bitte kein öffentliches Issue öffnen, sondern der [Sicherheitsrichtlinie](.github/SECURITY.md) folgen +- 🤖 **Für KI-Agenten und Crawler:** [anythingmcp.com/llms.txt](https://anythingmcp.com/llms.txt) +- 🏢 Entwickelt von [helpcode.ai](https://helpcode.ai) in Freiburg. KI-gestützt entwickelt, von Menschen geprüft: [AUTHORS.md](docs/AUTHORS.md) erklärt, welche Teile und wie. ## Mitwirken -Lies die [Beitragsrichtlinien](CONTRIBUTING.md), bevor du einen PR eröffnest. Der einfachste nützliche Beitrag ist ein Adapter: eine JSON-Datei. Dazu gibt es ein [Issue mit einer Schritt-für-Schritt-Anleitung](https://github.com/HelpCode-ai/anythingmcp/issues/150). +Lies vor einem PR die [Contributing-Anleitung](.github/CONTRIBUTING.md). Der einfachste nützliche Beitrag ist ein Adapter: eine JSON-Datei, und es gibt ein [Walkthrough-Issue](https://github.com/HelpCode-ai/anythingmcp/issues/150) dazu. ## License -**Open source** under the [GNU Affero General Public License v3](LICENSE) (AGPL-3.0-only). Commercial use inside your own company is included and always was; the copyleft obligation only starts if you modify AnythingMCP and offer the modified version to others over a network. Cloud-operator code under `ee/` is separately licensed and is not required for self-hosting — see the [License FAQ](docs/license-faq.md). - +**Open Source** unter der [GNU Affero General Public License v3](LICENSE) (AGPL-3.0-only). Kommerzielle Nutzung im eigenen Unternehmen ist erlaubt und war es schon immer; die Copyleft-Pflicht beginnt erst, wenn du AnythingMCP veränderst und die veränderte Version anderen über ein Netzwerk anbietest. Code für Cloud-Betreiber unter `ee/` ist gesondert lizenziert und für den Selbstbetrieb nicht nötig; siehe [Lizenz-FAQ](docs/license-faq.md). ---

- ⭐ Wenn dir das eine Woche MCP-Server-Entwicklung erspart hat, gib dem Projekt einen Stern.
- Über Sterne finden andere das Projekt — und wir entscheiden daran mit, welchen Adapter wir als Nächstes entwickeln. + ⭐ Wenn dir das eine Woche MCP-Server-Programmierung erspart hat, gib einen Stern.
+ Über Sterne findet die nächste Person das Projekt, und an ihnen entscheiden wir, welchen Adapter wir als Nächstes bauen.

- Entwicklung der Sterne + Star history

- Mitwirkende + Contributors

diff --git a/README.ja.md b/README.ja.md index 10455b16..303cd6fb 100644 --- a/README.ja.md +++ b/README.ja.md @@ -2,15 +2,15 @@ AnythingMCP は ERP、E コマース、REST、SOAP、SQL の各システムを Claude と ChatGPT 用の MCP ツールに変換します。265 のコネクター、うち 21 は API キー不要。

-

AnythingMCP

+

AnythingMCP:セルフホスト型 MCP ゲートウェイ

English · Deutsch · 简体中文 · 日本語

- REST/OpenAPI、SOAP、GraphQL、SQL のあらゆる API を、Claude、ChatGPT、Copilot 用の MCP ツールに変換します。
- コード不要のセルフホスト型 MCP サーバー兼ゲートウェイです。SAP Business One、Odoo、Xentral、weclapp、Shopware、WooCommerce、Amazon Seller、Kaufland など、ERP や E コマースを含む 265 種類の既製アダプターを用意しています。 + AnythingMCP は、オープンソースのセルフホスト型 MCP ゲートウェイです。MCP サーバーを書かずに、REST/OpenAPI、SOAP、GraphQL、OData、SQL のあらゆるシステムを Claude、ChatGPT、Copilot 用の MCP ツールに変換します。
+ SAP、Odoo、Xentral、weclapp、Shopware、WooCommerce、Amazon Seller などを含む 265 種類の既製アダプターを同梱しており、うち 21 は API キー不要です。

@@ -20,35 +20,15 @@ Docker pulls

-**Claude への 1 つの質問に、Etsy、SAP、物流 API のデータで回答します。** AnythingMCP はマーケットプレイスから Etsy を、OData で SAP S/4HANA を、OpenAPI 仕様から REST API を接続し、Claude は 3 つのシステムをまたいで作業します。 -

- AnythingMCP のデモ:マーケットプレイスから Etsy をインストールし、SAP S/4HANA を OData コネクタとして追加し、物流 API を OpenAPI 仕様から取り込んだ後、Claude が配送で止まっている Etsy の注文と、SAP に再送用の在庫があるかを答える様子。 + クラウド版を 7 日間無料で試す · 自分で動かす · ドキュメント · コネクターガイド · Discussions

-

▶ デモ全編を見る(2:40、音声付き)

+**Claude への 1 つの質問に、Etsy、SAP、物流 API のデータで答えます。** デモでは、カタログから Etsy をインストールし、SAP S/4HANA を OData で追加し、物流 API を OpenAPI 仕様からインポートします。その後、Claude が 3 つのシステムをまたいで作業します(2:40、音声あり、英語)。 -**自分で動かす** — 3 行のコマンドで、リポジトリのクローンは不要です。[詳しい手順はこちら](#run-it-yourself)。 +https://github.com/user-attachments/assets/cc8c9ef3-11cf-4eab-aa4d-98472dc554b3 -```bash -mkdir anythingmcp && cd anythingmcp -curl -fsSLo docker-compose.yml \ - https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env -docker compose up -d # → http://localhost:3000 -``` - ---- - -この文書で繰り返し使う 3 つの用語は、それぞれ異なるものを指します。 - -- **アダプター(adapter)**は、このリポジトリに含まれる 265 個の JSON 定義のいずれかです。SAP Business One、Odoo、weclapp、Xentral、Shopware、WooCommerce、Amazon Seller、DHL などがあります。そのうち 21 個は API キーを一切必要とせず、それ以外はインポート時に認証情報を設定します。 -- **コネクター(connector)**は、アダプター、または独自の OpenAPI 仕様・Postman コレクション・WSDL・GraphQL エンドポイント・データベースを、ワークスペース内で設定したものです。接続先を指定すれば、MCP サーバーを書くことなく数分で設定できます。 -- **MCP サーバー**は、Claude に渡す URL です。そのサーバーに割り当てたコネクターだけを公開します。 - -すべてが自社のインフラ上で動くため、外部へ出すデータを自分で決められます。ツールごとのレスポンスマッピングで、モデルに渡せるフィールドを定義できます。認証情報は AES-256-GCM で暗号化して保存し、監査ログには上流システムの完全な応答を自社側で保持します。OAuth2、RBAC、SSO、SCIM はセルフホスト版に含まれており、有料プラン専用の機能ではありません。 - -**[KOCH Freiburg GmbH](https://www.kochfreiburg.de/) で本番稼働しています。** 同社では AI アシスタントを ERP、CRM、SOAP サービス、オンプレミスのデータベースなど、15 以上の社内システムに接続しています。ドイツ・フライブルクの [helpcode.ai](https://helpcode.ai) がこのシステムから AnythingMCP を切り出し、オープンソースとして公開しました。アダプターカタログは、単一の製品としてよりも、コミュニティで育てるほうが速く成長するからです。 +**[KOCH Freiburg GmbH](https://www.kochfreiburg.de/) で本番稼働しています。** 同社では AI アシスタントを ERP、CRM、SOAP サービス、オンプレミスのデータベースなど、15 以上の社内システムに接続しています。[helpcode.ai](https://helpcode.ai) がこのシステムから切り出してオープンソース化しました。アダプターカタログは、単一の製品としてよりもコミュニティで育てるほうが速く成長するからです。 --- @@ -56,7 +36,7 @@ docker compose up -d # → http://localhost:3000 ## 自分で動かす -**以下が推奨の方法です。** 後述の計測もこの方法で行っています。Docker 24+ と `openssl` が必要です。macOS では、先に Docker Desktop を起動してください。 +Docker 24 以上と `openssl` が必要です。macOS では先に Docker Desktop を起動してください。リポジトリのクローンは不要です。 ```bash mkdir anythingmcp && cd anythingmcp @@ -66,26 +46,20 @@ printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl docker compose up -d ``` - を開いて登録します。**最初のアカウントが管理者になります。** + を開いて登録します。**最初のアカウントが管理者になります。** MCP エンドポイントは `http://localhost:4000/mcp`、API ドキュメントは `http://localhost:4000/api/docs` です。 -> **生成された `.env` を保管してください。** 保存した認証情報を復号するには `ENCRYPTION_KEY` が必要です。紛失すると、すべてのコネクターの認証情報を再設定しなければなりません。他のシークレットと同じようにバックアップしてください。 +> **生成された `.env` は保管してください。** `ENCRYPTION_KEY` は保存した認証情報の復号に使います。失うと、すべてのコネクターで認証情報を設定し直すことになります。 -| サービス | 既定の URL | -|---|---| -| Web UI | `http://localhost:3000` | -| MCP エンドポイント | `http://localhost:4000/mcp` | -| Swagger ドキュメント | `http://localhost:4000/api/docs` | +amd64 ではイメージの取得に約 30 秒、その 24 秒後に API が利用可能になります。イメージは現在 amd64 のみですが、compose ファイルがプラットフォームを固定しているため、Apple Silicon でもエミュレーションで動作します。 -*amd64 での計測結果:イメージの取得に 31 秒、API が正常に動作してログインページが表示されるまでに 24 秒。現在、公開イメージは amd64 のみをサポートしています。Compose ファイルでプラットフォームを明示しているため、Apple Silicon でも Docker Desktop のエミュレーションを使って実行できます。M シリーズ搭載ノートパソコンでは同じ起動に 24 秒かかりましたが、古いハードウェアでは数分かかる場合があります。* - -クイックスタートでは、意図的に `127.0.0.1` にバインドしています。前段に TLS を終端する仕組みがまだないためです。**他の人やクラウドの AI クライアントからアクセスできるインスタンスが必要な場合**は、リポジトリをクローンして `./setup.sh` を実行してください。ドメインを入力すると、Caddy による証明書の取得、シークレットの生成、MCP 認証モードの設定を行います。[デプロイガイド](docs/deployment.md)を参照してください。 +クイックスタートは意図的に `127.0.0.1` にのみバインドします。前段で TLS を終端するものがないためです。**他の人やクラウドの AI クライアントからアクセスできるインスタンス**が必要な場合は、リポジトリをクローンして `./setup.sh` を実行してください。ドメインを尋ね、Caddy で証明書を取得し、シークレットを生成して MCP の認証モードを設定します。[デプロイガイド](docs/deployment.md)を参照してください。
-その他のデプロイ方法 — マネージドクラウド、Railway、DigitalOcean +その他の動かし方:マネージドクラウド、Railway、DigitalOcean
-[**AnythingMCP Cloud**](https://cloud.anythingmcp.com) は同じ AGPL コードを使い、私たちが**ドイツ・フランクフルト**で運用しています。インフラを用意せずに自社の API で試し、認証情報を社内に置きたくなったらセルフホストへ移行できます。どちらでも使うコネクターは同じです。DPA/AVV は [info@helpcode.ai](mailto:info@helpcode.ai) へのご依頼に応じて提供します。SSO と SCIM はセルフホスト版でのみ利用できます。 +[**AnythingMCP Cloud**](https://cloud.anythingmcp.com) は同じ AGPL コードを、ドイツ・**フランクフルト**で当社が運用するものです。7 日間の無料トライアルがあります。まずクラウドで自社の API を試し、認証情報を外に出したくなくなった時点で社内に移せます。コネクターはどちらでも同じです。DPA/AVV は [info@helpcode.ai](mailto:info@helpcode.ai) までご依頼ください。SSO と SCIM はセルフホスト版のみです。 [![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/deploy/8-X4WD?referralCode=k30bPV&utm_medium=integration&utm_source=template&utm_campaign=generic)   @@ -95,49 +69,59 @@ docker compose up -d --- - - -## あらゆるシステムを接続する + -多くの企業には、まだ MCP サーバーがありません。あるのは REST API、ERP、SOAP サービス、データベースです。そのそれぞれが一連の MCP ツールになり、1 つの MCP サーバー URL を通じて Claude、ChatGPT、Copilot に渡されます。 +## 仕組み - +1. **コネクターを追加する。** カタログから**アダプター**(SAP、Odoo、DHL などの既製 JSON 定義)をインストールするか、独自の OpenAPI 仕様、WSDL、GraphQL エンドポイント、Postman コレクション、データベースを AnythingMCP に指定します。ワークスペースで設定したものが**コネクター**で、その各操作が MCP ツールになります。 +2. **モデルに見せる内容を決める。** ビジュアルエディターでツールの名前と説明を整え、ネットワークの外に出してはいけないフィールドを削除し、どのロールがどのツールを呼び出せるかを決めます。 +3. **AI クライアントに URL を 1 つ渡す。** **MCP サーバー**は、Claude、ChatGPT、Copilot、Gemini、Cursor に追加するエンドポイントです。割り当てたコネクターだけを公開します。 -### OpenAPI / REST API を MCP に - -OpenAPI 3.x または Swagger 2.0 の仕様を URL か貼り付けでインポートすると、各オペレーションが MCP ツールになり、パラメーター、認証、エンドポイントの対応付けも設定済みの状態になります。モデルが適切なツールを選べるよう、ビジュアルエディターでツールの名前と説明を調整できます。[REST コネクターのドキュメント](docs/connectors/rest.md) · [ガイド](https://anythingmcp.com/ja/guides/rest-api-to-mcp) · [5 分デモ: openapi-to-mcp](https://github.com/HelpCode-ai/openapi-to-mcp) - - - -### SOAP / WSDL を MCP に - -WSDL を指定すると、SOAP の各オペレーションがツールになります。エンベロープ、パラメーターの順序、WCF サービスは AnythingMCP が処理し、認証には Basic、Bearer、API キーを使えます。2009 年の SOAP サービスを、2026 年のモデルからすぐに使えるようにできます。[SOAP コネクターのドキュメント](docs/connectors/soap.md) · [ガイド](https://anythingmcp.com/ja/guides/soap-to-mcp) · [5 分デモ: soap-to-mcp](https://github.com/HelpCode-ai/soap-to-mcp) +--- - + -### SQL データベースを MCP に +## あらゆる API、SOAP サービス、データベースを接続する -PostgreSQL、MySQL、MariaDB、SQL Server、Oracle、SAP HANA、SQLite、MongoDB に対応しています。コネクターはスキーマ、クエリー例、クエリー実行のツールを生成します。モデルに SQL を書かせるか、自分で書いたクエリーのパラメーターだけを埋めさせるかを選べます。クエリーツールは初期設定で読み取り専用で、書き込みはブロックされます。さらに読み取り専用のデータベースユーザーと、必要なツールだけが見えるロールを割り当ててください。[データベースコネクターのドキュメント](docs/connectors/database.md) · [ガイド](https://anythingmcp.com/ja/guides/database-to-mcp) · [5 分デモ: sql-to-mcp](https://github.com/HelpCode-ai/sql-to-mcp) +多くの企業には、まだ MCP サーバーがありません。あるのは REST API、ERP、2009 年の SOAP サービス、そしてデータベースです。そのどれもが MCP ツールになります。 - +| 接続元 | 得られるもの | ドキュメント | +|---|---|---| +| **OpenAPI / Swagger(REST)** | 仕様を URL でインポートするか貼り付けると、各操作がツールになり、パラメーター、認証、エンドポイントのマッピングが自動で入ります | [REST](docs/connectors/rest.md) · [ガイド](https://anythingmcp.com/ja/guides/rest-api-to-mcp) · [デモ:openapi-to-mcp](https://github.com/HelpCode-ai/openapi-to-mcp) | +| **Postman コレクション、cURL** | フォルダー、認証、ボディモード、`{{variables}}` を引き継ぎ、各リクエストがツールになります | [Postman インポート](docs/connectors/rest.md#from-postman-collection) | +| **SOAP / WSDL** | 各操作がツールになります。エンベロープ、パラメーターの順序、WCF サービスは自動で処理します | [SOAP](docs/connectors/soap.md) · [ガイド](https://anythingmcp.com/ja/guides/soap-to-mcp) · [デモ:soap-to-mcp](https://github.com/HelpCode-ai/soap-to-mcp) | +| **GraphQL** | イントロスペクションでクエリとミューテーションをツールにするか、操作を自分で定義します | [GraphQL](docs/connectors/graphql.md) · [ガイド](https://anythingmcp.com/ja/guides/graphql-to-mcp) | +| **OData**(SAP Gateway を含む) | 各サービスの `$metadata` を読み取り、エンティティセット、キー、SAP の業務ラベルをモデルに見せます。V2 と V4 に対応 | [OData](docs/connectors/odata.md) · [ガイド](https://anythingmcp.com/ja/guides/odata-to-mcp) | +| **SQL と MongoDB** | PostgreSQL、MySQL、MariaDB、SQL Server、Oracle、SAP HANA、SQLite、MongoDB:スキーマ、サンプル、クエリの各ツール。既定で読み取り専用 | [データベース](docs/connectors/database.md) · [SAP HANA](docs/connectors/sap-hana.md) · [ガイド](https://anythingmcp.com/ja/guides/database-to-mcp) · [デモ:sql-to-mcp](https://github.com/HelpCode-ai/sql-to-mcp) | +| **別の MCP サーバー** | そのツールを検出し、同じ認証と監査のもとで自社のツールと並べて提供します | [MCP ブリッジ](docs/connectors/mcp-bridge.md) | -### GraphQL を MCP に +ツールは実行時に登録され、再起動は不要です。コネクターごとの `{{VAR}}` の値はサーバー側で埋め込まれ、AI には見えません。 -イントロスペクションによって、GraphQL エンドポイントのクエリーとミューテーションが MCP ツールになります。オペレーションを自分で定義することもできます。[GraphQL コネクターのドキュメント](docs/connectors/graphql.md) · [ガイド](https://anythingmcp.com/ja/guides/graphql-to-mcp) +--- - + -### Postman コレクションを MCP に +## コネクターカタログ -Postman v2.1 のコレクションをインポートすると、フォルダー、認証、ボディモード、`{{variables}}` が引き継がれ、各リクエストがツールになります。cURL コマンドも同じように使えます。[Postman インポートのドキュメント](docs/connectors/rest.md#from-postman-collection) +265 個のアダプターで 2,400 以上のツールを提供しています。どのアダプターにも [anythingmcp.com/ja/guides](https://anythingmcp.com/ja/guides) に 7 言語の設定ガイドがあります。 ---- +| カテゴリー | 例 | +|---|---| +| 💼 ERP・会計・請求 | SAP Business One、SAP S/4HANA、Odoo、weclapp、Xentral、Dynamics NAV、Lexware Office、sevDesk、Exact Online、bexio | +| 🛍️ E コマース・マーケットプレイス | Amazon Seller、WooCommerce、Shopware 6、Magento、eBay、Etsy、Kaufland、OTTO、Oxomi | +| 📦 物流・配送 | Deutsche Bahn、DHL、DPD、GLS、Shipcloud、Sendcloud | +| 👥 人事・フィールドサービス | Personio、HRWorks、Kenjo、MFR Mobile Field Report | +| 🏛️ 行政・公開データ | VIES VAT、Handelsregister、UK Companies House、DESTATIS、Bundesbank、OpenPLZ、NINA | +| 🏦 銀行・決済 | Revolut Business、Wise、PAYONE、Razorpay、Paystack | +| 💬 メッセージング | WhatsApp、LINE、TeamViewer | +| 📈 広告・分析 | Google Ads、Google Analytics 4、Google Search Console、Matomo | +| 🧠 AI 判定モデル | TypeSafe の Jev:Yes/No 判定、分類、確率付きスコアリングを約 300 ミリ秒で | +
+ERP コネクター:18 システム、ツール数と対象市場 -## ERP コネクター - -注文、在庫、請求書に関する質問の多くは、ERP に行き着きます。そうした ERP 向けの既製アダプターを用意しています。インストールして認証情報を追加すれば、ツールがすぐに MCP サーバー上で使えるようになります。各システム名はセットアップガイドにリンクしています。 +
| システム | 市場 | ツール数 | AI ができること | |---|---|---|---| @@ -164,15 +148,13 @@ Postman v2.1 のコレクションをインポートすると、フォルダー **リポジトリ:** [erp-mcp-server](https://github.com/HelpCode-ai/erp-mcp-server) · [weclapp-mcp-server](https://github.com/kochfreiburg/weclapp-mcp-server) · [odoo-mcp-server](https://github.com/keysersoft/odoo-mcp-server) · [sap-mcp-server](https://github.com/HelpCode-ai/sap-mcp-server) · [sap-hana-mcp-server](https://github.com/HelpCode-ai/sap-hana-mcp-server) · [sap-business-one-mcp-server](https://github.com/HelpCode-ai/sap-business-one-mcp-server) · [xentral-mcp-server](https://github.com/kochfreiburg/xentral-mcp-server) -**お使いの ERP が一覧にない場合や、独自開発・オンプレミスの ERP の場合は?** その [REST API](#openapi--rest-api-to-mcp) や [SOAP サービス](#soap--wsdl-to-mcp)を通じて、または [SQL データベース](#sql-database-to-mcp)に直接、読み取り専用で接続できます。[KOCH Freiburg](https://www.kochfreiburg.de/) は、この方法で自社の ERP を本番環境で接続しています。 - ---- +
+
+E コマース・マーケットプレイスのコネクター:13 のショップとマーケットプレイス -## E コマース・マーケットプレイスのコネクター - -Amazon や eBay から DACH 地域のマーケットプレイスまで、ショップとマーケットプレイスに対応しています。各システム名はセットアップガイドにリンクしています。 +
| システム | 市場 | ツール数 | AI ができること | |---|---|---|---| @@ -194,78 +176,23 @@ Amazon や eBay から DACH 地域のマーケットプレイスまで、ショ **リポジトリ:** [ecommerce-mcp-server](https://github.com/HelpCode-ai/ecommerce-mcp-server) · [amazon-seller-mcp-server](https://github.com/keysersoft/amazon-seller-mcp-server) · [billbee-mcp-server](https://github.com/kochfreiburg/billbee-mcp-server) · [magento-mcp-server](https://github.com/keysersoft/magento-mcp-server) · [woocommerce-mcp-server](https://github.com/keysersoft/woocommerce-mcp-server) · [shopware-mcp-server](https://github.com/kochfreiburg/shopware-mcp-server) · [kaufland-mcp-server](https://github.com/kochfreiburg/kaufland-mcp-server) · [otto-market-mcp-server](https://github.com/kochfreiburg/otto-market-mcp-server) ---- - -## 接続・管理・学習できること - -### 接続 - -- **6 種類のコネクター** — [REST](docs/connectors/rest.md)、[SOAP](docs/connectors/soap.md)、[GraphQL](docs/connectors/graphql.md)、[OData](docs/connectors/odata.md)(SAP Gateway を含む)、[データベース](docs/connectors/database.md)、[MCP 間のブリッジ](docs/connectors/mcp-bridge.md)。データベースは PostgreSQL、MySQL、MariaDB、MSSQL、Oracle、SAP HANA、MongoDB、SQLite の 8 エンジンに対応しています。 -- **既存の情報からインポート** — OpenAPI/Swagger、Postman、cURL、WSDL、GraphQL イントロスペクションに対応し、稼働中の MCP サーバーから直接ツールを検出することもできます。 -- **アダプターカタログ** — [同梱されているアダプターを確認する](#the-adapter-catalog)。 -- **ビジュアルツールエディター** — パラメーターをパス、クエリ、リクエストボディ、ヘッダーに対応付けられます。ツールの名前や説明を調整し、AI が意図したとおりに理解できるようにします。 -- **動的な MCP サーバー** — ツールは実行時に登録されるため、再起動は不要です。コネクターごとに `{{VAR}}` を展開でき、その値は AI から隠されます。 - -### 管理 - -- **[レスポンスの整形](#control-what-the-model-sees)** — モデルへ渡すフィールドをツールごとに正確に指定し、変更前後の内容をリアルタイムで確認できます。 -- **必要な箇所を読み取り専用に。** 各ツールには、操作から導出される MCP アノテーション(`readOnlyHint`、`destructiveHint`)が付き、ツール単位で上書きできます。クライアントは、請求書の読み取りとクレジットノートの発行を区別して表示できます。ロールに基づくツールの許可リストを使えば、読み取りしかできない MCP サーバーを公開できます。ERP の導入では、多くの場合ここから始めるのが適切です。 -- **幅広い認証方式** — OAuth2(PKCE と Client Credentials)、Bearer、API Key、Basic、HMAC 署名、[LOGIN_TOKEN](docs/connectors/login-token-auth.md)、OAuth 1.0a に対応しています。 -- **監査ログ** — すべてのツール呼び出しについて、入力、出力、所要時間、ステータスを自社のデータベースに記録します。 -- **[SSO](docs/sso.md) と [SCIM](docs/scim-entra-setup.md)** — Entra ID、Google、Okta、Auth0、汎用 OIDC に対応しています。サインインのたびにディレクトリのグループからロールを同期します。ディレクトリでユーザーを無効にすると、そのユーザーのワークスペースへのアクセスと MCP API キーも無効になります(セルフホスト版のみ)。 - -### 学習 - -- **[ナレッジグラフ](docs/knowledge-graph.md)** — コネクターのデータ同士の関係を、個人識別情報(PII)を保護しながらワークスペースごとに整理します。MCP ツールとしてエージェントに返すことで、複数のシステムにまたがる呼び出しを正しくつなげられます。 -- **[AI スキル](docs/knowledge-graph.md)** — 繰り返される利用パターンを小さな再利用可能なルールに変え、サーバーの指示に組み込みます。追加のツール呼び出しをせずにエージェントを導けます(任意のオプトイン機能)。 - ---- - -## 他のプロジェクトとの比較 - -AnythingMCP は、一段階前から始める MCP ゲートウェイです。既に運用している API、ERP、データベースから MCP サーバーを作成し、1 つのエンドポイントの背後で提供し、公開範囲を限定し、監査します。他の MCP ゲートウェイは、既にある MCP サーバーをまとめて安全に運用するためのものです。しかし多くの企業には、まだ MCP サーバーがありません。あるのは REST API、2009 年の SOAP サービス、そして直接公開したくないデータベースです。以下のプロジェクトはいずれも実際の問題を解決していますが、扱う問題は同じではありません。 - -| | どのようなものか | こちらを選ぶとよい場合 | -|---|---|---| -| **[ContextForge](https://github.com/IBM/mcp-context-forge)**(IBM) | 既存の MCP サーバーの前段に置くフェデレーション機能とレジストリー | ツールが既に MCP サーバーとして提供されていて、フェデレーション、仮想サーバー、レジストリーが必要な場合 | -| **[Docker MCP Gateway](https://github.com/docker/mcp-gateway)** | カタログ内の MCP サーバーを、シークレット管理付きのコンテナーとして単一のエンドポイントの背後で実行 | ベンダー公開の MCP サーバーを Docker 内に隔離したく、公開カタログで要件を満たせる場合 | -| **[MetaMCP](https://github.com/metatool-ai/metamcp)** | 名前空間で分離したエンドポイントとミドルウェア層に MCP サーバーを集約 | 主に既存の MCP サーバーをクライアントごとにグループ化し、公開範囲を再設定したい場合 | -| **[Composio](https://github.com/ComposioHQ/composio)** | 認証を代行するマネージド連携のホスト型カタログ | 固定のマネージドカタログで十分で、独自の SOAP サービス、社内 API、データベースを追加する必要がない場合 | -| **AnythingMCP** | 既に運用している API、SOAP サービス、データベースを MCP ツールに変換 | システムが**まだ MCP サーバーではなく**、認証情報を自分で管理する選択肢を持ちたい場合 | - -機能を詳しく比較した表は [anythingmcp.com/vs](https://anythingmcp.com/vs) にあります。 - ---- - - - -## ナレッジグラフと AI スキル - -呼び出しを転送するだけでは、難しい判断はエージェントに残ります。次にどのツールを呼ぶべきか、業務でいう「未完了の注文」や「アクティブな顧客」が実際に何を意味するのか、といった判断です。AnythingMCP は、**コネクター内のデータ同士の関係**と、**チームが実際にツールをどう使っているか**の両方を学習します。そして追加のツール呼び出しではなく、コンテキストとして AI クライアントへ返します。 - -- **ナレッジグラフ** — 顧客、注文、商品などの*エンティティ*と、その*関係*をワークスペースごとに整理します。ツール名、パラメーター、実際の呼び出しの入出力から自動で構築されます。オプションの AI 分析では、ヒューリスティックで捉えられないコネクター間のつながりを推定します。**PII を保護する設計**で、保存するのはエンティティやフィールドの*名前*と関係のメタデータだけです。値そのものは保存しません。 -- **視覚的に構築** — グラフエディターでエンティティや接続を手動で作成、編集、削除できます。説明を追加し、AI の提案を確認して調整することもできます。 -- **MCP 経由で提供** — 各サーバーは `kg_how_to_obtain` ツールを公開します。*利用者側の*エージェントが「Shopware の注文から DHL の追跡番号を取得するには?」と尋ねると、コネクターをつなぐためのヒントを受け取れます。 -- **実際の利用から生まれる AI スキル** — 意図の記録を有効にすると、各ツール呼び出しで*なぜ呼び出したのか*を記録できます。AI 分析が繰り返し現れるパターンを、*「今日の売上にはステータス 2、3、4 の注文を含める」*といった小さな再利用可能なルールに変えます。各ルールを適用、編集、却下することも、信頼度の高いものを自動適用することもできます。適用済みのスキルは、提供時に MCP サーバーの**指示**へ組み込まれるため、**ツール呼び出しを一度も追加せずに**エージェントを導けます。システムの利用を通じて蓄積した知識を、個人の頭の中だけに留めずに済みます。 - -AI 分析は**既定では無効**です。全体の環境変数フラグ*と*ワークスペースごとのスイッチで有効にし、OpenAI、OpenRouter、Anthropic を利用できます。グラフ、手動編集、MCP ツール自体は、LLM キーなしで使えます。 +
-➡️ **[ナレッジグラフと AI スキルのガイド →](docs/knowledge-graph.md)** +**アダプターは 1 つの JSON ファイルです。** だからこそカタログがこの規模になり、新しいアダプターの追加は最初の貢献に向いています。必要なものがない場合は、[リクエスト](https://github.com/HelpCode-ai/anythingmcp/issues/new?template=adapter_request.yml)(👍 の数で優先度を決めます)するか、[自分で作成](.github/CONTRIBUTING.md)してください。お使いの ERP が一覧にない、または独自開発の場合は、その REST API、SOAP サービス、SQL データベースに読み取り専用で直接接続できます。 --- - + -## モデルに見せる内容を制御する +## セキュリティとガバナンス -各ツールで、**どのフィールドが自社のインフラの外に出るかを正確に定義**できます。マッピングはツールごとに設定され、応答の送信時に適用されます。AI クライアントと、その背後にあるサードパーティーのモデルには、承認したデータ構造だけが渡ります。 +すべてが自社のインフラ上で動くため、外部に出すデータを自分で決められます。OAuth2、RBAC、SSO、SCIM はセルフホスト版に含まれており、有料プラン専用の機能ではありません。 -- **外部に出すべきでないものを削除。** 削除するパスを指定すると、エージェントへ応答を渡す前に除去されます。顧客の IBAN、従業員の給与、API がデータと一緒に返すアクセストークンなどが対象になります。 -- **出力全体を定義することも可能。** `select` テンプレートで、残すフィールドと出力名を指定します。テンプレートで表現できない変換には JMESPath 式を使えます。エージェントにとって構造が安定しているほうが扱いやすい場合は、フィールドを削除せず、値をプレースホルダー(`"iban": "= [redacted]"`)に置き換えます。 -- **保存前に結果を確認。** エディターが実際の応答にマッピングを適用し、変換前後の内容とサイズの差を並べて表示します。同梱アダプターの一例では、列車 4 件の結果で **12,172 B → 1,072 B(91% 削減)**を計測しています。 -- **既定はフェイルオープンであり、その挙動を明記しています。** 実行時にマッピングが失敗すると、元の応答を返し、警告を記録します。誤った式が 1 つあるだけで、動作していたツール全体が使えなくなるのを防ぐためです。ただし、外部へ絶対に出してはいけないフィールドには、この既定値は適していません。そのようなツールには **`"fallbackToRaw": false`** を設定してください。マッピングが失敗したときは、データをそのまま渡すのではなく、呼び出し自体が失敗します。 - -機密フィールドをモデルに渡さずに済むうえ、削除したフィールドの分だけコンテキストウィンドウの費用も減らせます。 +- **レスポンスマッピング。** ツールごとに、モデルに渡すフィールドを宣言します。顧客の IBAN や従業員の給与を削除したり、残すフィールドだけを指定したりできます。エディターは実際の応答で変換前後を表示します。同梱のあるアダプターは 12,172 B から 1,072 B(−91%)になり、その分のコンテキストウィンドウも節約できます。マッピングが壊れた場合は既定で元の応答を返します。絶対に外に出してはいけないフィールドを持つツールでは `"fallbackToRaw": false` を設定すると、代わりに呼び出しが失敗します。 +- **重要な場面では読み取り専用。** すべてのツールに MCP アノテーション(`readOnlyHint`、`destructiveHint`)が付き、操作から自動で導出され、ツールごとに上書きできます。ロール単位のツールのホワイトリストで、読み取りしかできない MCP サーバーを公開できます。ERP ではまずここから始めるのがおすすめです。データベースのクエリツールは単一の SELECT だけを実行し、書き込みや複数文の連結をブロックします。 +- **あらゆる認証方式に対応。** OAuth2(PKCE と Client Credentials)、Bearer、API キー、Basic、HMAC リクエスト署名、[LOGIN_TOKEN](docs/connectors/login-token-auth.md)、OAuth 1.0a。認証情報は AES-256-GCM で暗号化して保存します。 +- **監査ログ。** すべてのツール呼び出しを、入力、出力、所要時間、ステータスとともに自社のデータベースに記録します。モデルが見ていない上流の完全な応答も含まれます。 +- **[SSO](docs/sso.md) と [SCIM](docs/scim-entra-setup.md)。** Entra ID、Google、Okta、Auth0、任意の OIDC プロバイダー。サインインのたびにディレクトリのグループからロールを同期し、ディレクトリで無効化されたユーザーはワークスペースへのアクセスと MCP API キーを同時に失います。 ```json { @@ -278,91 +205,40 @@ AI 分析は**既定では無効**です。全体の環境変数フラグ*と* } ``` -> 監査ログには、自社のデータベース内で完全な上流応答が引き続き記録されます。エージェントに見せる内容を調整しても、API が実際に何を返したかという証拠は失われません。 - -➡️ **[レスポンスマッピングのリファレンス →](docs/tool-definition.md#3-response-mapping-optional)** - ---- - -## コードを書かずに独自の Claude コネクターを作る - -Claude は**カスタムコネクター**をサポートしています。*Customize → Connectors* でリモート MCP サーバーを一度追加すると、Claude.ai、Claude Desktop、Claude Code で利用できます。AnythingMCP なら、**既存の任意の API からそのコネクターを作成**でき、MCP サーバーを実装する必要はありません。 - -1. API 仕様をインポートするか、既製のアダプターを選びます。 -2. **ビジュアルエディター**でツール名、説明、パラメーターを調整します。AI に何を見せるかは自分で決められます。 -3. MCP サーバーの URL を Claude のカスタムコネクターとして追加します(OAuth 2.0 を標準でサポート)。 - -認証情報は自社のインフラ上に残り、すべてのツール呼び出しが監査ログに記録されます。どのユーザーがどのツールを利用できるかは、ロールに基づくアクセス制御で管理します。[詳しい手順 →](docs/integrations/claude.md) +[レスポンスマッピングのリファレンス](docs/tool-definition.md#3-response-mapping-optional) --- -## API を ChatGPT アプリにする - -**ChatGPT のアプリは MCP を基盤にしています。** AnythingMCP は、その MCP バックエンドを自分で書くことなく用意できます。REST、SOAP、GraphQL、データベースのエンドポイントを指定すれば、ChatGPT で使えるコネクターになります。ChatGPT の設定で追加するか、Apps SDK アプリのツール層として使うことで、ChatGPT が業務データを読み取り、操作できるようになります。 - -同じコネクターを **Claude、ChatGPT、Gemini、Copilot、Cursor** で同時に使えます。一度構築すれば、各クライアントへ接続できます。[ChatGPT の設定ガイド →](docs/integrations/chatgpt.md) + ---- +## Claude、ChatGPT、Copilot、Gemini から使う -## AnythingMCP を使う理由 +同じ MCP サーバーが MCP 対応のあらゆるクライアントで動くため、コネクターは一度作るだけで済みます。 -AI クライアントは MCP を使いますが、業務システムは REST、SOAP、GraphQL、SQL を使います。システムごとに専用の MCP サーバーを作成し、認証、監査、アクセス制御まで含めて保守するには、それぞれ数週間かかります。AnythingMCP は、その間をつなぐノーコードの層です。 - -| 課題 | 解決方法 | -|---|---| -| REST API はあるが、AI クライアントは MCP を使う | OpenAPI / Swagger のインポートによる **REST → MCP** 変換 | -| 古い SOAP / WSDL サービスがある | 自動 WSDL 解析による **SOAP → MCP** ブリッジ | -| AI エージェントからデータベースを照会したい | クエリーツールを自動生成する **DB → MCP**(7 エンジン) | -| すべての API を 1 つのエンドポイントにまとめたい | 複数のコネクターを集約する **MCP ミドルウェア** | -| SAP Business One / Odoo / Shopware などの MCP サーバーが必要 | **アダプターカタログ**から選び、1 分でインストールして認証情報を設定 | -| 認証情報をサードパーティーへ預けられない | **自社のインフラ上で実行**し、認証情報を AES-256-GCM で暗号化して保存 | -| 認証、監査ログ、RBAC が必要 | **OAuth2、監査ログ、ロールベースのアクセス制御**を標準搭載 | -| サードパーティーのモデルが API 応答の全フィールドを見てしまう | **[ツールごとのレスポンスマッピング](#control-what-the-model-sees)**で、ネットワークの外に出る前にフィールドを削除・整形 | -| エージェントがツールの順序を間違えたり、システム間の関係を見落としたりする | **[ナレッジグラフと AI スキル](#knowledge-graph--ai-skills)**で、呼び出しのつなぎ方と学習した業務ルールをコンテキストとして提供 | - -**実際の活用例** - -| | ガイド | -|---|---| -| Claude から ERP と対話する | [SAP Business One](https://anythingmcp.com/ja/guides/connect-sap-business-one-to-claude) · [Odoo](https://anythingmcp.com/ja/guides/connect-odoo-to-claude) · [weclapp](https://anythingmcp.com/ja/guides/weclapp-to-mcp) · [Xentral](https://anythingmcp.com/ja/guides/xentral-to-mcp) | -| 複数のショップやマーケットプレイスの注文、在庫、手数料を確認する | [Amazon Seller](https://anythingmcp.com/ja/guides/connect-amazon-seller-to-claude) · [WooCommerce](https://anythingmcp.com/ja/guides/connect-woocommerce-to-claude) · [Kaufland](https://anythingmcp.com/ja/guides/connect-kaufland-to-claude) | -| 荷物を追跡する | [DHL](https://anythingmcp.com/guides/dhl-tracking-to-mcp) · [GLS](https://anythingmcp.com/guides/gls-tracking-to-mcp) | -| 支払い前に請求書を検証する | [VIES VAT](https://anythingmcp.com/guides/vies-vat-to-mcp) · [Handelsregister](https://anythingmcp.com/guides/handelsregister-to-mcp) | -| エージェントから本番データベースを読み取り専用で使う | [データベースコネクター](docs/connectors/database.md) | -| 2009 年の SOAP サービスを 2026 年のモデルにつなぐ | [SOAP → MCP](https://anythingmcp.com/guides/soap-to-mcp) | -| 列車、現在の遅延、経路を調べる | [Deutsche Bahn](https://anythingmcp.com/guides/deutsche-bahn-to-mcp) | +- **Claude。** *Customize → Connectors* でサーバーの URL を**カスタムコネクター**として追加すると、Claude.ai、Claude Desktop、Claude Code で使えます。OAuth 2.0 に標準対応しています。[Claude の設定](docs/integrations/claude.md) +- **ChatGPT。** ChatGPT のアプリは MCP の上に作られています。ChatGPT の設定でサーバーを追加するか、Apps SDK アプリのツール層として使います。[ChatGPT の設定](docs/integrations/chatgpt.md) +- **Copilot、Gemini、Cursor** などの MCP クライアント:[クライアント設定ガイド](docs/guides.md)。 --- - + -## アダプターカタログ +## ナレッジグラフと AI スキル -265 個のアダプターで、2,400 以上のツールを公開できます。**21 個は API キーが不要**です。それ以外はインポート時に認証情報を設定すれば、すぐにツールを利用できます。各アダプターには [anythingmcp.com/guides](https://anythingmcp.com/guides) で 7 言語のセットアップガイドを用意しています。 +呼び出しを転送するだけでは、難しい部分がエージェントに残ります。次にどのツールを呼ぶべきか、そして自社で言う「未完了の注文」が何を指すのか、です。AnythingMCP はその両方を学習し、追加のツール呼び出しではなくコンテキストとして返します。 -| カテゴリー | 例 | -|---|---| -| 📦 物流・配送 | Deutsche Bahn、DHL、DPD、GLS、Shipcloud、Sendcloud | -| 💼 ERP・会計・請求 | [SAP Business One、Odoo、weclapp、Xentral ほか 12 種類の ERP](#erp-connectors)、Lexware Office、sevDesk、Exact Online、bexio | -| 🛍️ E コマース | [Amazon Seller、WooCommerce、Shopware 6、Kaufland、OTTO ほか 8 種類](#e-commerce--marketplace-connectors)、Oxomi | -| 👥 人事・フィールドサービス | Personio、HRWorks、Kenjo、MFR Mobile Field Report | -| 🏛️ 行政・公開データ | VIES VAT、Handelsregister、UK Companies House 🇬🇧、DESTATIS、Bundesbank、OpenPLZ、NINA | -| 🏦 銀行・決済 | Revolut Business、Wise 🇬🇧、PAYONE、Razorpay 🇮🇳、Paystack 🇳🇬 | -| 💬 メッセージング・通信 | WhatsApp、LINE 🇯🇵、TeamViewer | -| 🎾 スポーツ・Web3 | Playtomic、Sorare | -| 🏗️ 建設・地図 | PlanRadar、HERE Geocoding | -| 📈 広告・アナリティクス | Google Ads、Google Analytics 4、Google Search Console、Matomo | -| 🧠 AI 判断モデル | TypeSafe の Jev:yes/no 判定、分類、スコアリングを確率付きで約 300 ms | +- **ナレッジグラフ。** ワークスペースごとに、エンティティ(顧客、注文、製品)とコネクターをまたぐ関係を表したマップです。ツール定義と実際の呼び出しから構築され、手動でも編集できます。保存するのはフィールド名と関係だけで、値は保存しません。各サーバーは `kg_how_to_obtain` ツールでこれを提供するため、エージェントは Shopware の注文から DHL の追跡番号にたどり着く方法を尋ねられます。 +- **AI スキル。** 繰り返される使い方を小さなルール(例:「本日の売上には注文ステータス 2、3、4 を含む」)にまとめます。適用、編集、却下はあなたが決め、適用したものはサーバーの指示に組み込まれます。 -**アダプターは 1 つの JSON ファイルです。** だからこそカタログをこの規模まで増やすことができ、新しいアダプターの追加は最初の貢献にも適しています。必要なものが見つからない場合は、[リクエスト](https://github.com/HelpCode-ai/anythingmcp/issues/new?template=adapter_request.yml)してください。👍 の数を基に優先順位を決めます。[自分で作成](CONTRIBUTING.md)することもできます。 +AI による処理は既定でオフで、お手持ちの OpenAI、OpenRouter、Anthropic のキーを使います。グラフ、エディター、MCP ツールはキーなしでも動きます。[ナレッジグラフのガイド](docs/knowledge-graph.md) --- -## ガイド・クライアント設定・FAQ + -➡️ **[docs/guides.md](docs/guides.md)** — Claude / ChatGPT / Gemini / Copilot / Cursor の設定 · REST / SOAP / GraphQL / データベース / MCP ブリッジのコネクターガイド · API リファレンスとデプロイドキュメント · FAQ。 +## 位置づけ -特定のサービスを探している場合は、**[anythingmcp.com/guides](https://anythingmcp.com/guides)** に各アダプターの詳しい手順があります。 +多くの MCP ゲートウェイは、既存の MCP サーバーを束ねて保護するものです。AnythingMCP はその一歩手前から始めます。すでに運用している API、ERP、データベースから MCP サーバーを生成し、権限管理と監査を備えた 1 つのエンドポイントで提供します。ツールがすでに MCP サーバーで、束ねるだけでよいなら、純粋なゲートウェイで十分かもしれません。詳しい比較:[anythingmcp.com/ja/vs](https://anythingmcp.com/ja/vs)。 --- @@ -370,60 +246,61 @@ AI クライアントは MCP を使いますが、業務システムは REST、S ## よくある質問(FAQ) -**ERP(SAP Business One、Odoo、Xentral など)を Claude や ChatGPT に接続するには?** -[カタログ](#erp-connectors)から ERP のアダプターをインストールして API の認証情報を入力し、MCP サーバーの URL を Claude にはカスタムコネクターとして、ChatGPT にはアプリとして追加します。ERP にアダプターがない場合は、その REST API、SOAP API、または SQL データベースに直接接続してください。最初は読み取りしかできないロールから始めましょう。 +### MCP ゲートウェイとは何ですか? +多数のツールの前に置く単一の MCP エンドポイントで、認証、アクセス制御、監査をまとめて担います。Claude や ChatGPT などの AI クライアントは、各システムではなくゲートウェイに接続します。AnythingMCP は、独自の MCP サーバーを持たない API やデータベースからツールを生成する機能も備えたゲートウェイです。 -**OpenAPI 仕様を MCP サーバーにするには?** -REST コネクターを作成し、仕様を URL か貼り付けでインポートします。各オペレーションが、サーバーの `/mcp` エンドポイント上の MCP ツールになります。コードは不要です。[仕組みはこちら](docs/connectors/rest.md#from-openapi--swagger) +### ERP(SAP、Odoo、Xentral など)を Claude や ChatGPT に接続するには? +[カタログ](#connector-catalog)から ERP のアダプターをインストールし、API の認証情報を入力して、MCP サーバーの URL を Claude にはカスタムコネクターとして、ChatGPT にはアプリとして追加します。アダプターがない場合は、REST API、SOAP API、SQL データベースに直接接続します。まずは読み取り専用のロールから始めてください。 -**SOAP/WSDL サービスを Claude に接続できますか?** -はい。AnythingMCP が WSDL を解析して各オペレーションをツールに変換し、呼び出しのたびに SOAP エンベロープを組み立てます。WCF サービスにも対応しています。認証は HTTP Basic、Bearer、API キーヘッダーで行います。WS-Security ヘッダーはまだ実装されていません。[SOAP コネクターのドキュメント](docs/connectors/soap.md) +### OpenAPI 仕様を MCP サーバーにするには? +REST コネクターを作成し、仕様を URL か貼り付けでインポートします。各操作がサーバーの `/mcp` エンドポイント上の MCP ツールになり、コードは不要です。[仕組み](docs/connectors/rest.md#from-openapi--swagger) -**Claude から SQL Server、Oracle、PostgreSQL のデータベースを安全に照会できますか?** -データベースコネクターは初期設定で読み取り専用です。AnythingMCP は単一の SELECT(または `WITH … SELECT`)だけを実行し、書き込みや複数ステートメントをブロックします。そのうえで、SELECT 権限だけを持つデータベースユーザーを使い、モデルがパラメーターだけを指定する静的クエリーを優先し、ロールごとにツールを許可リストで絞り込んでください。レスポンスマッピングでモデルに渡してはいけない列を削除でき、すべてのクエリーは自社データベース内の監査ログに記録されます。 +### SOAP/WSDL サービスを Claude に接続できますか? +はい。AnythingMCP は WSDL を解析して各操作をツールにし、呼び出しのたびに SOAP エンベロープを組み立てます。WCF サービスにも対応しています。認証は HTTP Basic、Bearer、API キーヘッダーです。WS-Security ヘッダーはまだ実装されていません。[SOAP コネクターのドキュメント](docs/connectors/soap.md) -**Shopware、WooCommerce、Amazon Seller Central を Claude に接続するには?** -ショップやマーケットプレイスに対応する [E コマースアダプター](#e-commerce--marketplace-connectors)をインストールし、認可します。WooCommerce には 49 のツールがあり、Amazon Seller Central は公式の Selling Partner API を使います。Shopware 6 アダプターは Store API を通じてストアフロントのカタログを読み取ります。 +### Claude で SQL Server、Oracle、PostgreSQL を安全にクエリできますか? +クエリツールは既定で読み取り専用です。加えて、SELECT 権限だけを持つデータベースユーザーを使い、モデルがパラメーターだけを渡す静的クエリを優先し、ロールごとにツールをホワイトリスト化してください。レスポンスマッピングでモデルに渡してはいけない列を削除でき、すべてのクエリが監査ログに記録されます。 -**AnythingMCP は MCP ゲートウェイですか?セルフホストで無料ですか?** -はい、3 つともそのとおりです。すべてのコネクターの前段に 1 つの MCP エンドポイントを置き、OAuth2、RBAC、SSO、監査を備えています。AGPL-3.0 のもとで自社のサーバー上で動作し、商用利用も含まれます。[AnythingMCP Cloud](https://cloud.anythingmcp.com) はオプションのホスト版です。 +### Shopware、WooCommerce、Amazon Seller Central を Claude に接続するには? +お使いのショップやマーケットプレイスの [E コマースアダプター](#e-commerce--marketplace-connectors)をインストールして認可します。WooCommerce には 49 のツールがあり、Amazon Seller Central は公式の Selling Partner API を使い、Shopware 6 アダプターは Store API でストアフロントのカタログを読み取ります。 -**Composio とはどう違いますか?** -Composio はマネージド連携のホスト型カタログです。AnythingMCP は社内の独自 API、SOAP サービス、データベースもツールに変換でき、すべての認証情報を自社のインフラ上に保持できます。[詳しい比較](https://anythingmcp.com/ja/vs/alternatives-to-composio) +### AnythingMCP は無料ですか?セルフホストできますか? +はい。AGPL-3.0 のもと、自社のサーバーで動かせます。商用利用も含まれます。[AnythingMCP Cloud](https://cloud.anythingmcp.com/login?mode=register) はフランクフルトで運用するオプションのホスト版で、7 日間の無料トライアルがあります。 --- ## コミュニティとサポート -- 💬 **質問・ディスカッション** — [GitHub Discussions](https://github.com/HelpCode-ai/anythingmcp/discussions)で、次に追加するアダプターへ投票したり、作成したものを共有したりできます。 -- 🐛 **不具合 / 💡 機能の提案** — [Issues](https://github.com/HelpCode-ai/anythingmcp/issues) · 🆘 [SUPPORT.md](SUPPORT.md) -- 🔐 **セキュリティ** — 公開 Issue は作成せず、[SECURITY.md](SECURITY.md) の手順に従ってください。 -- 🏢 ドイツ・フライブルクの [helpcode.ai](https://helpcode.ai) が開発しています。AI を活用して開発し、人がレビューしています。対象となる部分や進め方は [AUTHORS.md](AUTHORS.md) に記載しています。 +- 💬 **質問とアイデア:**[GitHub Discussions](https://github.com/HelpCode-ai/anythingmcp/discussions)。次のアダプターに投票したり、作ったものを共有したりできます。 +- 🐛 **バグと機能要望:**[Issues](https://github.com/HelpCode-ai/anythingmcp/issues) · [サポート](.github/SUPPORT.md) +- 👥 **導入事例:**[本番環境で AnythingMCP を使っている組織](docs/ADOPTERS.md)と、掲載の方法 +- 🔐 **セキュリティ:**公開の issue は作成せず、[セキュリティポリシー](.github/SECURITY.md)に従ってください +- 🤖 **AI エージェントとクローラー向け:**[anythingmcp.com/llms.txt](https://anythingmcp.com/llms.txt) +- 🏢 ドイツ・フライブルクの [helpcode.ai](https://helpcode.ai) が開発しています。AI 支援で開発し、人がレビューしています。どの部分をどのように、は [AUTHORS.md](docs/AUTHORS.md) に記載しています。 ## 貢献する -PR を作成する前に、[貢献ガイド](CONTRIBUTING.md)を読んでください。最も取り組みやすく有用な貢献は、1 つの JSON ファイルからなるアダプターの追加です。そのための[手順を解説した Issue](https://github.com/HelpCode-ai/anythingmcp/issues/150)もあります。 +PR を送る前に[コントリビューションガイド](.github/CONTRIBUTING.md)をお読みください。いちばん手軽で役に立つ貢献はアダプターです。JSON ファイル 1 つで済み、[手順を説明した issue](https://github.com/HelpCode-ai/anythingmcp/issues/150) もあります。 ## License -**Open source** under the [GNU Affero General Public License v3](LICENSE) (AGPL-3.0-only). Commercial use inside your own company is included and always was; the copyleft obligation only starts if you modify AnythingMCP and offer the modified version to others over a network. Cloud-operator code under `ee/` is separately licensed and is not required for self-hosting — see the [License FAQ](docs/license-faq.md). - +[GNU Affero General Public License v3](LICENSE)(AGPL-3.0-only)のもとで**オープンソース**です。自社内での商用利用は当初から認められています。コピーレフトの義務が生じるのは、AnythingMCP を改変し、その改変版をネットワーク経由で他者に提供する場合だけです。`ee/` 配下のクラウド運用者向けコードは別ライセンスで、セルフホストには不要です。[ライセンス FAQ](docs/license-faq.md) を参照してください。 ---

- ⭐ MCP サーバーの実装にかかる 1 週間を節約できたら、スターを付けてください。
- スターは、次の利用者がプロジェクトを見つけるきっかけになり、次に作るアダプターを決める参考にもなります。 + ⭐ MCP サーバーを書く 1 週間を節約できたなら、Star をお願いします。
+ Star は次の人がこのプロジェクトを見つける手がかりになり、次にどのアダプターを作るかを決める材料にもなります。

- スター数の推移 + Star history

- コントリビューター + Contributors

diff --git a/README.md b/README.md index bcebb34d..293a340f 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,15 @@ AnythingMCP turns ERP, e-commerce, REST, SOAP and SQL systems into MCP tools for Claude and ChatGPT: 265 connectors, 21 of them with no API key.

-

AnythingMCP

+

AnythingMCP: self-hosted MCP gateway

English · Deutsch · 简体中文 · 日本語

- Turn any REST/OpenAPI, SOAP, GraphQL or SQL API into MCP tools for Claude, ChatGPT and Copilot.
- A self-hosted MCP server and gateway, no code, 265 ready connectors including ERP and e-commerce: SAP Business One, Odoo, Xentral, weclapp, Shopware, WooCommerce, Amazon Seller, Kaufland and more. + AnythingMCP is an open-source, self-hosted MCP gateway that turns any REST/OpenAPI, SOAP, GraphQL, OData or SQL system into MCP tools for Claude, ChatGPT and Copilot, without writing an MCP server.
+ It ships 265 ready connectors, among them SAP, Odoo, Xentral, weclapp, Shopware, WooCommerce and Amazon Seller, and 21 of them need no API key.

@@ -18,46 +18,23 @@ Release Open source, AGPL-3.0 Docker pulls - Adapters in the catalog - Tools across all adapters - Adapters that need no API key

-**One question in Claude, answered from Etsy, SAP and a logistics API.** AnythingMCP connects the shop from the marketplace, SAP S/4HANA over OData and a REST API from its OpenAPI spec, then Claude works across all three: -

- AnythingMCP demo: Etsy installed from the marketplace, SAP S/4HANA added as an OData connector, a logistics API imported from its OpenAPI spec, then Claude answers which Etsy orders are stuck and whether SAP has stock to resend them + Try the Cloud free for 7 days · Run it yourself · Docs · Connector guides · Discussions

-

▶ Watch the full demo (2:40, with sound)

- -**Run it yourself** — three lines, no clone, [details below](#run-it-yourself): - -```bash -mkdir anythingmcp && cd anythingmcp -curl -fsSLo docker-compose.yml \ - https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env -docker compose up -d # → http://localhost:3000 -``` - ---- - -Three words appear throughout and mean three different things: +**One question in Claude, answered from Etsy, SAP and a logistics API.** The demo installs Etsy from the catalog, adds SAP S/4HANA over OData and imports a logistics API from its OpenAPI spec, then Claude works across all three (2:40, with sound): -- an **adapter** is one of the 265 JSON definitions that ship in this repo — SAP Business One, Odoo, weclapp, Xentral, Shopware, WooCommerce, Amazon Seller, DHL and the rest. 21 of them need no API key at all; the others ask for your credentials at import. -- a **connector** is an adapter, or your own OpenAPI spec / Postman collection / WSDL / GraphQL endpoint / database, once you have configured it in your workspace. Anything you can point at, in minutes, without writing an MCP server. -- an **MCP server** is the URL you hand to Claude. It exposes the connectors you assign to it, and nothing else. +https://github.com/user-attachments/assets/cc8c9ef3-11cf-4eab-aa4d-98472dc554b3 -Everything runs on your infrastructure, so you decide what leaves it. Per-tool response mapping declares which fields ever reach the model; credentials are AES-256-GCM at rest; the audit log keeps the full upstream response on your side. OAuth2, RBAC, SSO and SCIM are in the self-hosted build, not held back for a paid tier. - -**In production at [KOCH Freiburg GmbH](https://www.kochfreiburg.de/)**, where it connects AI assistants to 15+ internal systems — ERP, CRM, SOAP services and on-prem databases. AnythingMCP was extracted from that system by [helpcode.ai](https://helpcode.ai) in Freiburg, Germany, and open-sourced because an adapter catalog grows faster as a community than as a product. +**In production at [KOCH Freiburg GmbH](https://www.kochfreiburg.de/)**, where it connects AI assistants to 15+ internal systems: ERP, CRM, SOAP services and on-prem databases. [helpcode.ai](https://helpcode.ai) extracted it from that system and open-sourced it, because an adapter catalog grows faster as a community than as a product. --- ## Run it yourself -**The recommended path**, and the one measured below. Requires Docker 24+ and `openssl`; on macOS, start Docker Desktop first. +Requires Docker 24+ and `openssl`; on macOS, start Docker Desktop first. No clone needed: ```bash mkdir anythingmcp && cd anythingmcp @@ -67,26 +44,20 @@ printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl docker compose up -d ``` -Open and register — **the first account becomes admin**. +Open and register: **the first account becomes admin**. Your MCP endpoint is `http://localhost:4000/mcp`, the API docs are at `http://localhost:4000/api/docs`. -> **Keep the generated `.env`.** `ENCRYPTION_KEY` is what decrypts the credentials you store. Lose it and every connector has to be re-credentialed; back it up wherever you keep your other secrets. +> **Keep the generated `.env`.** `ENCRYPTION_KEY` decrypts the credentials you store. Lose it and every connector has to be re-credentialed. -| Service | Default URL | -|---|---| -| Web UI | `http://localhost:3000` | -| MCP endpoint | `http://localhost:4000/mcp` | -| Swagger docs | `http://localhost:4000/api/docs` | +On amd64 the image pulls in about 30 s and the API is healthy 24 s later. The image is amd64 only for now; the compose file pins the platform, so it also runs on Apple Silicon under emulation. -*Measured on amd64: 31 s to pull the image, 24 s to a healthy API and a login page. The published image is amd64 only for now — the compose file pins the platform so it also runs on Apple Silicon under Docker Desktop's emulation, where the same boot took 24 s on an M-series laptop but can take a few minutes on older hardware.* - -The quickstart binds to `127.0.0.1` on purpose: nothing in front of it terminates TLS. **For an instance other people or a cloud AI client can reach**, clone the repo and run `./setup.sh` — it asks for a domain, gets certificates through Caddy, generates the secrets and sets the MCP auth mode. See the [Deployment Guide](docs/deployment.md). +The quickstart binds to `127.0.0.1` on purpose, because nothing in front of it terminates TLS. **For an instance other people or a cloud AI client can reach**, clone the repo and run `./setup.sh`: it asks for a domain, gets certificates through Caddy, generates the secrets and sets the MCP auth mode. See the [Deployment Guide](docs/deployment.md).
-Other ways to deploy — managed cloud, Railway, DigitalOcean +Other ways to run it: managed cloud, Railway, DigitalOcean
-[**AnythingMCP Cloud**](https://cloud.anythingmcp.com) is the same AGPL code, operated by us in **Frankfurt, Germany**. Start there to see it work on your own APIs without provisioning anything, and move it in-house when you want the credentials to stop travelling — the connectors are the same either way. DPA/AVV on request via [info@helpcode.ai](mailto:info@helpcode.ai). SSO and SCIM are self-hosted only. +[**AnythingMCP Cloud**](https://cloud.anythingmcp.com) is the same AGPL code, operated by us in **Frankfurt, Germany**, with a 7-day free trial. Start there to try it on your own APIs, and move it in-house when you want the credentials to stop travelling; the connectors are the same either way. DPA/AVV on request via [info@helpcode.ai](mailto:info@helpcode.ai). SSO and SCIM are self-hosted only. [![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/deploy/8-X4WD?referralCode=k30bPV&utm_medium=integration&utm_source=template&utm_campaign=generic)   @@ -96,35 +67,53 @@ The quickstart binds to `127.0.0.1` on purpose: nothing in front of it terminate --- -## Connect any system - -Most companies have no MCP servers yet. They have a REST API, an ERP, a SOAP service and a database. Each of them becomes a set of MCP tools, and one MCP server URL hands them to Claude, ChatGPT or Copilot. +## How it works -### OpenAPI / REST API to MCP +1. **Add a connector.** Install an **adapter** from the catalog (a ready JSON definition for SAP, Odoo, DHL and the rest), or point AnythingMCP at your own OpenAPI spec, WSDL, GraphQL endpoint, Postman collection or database. Once configured in your workspace it is a **connector**, and each of its operations is an MCP tool. +2. **Decide what the model sees.** Rename and describe the tools in the visual editor, drop the fields that must not leave your network, and choose which roles may call which tools. +3. **Hand one URL to your AI client.** An **MCP server** is the endpoint you add to Claude, ChatGPT, Copilot, Gemini or Cursor. It exposes the connectors you assign to it, and nothing else. -Import an OpenAPI 3.x or Swagger 2.0 spec, by URL or by pasting it, and every operation becomes an MCP tool with its parameters, auth and endpoint mapping filled in. Rename and describe the tools in the visual editor so the model picks the right one. [REST connector docs](docs/connectors/rest.md) · [guide](https://anythingmcp.com/guides/rest-api-to-mcp) · [5-minute demo: openapi-to-mcp](https://github.com/HelpCode-ai/openapi-to-mcp) - -### SOAP / WSDL to MCP +--- -Point AnythingMCP at a WSDL and each SOAP operation becomes a tool: envelopes, parameter order and WCF services are handled for you, with Basic, Bearer or API-key auth. That is how a SOAP service from 2009 ends up in front of a 2026 model, in minutes rather than weeks. [SOAP connector docs](docs/connectors/soap.md) · [guide](https://anythingmcp.com/guides/soap-to-mcp) · [5-minute demo: soap-to-mcp](https://github.com/HelpCode-ai/soap-to-mcp) +## Connect any API, SOAP service or database -### SQL database to MCP +Most companies have no MCP servers yet. They have a REST API, an ERP, a SOAP service from 2009 and a database. Each of them becomes a set of MCP tools: -PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, SAP HANA, SQLite and MongoDB. The connector generates schema, example and query tools; you decide whether the model writes SQL or only fills in the parameters of queries you wrote. Query tools are read-only by default: AnythingMCP runs a single SELECT and blocks writes and stacked statements. Add a read-only database user and a role that sees only the tools it needs. [Database connector docs](docs/connectors/database.md) · [SAP HANA](docs/connectors/sap-hana.md) · [guide](https://anythingmcp.com/guides/database-to-mcp) · [5-minute demo: sql-to-mcp](https://github.com/HelpCode-ai/sql-to-mcp) +| Source | What you get | Docs | +|---|---|---| +| **OpenAPI / Swagger (REST)** | Import a spec by URL or paste it; every operation becomes a tool with parameters, auth and endpoint mapping filled in | [REST](docs/connectors/rest.md) · [guide](https://anythingmcp.com/guides/rest-api-to-mcp) · [demo: openapi-to-mcp](https://github.com/HelpCode-ai/openapi-to-mcp) | +| **Postman collection, cURL** | Folders, auth, body modes and `{{variables}}` carry over; every request becomes a tool | [Postman import](docs/connectors/rest.md#from-postman-collection) | +| **SOAP / WSDL** | Each operation becomes a tool; envelopes, parameter order and WCF services are handled for you | [SOAP](docs/connectors/soap.md) · [guide](https://anythingmcp.com/guides/soap-to-mcp) · [demo: soap-to-mcp](https://github.com/HelpCode-ai/soap-to-mcp) | +| **GraphQL** | Introspection turns queries and mutations into tools, or you define the operations yourself | [GraphQL](docs/connectors/graphql.md) · [guide](https://anythingmcp.com/guides/graphql-to-mcp) | +| **OData** (SAP Gateway included) | Reads each service's `$metadata`, so the model sees entity sets, keys and SAP's business labels; V2 and V4 | [OData](docs/connectors/odata.md) · [guide](https://anythingmcp.com/guides/odata-to-mcp) | +| **SQL and MongoDB** | PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, SAP HANA, SQLite and MongoDB: schema, example and query tools, read-only by default | [Database](docs/connectors/database.md) · [SAP HANA](docs/connectors/sap-hana.md) · [guide](https://anythingmcp.com/guides/database-to-mcp) · [demo: sql-to-mcp](https://github.com/HelpCode-ai/sql-to-mcp) | +| **Another MCP server** | Discover its tools and serve them next to your own, behind the same auth and audit | [MCP bridge](docs/connectors/mcp-bridge.md) | -### GraphQL to MCP +Tools register at runtime, without a restart. Per-connector `{{VAR}}` values are interpolated on the server and never shown to the AI. -Introspection turns the queries and mutations of a GraphQL endpoint into MCP tools, or you define the operations yourself. [GraphQL connector docs](docs/connectors/graphql.md) · [guide](https://anythingmcp.com/guides/graphql-to-mcp) +--- -### Postman collection to MCP +## Connector catalog -Import a Postman v2.1 collection: folders, auth, body modes and `{{variables}}` carry over, and every request becomes a tool. cURL commands work the same way. [Postman import docs](docs/connectors/rest.md#from-postman-collection) +265 adapters, exposing 2,400+ tools. Every one has a setup guide on [anythingmcp.com/guides](https://anythingmcp.com/guides), in seven languages. ---- +| Category | Examples | +|---|---| +| 💼 ERP, accounting & invoicing | SAP Business One, SAP S/4HANA, Odoo, weclapp, Xentral, Dynamics NAV, Lexware Office, sevDesk, Exact Online, bexio | +| 🛍️ E-commerce & marketplaces | Amazon Seller, WooCommerce, Shopware 6, Magento, eBay, Etsy, Kaufland, OTTO, Oxomi | +| 📦 Logistics & shipping | Deutsche Bahn, DHL, DPD, GLS, Shipcloud, Sendcloud | +| 👥 HR & field service | Personio, HRWorks, Kenjo, MFR Mobile Field Report | +| 🏛️ Government & public data | VIES VAT, Handelsregister, UK Companies House, DESTATIS, Bundesbank, OpenPLZ, NINA | +| 🏦 Banking & payments | Revolut Business, Wise, PAYONE, Razorpay, Paystack | +| 💬 Messaging | WhatsApp, LINE, TeamViewer | +| 📈 Advertising & analytics | Google Ads, Google Analytics 4, Google Search Console, Matomo | +| 🧠 AI decision models | Jev by TypeSafe: yes/no, classification and scoring with probabilities, in about 300 ms | -## ERP connectors + +
+ERP connectors: 18 systems, with tools and markets -Ready adapters for the ERPs behind most order, stock and invoice questions. Install one, add your credentials, and the tools are live on your MCP server. Each name links to its setup guide. +
| System | Market | Tools | What the AI can do | |---|---|---|---| @@ -151,13 +140,13 @@ Ready adapters for the ERPs behind most order, stock and invoice questions. Inst **Repositories:** [erp-mcp-server](https://github.com/HelpCode-ai/erp-mcp-server) · [weclapp-mcp-server](https://github.com/kochfreiburg/weclapp-mcp-server) · [odoo-mcp-server](https://github.com/keysersoft/odoo-mcp-server) · [sap-mcp-server](https://github.com/HelpCode-ai/sap-mcp-server) · [sap-hana-mcp-server](https://github.com/HelpCode-ai/sap-hana-mcp-server) · [sap-business-one-mcp-server](https://github.com/HelpCode-ai/sap-business-one-mcp-server) · [xentral-mcp-server](https://github.com/kochfreiburg/xentral-mcp-server) -**Your ERP isn't listed, or it's a custom or on-prem build?** Connect it through its [REST API](#openapi--rest-api-to-mcp), [SOAP services](#soap--wsdl-to-mcp) or straight to its [SQL database](#sql-database-to-mcp), read-only. That is how [KOCH Freiburg](https://www.kochfreiburg.de/) runs its ERP in production. - ---- +
-## E-commerce & marketplace connectors + +
+E-commerce & marketplace connectors: 13 shops and marketplaces -Shops and marketplaces, from Amazon and eBay to the DACH marketplaces. Each name links to its setup guide. +
| System | Market | Tools | What the AI can do | |---|---|---|---| @@ -179,94 +168,21 @@ Shops and marketplaces, from Amazon and eBay to the DACH marketplaces. Each name **Repositories:** [ecommerce-mcp-server](https://github.com/HelpCode-ai/ecommerce-mcp-server) · [amazon-seller-mcp-server](https://github.com/keysersoft/amazon-seller-mcp-server) · [billbee-mcp-server](https://github.com/kochfreiburg/billbee-mcp-server) · [magento-mcp-server](https://github.com/keysersoft/magento-mcp-server) · [woocommerce-mcp-server](https://github.com/keysersoft/woocommerce-mcp-server) · [shopware-mcp-server](https://github.com/kochfreiburg/shopware-mcp-server) · [kaufland-mcp-server](https://github.com/kochfreiburg/kaufland-mcp-server) · [otto-market-mcp-server](https://github.com/kochfreiburg/otto-market-mcp-server) ---- - -## What it connects, governs and learns - -### Connect - -- **6 connector types** — [REST](docs/connectors/rest.md), [SOAP](docs/connectors/soap.md), [GraphQL](docs/connectors/graphql.md), [OData](docs/connectors/odata.md) (SAP Gateway included), [Database](docs/connectors/database.md), [MCP-to-MCP bridge](docs/connectors/mcp-bridge.md). Eight database engines: PostgreSQL, MySQL, MariaDB, MSSQL, Oracle, SAP HANA, MongoDB, SQLite. -- **Import from what you already have** — OpenAPI/Swagger, Postman, cURL, WSDL, GraphQL introspection, or tool discovery straight from a running MCP server. -- **The adapter catalog** — [see what ships](#the-adapter-catalog). -- **Visual tool editor** — map parameters to path, query, body and headers; rename and describe tools so the AI reads them the way you meant. -- **Dynamic MCP server** — tools register at runtime, no restart. Per-connector `{{VAR}}` interpolation, hidden from the AI. - -### Govern - -- **[Response shaping](#control-what-the-model-sees)** — declare per tool exactly which fields reach the model, with a live before/after preview. -- **Read-only where it matters.** Every tool carries MCP annotations (`readOnlyHint`, `destructiveHint`), derived from the operation and overridable per tool, so a client can show the difference between reading an invoice and issuing a credit note. Role-based tool whitelisting lets you publish an MCP server that can only read — which is how most people should start with an ERP. -- **Every auth scheme you will meet** — OAuth2 (PKCE and Client Credentials), Bearer, API Key, Basic, HMAC request signing, [LOGIN_TOKEN](docs/connectors/login-token-auth.md) and OAuth 1.0a. -- **Audit logging** — every tool call recorded with input, output, duration and status, in your own database. -- **[SSO](docs/sso.md) and [SCIM](docs/scim-entra-setup.md)** — Entra ID, Google, Okta, Auth0, generic OIDC. Roles sync from your directory groups on every sign-in; disable someone in the directory and their workspace access and MCP API keys die with it (self-hosted only). - -### Learn +
-- **[Knowledge Graph](docs/knowledge-graph.md)** — a per-workspace, PII-safe map of how your connectors' data relates, served back to the agent as an MCP tool so it chains calls across systems correctly. -- **[AI skills](docs/knowledge-graph.md)** — recurring usage turned into small reusable rules and composed into the server's instructions, so they guide the agent without adding a tool call (optional, opt-in). +**An adapter is a single JSON file.** That is why the catalog is this size, and why adding one is a reasonable first contribution. Missing yours? [Request it](https://github.com/HelpCode-ai/anythingmcp/issues/new?template=adapter_request.yml) (we prioritise by 👍) or [build it](.github/CONTRIBUTING.md). Your ERP isn't listed, or it's a custom build? Connect its REST API, its SOAP services or its SQL database directly, read-only. --- -## Knowledge Graph & AI skills - -Forwarding calls leaves the hard part to the agent: knowing which tool to call -next, and what your business actually means by "open order" or "active -customer". AnythingMCP learns both — **how the data in your connectors -relates**, and **how your team really uses the tools** — then feeds that back to -the AI client as context rather than as extra tool calls. - -- **Knowledge Graph** — a per-workspace map of *entities* (customers, orders, - products…) and their *relationships*. It builds itself from tool names, - parameters and the input/output of real calls; an optional AI pass infers the - cross-connector links heuristics miss. It stays **PII-safe**: it stores - entity/field *names* and relationship metadata, never the values. -- **Build it visually** — a graph editor lets you create, edit and delete - entities and connections by hand, add descriptions, and curate what the AI - proposed. -- **Served over MCP** — each server exposes a `kg_how_to_obtain` tool, so the - *customer's* agent can ask "how do I get from a Shopware order to a DHL - tracking number?" and receive chaining hints across connectors. -- **AI skills, written from real usage** — with intent capture on, each tool - call can record *why* it was made. An AI pass turns recurring patterns into - small reusable rules (e.g. *"today's revenue includes order statuses 2, 3 and - 4"*). You Apply, Edit or Dismiss each one, or let auto-apply take the - high-confidence ones unattended. Applied skills are composed into the MCP - server's **instructions** at serve time, so they guide the agent **without - adding a single tool call**. The knowledge your team builds up by using the - system stops living in someone's head. - -The AI passes are **off by default** — opt in with a global env flag *and* a -per-workspace switch, using OpenAI, OpenRouter or Anthropic. The graph, manual -editing and the MCP tool work with no LLM key at all. - -➡️ **[Knowledge Graph & AI skills guide →](docs/knowledge-graph.md)** +## Security and governance ---- +Everything runs on your infrastructure, so you decide what leaves it. OAuth2, RBAC, SSO and SCIM are in the self-hosted build, not held back for a paid tier. -## Control what the model sees - -Every tool can declare **exactly which fields leave your infrastructure**. The -mapping is attached per tool and applied on the way out, so the AI client — and -the third-party model behind it — only ever receives the shape you approved. - -- **Drop what should never travel.** List the paths to remove and they are - stripped before the response reaches the agent: a customer's IBAN, an - employee's salary, an access token an API hands back alongside the data. -- **Or declare the whole output.** A `select` template names the fields to keep - and what to call them; a JMESPath expression covers the reshaping a template - can't express. Where an agent is better served by a stable shape, swap the - value for a placeholder (`"iban": "= [redacted]"`) instead of removing the - field. -- **See it before you save it.** The editor runs the mapping against a real - response and shows the before/after side by side, with the size difference. A - shipped adapter measures **12,172 B → 1,072 B (−91%)** on a four-train result. -- **It fails open by default, and this says so.** If a mapping breaks at - runtime, the raw response is returned and a warning is logged, so one bad - expression cannot take a working tool offline. That default is wrong for - fields that must never travel: set **`"fallbackToRaw": false`** on those - tools and a broken mapping fails the call instead of leaking through it. - -Two payoffs at once: sensitive fields never reach the model, and every field you -drop is a field you don't pay for in the context window. +- **Response mapping.** Each tool declares exactly which fields reach the model: drop a customer's IBAN or an employee's salary, or name the fields to keep. The editor shows the before/after on a real response; a shipped adapter goes from 12,172 B to 1,072 B (−91%), so you also stop paying for those fields in the context window. A broken mapping returns the raw response by default; set `"fallbackToRaw": false` on tools whose fields must never travel, and the call fails instead. +- **Read-only where it matters.** Every tool carries MCP annotations (`readOnlyHint`, `destructiveHint`), derived from the operation and overridable per tool. Role-based tool whitelisting lets you publish an MCP server that can only read, which is how most people should start with an ERP. Database query tools run a single SELECT and block writes and stacked statements. +- **Every auth scheme you will meet.** OAuth2 (PKCE and Client Credentials), Bearer, API key, Basic, HMAC request signing, [LOGIN_TOKEN](docs/connectors/login-token-auth.md) and OAuth 1.0a. Credentials are encrypted at rest with AES-256-GCM. +- **Audit log.** Every tool call is recorded with input, output, duration and status in your own database, including the full upstream response the model never saw. +- **[SSO](docs/sso.md) and [SCIM](docs/scim-entra-setup.md).** Entra ID, Google, Okta, Auth0 or any OIDC provider. Roles sync from your directory groups on every sign-in; disable someone in the directory and their workspace access and MCP API keys go with it. ```json { @@ -279,154 +195,84 @@ drop is a field you don't pay for in the context window. } ``` -> The audit log still records the full upstream response inside your own -> database. Shaping what the agent sees never costs you the evidence of what the -> API actually returned. - -➡️ **[Response mapping reference →](docs/tool-definition.md#3-response-mapping-optional)** +[Response mapping reference](docs/tool-definition.md#3-response-mapping-optional) --- -## Build custom Claude connectors — no code - -Claude supports **custom connectors**: remote MCP servers you add once in *Customize → Connectors*, and that work across Claude.ai, Claude Desktop and Claude Code. AnythingMCP creates that connector **from any API you already have** — without writing an MCP server: +## Use it from Claude, ChatGPT, Copilot and Gemini -1. Import your API spec, or pick a pre-built adapter -2. Adjust tool names, descriptions and parameters in the **visual editor** — what the AI sees is up to you -3. Add your MCP server's URL to Claude as a custom connector (OAuth 2.0 supported out of the box) +The same MCP server works in every client that speaks MCP, so you build a connector once: -Your credentials stay on your infrastructure, every tool call lands in the audit log, and role-based access controls which users see which tools. [Step-by-step guide →](docs/integrations/claude.md) +- **Claude.** Add the server URL as a **custom connector** under *Customize → Connectors*; it then works in Claude.ai, Claude Desktop and Claude Code. OAuth 2.0 is supported out of the box. [Claude setup](docs/integrations/claude.md) +- **ChatGPT.** Apps in ChatGPT are built on MCP. Add the server in ChatGPT's settings, or use it as the tool layer of an Apps SDK app. [ChatGPT setup](docs/integrations/chatgpt.md) +- **Copilot, Gemini, Cursor** and other MCP clients: [client setup guides](docs/guides.md). --- -## Turn your API into a ChatGPT app +## Knowledge Graph and AI skills -**Apps in ChatGPT are built on MCP**, and AnythingMCP gives you that MCP backend without writing one. Point it at your REST, SOAP, GraphQL or database endpoint and you get a ChatGPT-ready connector: add it in ChatGPT's settings (or use it as the tool layer of an Apps SDK app) and ChatGPT can read and act on your business data. +Forwarding calls leaves the hard part to the agent: knowing which tool to call next, and what your business means by "open order". AnythingMCP learns both and hands them back as context, not as extra tool calls. -The same connector works simultaneously in **Claude, ChatGPT, Gemini, Copilot and Cursor** — build once, connect everywhere. [ChatGPT setup guide →](docs/integrations/chatgpt.md) +- **Knowledge Graph.** A per-workspace map of entities (customers, orders, products) and how they relate across connectors, built from tool definitions and real calls, and editable by hand. It stores field names and relationships, never values. Each server exposes it through a `kg_how_to_obtain` tool, so the agent can ask how to get from a Shopware order to a DHL tracking number. +- **AI skills.** Recurring usage turned into small rules ("today's revenue includes order statuses 2, 3 and 4") that you apply, edit or dismiss, and that are composed into the server's instructions. ---- - -## Why AnythingMCP - -AI clients speak MCP, but your systems speak REST, SOAP, GraphQL and SQL. Writing and maintaining a bespoke MCP server per system — with auth, audit and access control — takes weeks each. AnythingMCP is the no-code layer in between: - -| Problem | Solution | -|---|---| -| You have REST APIs but AI clients speak MCP | **REST → MCP** conversion with OpenAPI / Swagger import | -| You have legacy SOAP/WSDL services | **SOAP → MCP** bridge with automatic WSDL parsing | -| You need to query databases from AI agents | **DB → MCP** with auto-generated query tools (7 engines) | -| You want one endpoint for all your APIs | **MCP middleware** that aggregates multiple connectors | -| You need an MCP server for SAP Business One / Odoo / Shopware / … | **The adapter catalog** — install and credential it in a minute | -| You can't ship credentials to a third party | **Runs on your infrastructure** — credentials AES-256-GCM at rest | -| You need auth, audit logs and RBAC | Built-in **OAuth2, audit log and role-based access** — no DIY | -| A third-party model would see every field your API returns | **[Per-tool response mapping](#control-what-the-model-sees)** — drop or reshape fields before they leave your network | -| Your agent calls tools in the wrong order, or misses how two systems connect | **[Knowledge Graph & AI skills](#knowledge-graph--ai-skills)** — chaining hints and learned business rules, served as context | - -**What people actually build with it** - -| | Guides | -|---|---| -| Talk to the ERP from Claude | [SAP Business One](https://anythingmcp.com/guides/connect-sap-business-one-to-claude) · [Odoo](https://anythingmcp.com/guides/connect-odoo-to-claude) · [weclapp](https://anythingmcp.com/guides/weclapp-to-mcp) · [Xentral](https://anythingmcp.com/guides/xentral-to-mcp) | -| Check orders, stock and fees across shops and marketplaces | [Amazon Seller](https://anythingmcp.com/guides/connect-amazon-seller-to-claude) · [WooCommerce](https://anythingmcp.com/guides/connect-woocommerce-to-claude) · [Kaufland](https://anythingmcp.com/guides/connect-kaufland-to-claude) | -| Track parcels | [DHL](https://anythingmcp.com/guides/dhl-tracking-to-mcp) · [GLS](https://anythingmcp.com/guides/gls-tracking-to-mcp) | -| Validate an invoice before paying it | [VIES VAT](https://anythingmcp.com/guides/vies-vat-to-mcp) · [Handelsregister](https://anythingmcp.com/guides/handelsregister-to-mcp) | -| Let agents read a production database, read-only | [Database connectors](docs/connectors/database.md) | -| Bridge a SOAP service from 2009 to a 2026 model | [SOAP → MCP](https://anythingmcp.com/guides/soap-to-mcp) | -| Ask about trains, live delays and routes | [Deutsche Bahn](https://anythingmcp.com/guides/deutsche-bahn-to-mcp) | +The AI passes are off by default and use your own OpenAI, OpenRouter or Anthropic key; the graph, the editor and the MCP tool work without one. [Knowledge Graph guide](docs/knowledge-graph.md) --- -## The adapter catalog +## Where it fits -265 adapters, exposing 2,400+ tools. **21 need no API key**; the rest ask for your credentials at import and the tools are available immediately. Every one has a setup guide on [anythingmcp.com/guides](https://anythingmcp.com/guides), in seven languages. - -| Category | Examples | -|---|---| -| 📦 Logistics & shipping | Deutsche Bahn, DHL, DPD, GLS, Shipcloud, Sendcloud | -| 💼 ERP, accounting & invoicing | [SAP Business One, Odoo, weclapp, Xentral and 12 more ERPs](#erp-connectors), Lexware Office, sevDesk, Exact Online, bexio | -| 🛍️ E-commerce | [Amazon Seller, WooCommerce, Shopware 6, Kaufland, OTTO and 8 more](#e-commerce--marketplace-connectors), Oxomi | -| 👥 HR & field service | Personio, HRWorks, Kenjo, MFR Mobile Field Report | -| 🏛️ Government & public data | VIES VAT, Handelsregister, UK Companies House 🇬🇧, DESTATIS, Bundesbank, OpenPLZ, NINA | -| 🏦 Banking & payments | Revolut Business, Wise 🇬🇧, PAYONE, Razorpay 🇮🇳, Paystack 🇳🇬 | -| 💬 Messaging & communication | WhatsApp, LINE 🇯🇵, TeamViewer | -| 🎾 Sports & Web3 | Playtomic, Sorare | -| 🏗️ Construction & mapping | PlanRadar, HERE Geocoding | -| 📈 Advertising & analytics | Google Ads, Google Analytics 4, Google Search Console, Matomo | -| 🧠 AI decision models | Jev by TypeSafe: yes/no, classification and scoring with probabilities, in about 300 ms | - -**An adapter is a single JSON file.** That is why the catalog is this size, and why adding one is a reasonable first contribution. Missing yours? [Request it](https://github.com/HelpCode-ai/anythingmcp/issues/new?template=adapter_request.yml) — we prioritise by 👍 — or [build it](CONTRIBUTING.md). +Most MCP gateways federate and secure MCP servers you already have. AnythingMCP starts one step earlier: it creates the MCP servers from the APIs, ERPs and databases you already run, then serves, scopes and audits them behind one endpoint. If your tools are already MCP servers and all you need is federation, a pure gateway may be enough. Side-by-side comparisons: [anythingmcp.com/vs](https://anythingmcp.com/vs). --- -## Guides, client setup & FAQ - -➡️ **[docs/guides.md](docs/guides.md)** — Claude / ChatGPT / Gemini / Copilot / Cursor setup · REST / SOAP / GraphQL / Database / MCP-bridge connector guides · API reference & deployment docs · FAQ. - -Looking for a specific service? Every adapter has a step-by-step guide at **[anythingmcp.com/guides](https://anythingmcp.com/guides)**. - ---- - -## How AnythingMCP compares - -AnythingMCP is an MCP gateway that starts one step earlier: it creates the MCP servers from the APIs, ERPs and databases you already run, then serves, scopes and audits them behind one endpoint. The other MCP gateways federate and secure MCP servers you already have, but most companies have none yet — they have a REST API, a SOAP service from 2009 and a database nobody wants to expose. Every project below solves a real problem; they just don't solve the same one. - -| | What it is | Choose it instead if… | -|---|---|---| -| **[ContextForge](https://github.com/IBM/mcp-context-forge)** (IBM) | Federation and a registry in front of MCP servers you already have | Your tools are already MCP servers and what you need is federation, virtual servers and a registry | -| **[Docker MCP Gateway](https://github.com/docker/mcp-gateway)** | Runs catalog MCP servers as containers behind one endpoint, with secret handling | You want vendor-published MCP servers sandboxed in Docker and the published catalog covers you | -| **[MetaMCP](https://github.com/metatool-ai/metamcp)** | Aggregates MCP servers into namespaced endpoints with a middleware layer | You mainly need to group and re-scope existing MCP servers per client | -| **[Composio](https://github.com/ComposioHQ/composio)** | A hosted catalog of managed integrations with auth handled for you | A fixed managed catalog is enough and you never need to add your own SOAP service, in-house API or database | -| **AnythingMCP** | Turns the APIs, SOAP services and databases you already run into MCP tools | Your systems are **not** MCP servers yet, and you want the choice of holding the credentials yourself | - -Side-by-side pages with the full feature tables: [anythingmcp.com/vs](https://anythingmcp.com/vs). - ## FAQ -**How do I connect my ERP (SAP Business One, Odoo, Xentral…) to Claude or ChatGPT?** -Install the ERP's adapter from the [catalog](#erp-connectors), enter the API credentials, and add your MCP server URL to Claude as a custom connector or to ChatGPT as an app. If your ERP has no adapter, connect its REST or SOAP API or its SQL database directly. Start with a role that can only read. +### What is an MCP gateway? +A single MCP endpoint in front of many tools, which handles authentication, access control and audit for all of them. AI clients such as Claude and ChatGPT connect to the gateway instead of to each system. AnythingMCP is a gateway that also generates the tools, from APIs and databases that have no MCP server of their own. -**How do I turn an OpenAPI spec into an MCP server?** -Create a REST connector and import the spec by URL or by pasting it; every operation becomes an MCP tool on your server's `/mcp` endpoint, with no code. [How it works](docs/connectors/rest.md#from-openapi--swagger). +### How do I connect my ERP (SAP, Odoo, Xentral…) to Claude or ChatGPT? +Install the ERP's adapter from the [catalog](#connector-catalog), enter the API credentials, and add your MCP server URL to Claude as a custom connector or to ChatGPT as an app. If your ERP has no adapter, connect its REST or SOAP API or its SQL database directly. Start with a role that can only read. -**Can I connect a SOAP/WSDL service to Claude?** -Yes. AnythingMCP parses the WSDL, turns each operation into a tool and builds the SOAP envelope on every call, WCF services included. It authenticates with HTTP Basic, Bearer or an API-key header; WS-Security headers are not implemented yet. [SOAP connector docs](docs/connectors/soap.md). +### How do I turn an OpenAPI spec into an MCP server? +Create a REST connector and import the spec by URL or by pasting it. Every operation becomes an MCP tool on your server's `/mcp` endpoint, with no code. [How it works](docs/connectors/rest.md#from-openapi--swagger) -**Can Claude query my SQL Server, Oracle or PostgreSQL database safely?** -Database connectors are read-only by default: AnythingMCP only runs a single SELECT (or `WITH … SELECT`) and blocks writes and stacked statements. On top of that, use a database user with SELECT rights only, prefer static queries where the model supplies just the parameters, and whitelist the tools per role. Response mapping drops the columns that must not reach the model, and every query lands in the audit log in your own database. +### Can I connect a SOAP/WSDL service to Claude? +Yes. AnythingMCP parses the WSDL, turns each operation into a tool and builds the SOAP envelope on every call, WCF services included. It authenticates with HTTP Basic, Bearer or an API-key header; WS-Security headers are not implemented yet. [SOAP connector docs](docs/connectors/soap.md) -**How do I connect Shopware, WooCommerce or Amazon Seller Central to Claude?** -Install the [e-commerce adapter](#e-commerce--marketplace-connectors) for your shop or marketplace and authorise it. WooCommerce comes with 49 tools, Amazon Seller Central uses the official Selling Partner API, and the Shopware 6 adapter reads the storefront catalog through the Store API. +### Can Claude query my SQL Server, Oracle or PostgreSQL database safely? +Query tools are read-only by default. On top of that, use a database user with SELECT rights only, prefer static queries where the model supplies just the parameters, and whitelist the tools per role. Response mapping drops the columns that must not reach the model, and every query lands in your audit log. -**Is AnythingMCP an MCP gateway? Is it self-hosted and free?** -Yes on all three: one MCP endpoint in front of every connector, with OAuth2, RBAC, SSO and audit. It runs on your own servers under AGPL-3.0, commercial use included; [AnythingMCP Cloud](https://cloud.anythingmcp.com) is the optional hosted version. +### How do I connect Shopware, WooCommerce or Amazon Seller Central to Claude? +Install the [e-commerce adapter](#e-commerce--marketplace-connectors) for your shop or marketplace and authorise it. WooCommerce comes with 49 tools, Amazon Seller Central uses the official Selling Partner API, and the Shopware 6 adapter reads the storefront catalog through the Store API. -**How is it different from Composio?** -Composio is a hosted catalog of managed integrations. AnythingMCP also turns your own in-house APIs, SOAP services and databases into tools, and can keep every credential on your infrastructure. [Full comparison](https://anythingmcp.com/vs/alternatives-to-composio). +### Is AnythingMCP free, and can I self-host it? +Yes. It runs on your own servers under AGPL-3.0, commercial use included. [AnythingMCP Cloud](https://cloud.anythingmcp.com/login?mode=register) is the optional hosted version, operated in Frankfurt, with a 7-day free trial. --- -## Community & support +## Community and support -- 💬 **Questions & discussions** — [GitHub Discussions](https://github.com/HelpCode-ai/anythingmcp/discussions) — vote on the next adapter, share what you've built -- 🐛 **Bugs / 💡 features** — [Issues](https://github.com/HelpCode-ai/anythingmcp/issues) · 🆘 [SUPPORT.md](SUPPORT.md) -- 👥 **Adopters** — [ADOPTERS.md](ADOPTERS.md) — who runs AnythingMCP in production, and how to add yourself -- 🔐 **Security** — please do not open a public issue; follow [SECURITY.md](SECURITY.md) -- 🏢 Built by [helpcode.ai](https://helpcode.ai) in Freiburg, Germany. AI-assisted development, human-reviewed — [AUTHORS.md](AUTHORS.md) says which parts and how. +- 💬 **Questions and ideas:** [GitHub Discussions](https://github.com/HelpCode-ai/anythingmcp/discussions). Vote on the next adapter, share what you've built. +- 🐛 **Bugs and features:** [Issues](https://github.com/HelpCode-ai/anythingmcp/issues) · [Support](.github/SUPPORT.md) +- 👥 **Adopters:** [who runs AnythingMCP in production](docs/ADOPTERS.md), and how to add yourself +- 🔐 **Security:** please do not open a public issue; follow the [security policy](.github/SECURITY.md) +- 🤖 **For AI agents and crawlers:** [anythingmcp.com/llms.txt](https://anythingmcp.com/llms.txt) +- 🏢 Built by [helpcode.ai](https://helpcode.ai) in Freiburg, Germany. AI-assisted development, human-reviewed: [AUTHORS.md](docs/AUTHORS.md) says which parts and how. ## Contributing -Read the [Contributing guide](CONTRIBUTING.md) before opening a PR. The easiest useful contribution is an adapter: one JSON file, and there is a [walkthrough issue](https://github.com/HelpCode-ai/anythingmcp/issues/150) for it. +Read the [Contributing guide](.github/CONTRIBUTING.md) before opening a PR. The easiest useful contribution is an adapter: one JSON file, and there is a [walkthrough issue](https://github.com/HelpCode-ai/anythingmcp/issues/150) for it. ## License -**Open source** under the [GNU Affero General Public License v3](LICENSE) (AGPL-3.0-only). Commercial use inside your own company is included and always was; the copyleft obligation only starts if you modify AnythingMCP and offer the modified version to others over a network. Cloud-operator code under `ee/` is separately licensed and is not required for self-hosting — see the [License FAQ](docs/license-faq.md). +**Open source** under the [GNU Affero General Public License v3](LICENSE) (AGPL-3.0-only). Commercial use inside your own company is included and always was; the copyleft obligation only starts if you modify AnythingMCP and offer the modified version to others over a network. Cloud-operator code under `ee/` is separately licensed and is not required for self-hosting; see the [License FAQ](docs/license-faq.md). ---

⭐ If this saved you a week of writing MCP servers, star it.
- Stars are how the next person finds it — and how we decide which adapter to build next. + Stars are how the next person finds it, and how we decide which adapter to build next.

diff --git a/README.zh-CN.md b/README.zh-CN.md index a41a3791..6da2bd70 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -2,15 +2,15 @@ AnythingMCP 将 ERP、电子商务、REST、SOAP 和 SQL 系统转化为 Claude 和 ChatGPT 可用的 MCP 工具:265 个连接器,其中 21 个无需 API 密钥。

-

AnythingMCP

+

AnythingMCP:自行托管的 MCP 网关

English · Deutsch · 简体中文 · 日本語

- 将任意 REST/OpenAPI、SOAP、GraphQL 或 SQL API 转化为 Claude、ChatGPT 和 Copilot 可用的 MCP 工具。
- 自行托管的 MCP 服务器与网关,无需编写代码,265 个现成适配器开箱即用,涵盖 ERP 和电子商务:SAP Business One、Odoo、Xentral、weclapp、Shopware、WooCommerce、Amazon Seller、Kaufland 等。 + AnythingMCP 是一个开源、可自行托管的 MCP 网关,无需编写 MCP 服务器,即可将任意 REST/OpenAPI、SOAP、GraphQL、OData 或 SQL 系统转化为 Claude、ChatGPT 和 Copilot 可用的 MCP 工具。
+ 它自带 265 个现成适配器,涵盖 SAP、Odoo、Xentral、weclapp、Shopware、WooCommerce 和 Amazon Seller 等,其中 21 个无需 API 密钥。

@@ -20,35 +20,15 @@ Docker pulls

-**在 Claude 中提一个问题,答案来自 Etsy、SAP 和一个物流 API。** AnythingMCP 从市场接入 Etsy,通过 OData 接入 SAP S/4HANA,并根据 OpenAPI 规范导入 REST API,随后 Claude 即可跨三个系统工作: -

- AnythingMCP 演示:从市场安装 Etsy,将 SAP S/4HANA 添加为 OData 连接器,根据 OpenAPI 规范导入物流 API,然后 Claude 回答哪些 Etsy 订单卡在运输中,以及 SAP 是否有库存可以补发。 + 免费试用云版 7 天 · 自己运行 · 文档 · 连接器指南 · Discussions

-

▶ 观看完整演示(2:40,有声音)

- -**自己运行试试** — 三行命令,无需克隆仓库,[详细说明见下文](#run-it-yourself): - -```bash -mkdir anythingmcp && cd anythingmcp -curl -fsSLo docker-compose.yml \ - https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env -docker compose up -d # → http://localhost:3000 -``` - ---- - -本文反复使用的三个术语,分别指不同的概念: - -- **适配器(adapter)**:本仓库随附的 265 个 JSON 定义之一,例如 SAP Business One、Odoo、weclapp、Xentral、Shopware、WooCommerce、Amazon Seller、DHL 等。其中 21 个完全不需要 API 密钥,其余适配器会在导入时要求你提供相应凭据。 -- **连接器(connector)**:在工作区中配置好的适配器,或你自己的 OpenAPI 规范、Postman 集合、WSDL、GraphQL 端点或数据库。只要有可连接的目标,就能在几分钟内完成配置,无需编写 MCP 服务器。 -- **MCP 服务器**:你提供给 Claude 的那个 URL。它只公开分配给它的连接器,不会公开其他连接器。 +**在 Claude 中提一个问题,答案来自 Etsy、SAP 和一个物流 API。** 演示中,先从目录安装 Etsy,再通过 OData 添加 SAP S/4HANA,并根据 OpenAPI 规范导入一个物流 API,随后 Claude 同时使用这三个系统(2:40,有声音,英文): -所有组件都运行在你自己的基础设施上,因此你可以决定哪些数据能够离开它。每个工具的响应映射定义哪些字段可以到达模型;凭据以 AES-256-GCM 加密存储;完整的上游响应则保存在你自己的审计日志中。OAuth2、RBAC、SSO 和 SCIM 已包含在自行托管版本中,并非付费套餐专属功能。 +https://github.com/user-attachments/assets/cc8c9ef3-11cf-4eab-aa4d-98472dc554b3 -**[KOCH Freiburg GmbH](https://www.kochfreiburg.de/) 已在生产环境使用 AnythingMCP**,将 AI 助手连接到 15 个以上的内部系统,包括 ERP、CRM、SOAP 服务和本地数据库。德国弗赖堡的 [helpcode.ai](https://helpcode.ai) 将 AnythingMCP 从该系统中提取出来并开源,因为适配器目录由社区共同建设,比作为单一产品发展得更快。 +**[KOCH Freiburg GmbH](https://www.kochfreiburg.de/) 已在生产环境使用 AnythingMCP**,将 AI 助手连接到 15 个以上的内部系统,包括 ERP、CRM、SOAP 服务和本地数据库。[helpcode.ai](https://helpcode.ai) 将它从该系统中提取出来并开源,因为适配器目录由社区共同建设,比作为单一产品发展得更快。 --- @@ -56,7 +36,7 @@ docker compose up -d # → http://localhost:3000 ## 自己运行 -**推荐使用以下方式**,下方的性能测量也基于此方式。需要 Docker 24+ 和 `openssl`;在 macOS 上,请先启动 Docker Desktop。 +需要 Docker 24+ 和 `openssl`;在 macOS 上请先启动 Docker Desktop。无需克隆仓库: ```bash mkdir anythingmcp && cd anythingmcp @@ -66,26 +46,20 @@ printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl docker compose up -d ``` -打开 并注册 — **第一个账户将成为管理员**。 +打开 并注册:**第一个账户会成为管理员**。MCP 端点为 `http://localhost:4000/mcp`,API 文档位于 `http://localhost:4000/api/docs`。 -> **请妥善保存生成的 `.env` 文件。** `ENCRYPTION_KEY` 用于解密已存储的凭据。如果丢失它,就必须重新为每个连接器配置凭据。请将其备份到你保存其他机密信息的位置。 - -| 服务 | 默认 URL | -|---|---| -| Web 界面 | `http://localhost:3000` | -| MCP 端点 | `http://localhost:4000/mcp` | -| Swagger 文档 | `http://localhost:4000/api/docs` | +> **请保存生成的 `.env`。** `ENCRYPTION_KEY` 用于解密你存储的凭据。一旦丢失,每个连接器都必须重新填写凭据。 -*amd64 实测:拉取镜像耗时 31 秒,API 就绪并显示登录页面耗时 24 秒。目前发布的镜像仅支持 amd64。Compose 文件明确指定了平台,因此也可以通过 Docker Desktop 的模拟功能在 Apple Silicon 上运行。在一台 M 系列芯片笔记本上,同样的启动过程耗时 24 秒,但在较旧的硬件上可能需要几分钟。* +在 amd64 上,镜像拉取约需 30 秒,之后 24 秒 API 即可就绪。镜像目前仅提供 amd64 版本;compose 文件固定了平台,因此在 Apple Silicon 上也能通过模拟运行。 -快速启动配置有意将服务绑定到 `127.0.0.1`,因为前面还没有负责 TLS 终止的组件。**如果需要让其他人或云端 AI 客户端访问实例**,请克隆仓库并运行 `./setup.sh`。该脚本会询问域名、通过 Caddy 获取证书、生成机密信息,并设置 MCP 认证模式。详见[部署指南](docs/deployment.md)。 +快速启动有意只绑定到 `127.0.0.1`,因为前面没有任何组件终止 TLS。**如果实例需要被其他人或云端 AI 客户端访问**,请克隆仓库并运行 `./setup.sh`:它会询问域名、通过 Caddy 获取证书、生成密钥并设置 MCP 认证模式。参见[部署指南](docs/deployment.md)。
-其他部署方式 — 托管云、Railway、DigitalOcean +其他运行方式:托管云、Railway、DigitalOcean
-[**AnythingMCP Cloud**](https://cloud.anythingmcp.com) 使用相同的 AGPL 代码,由我们在**德国法兰克福**运营。你可以先在那里连接自己的 API,体验功能,而无需自行准备基础设施;如果之后希望将凭据保留在内部,也可以迁移到自行托管环境,两种方式使用相同的连接器。可通过 [info@helpcode.ai](mailto:info@helpcode.ai) 申请 DPA/AVV。SSO 和 SCIM 仅适用于自行托管版本。 +[**AnythingMCP Cloud**](https://cloud.anythingmcp.com) 使用同一套 AGPL 代码,由我们在德国**法兰克福**运营,可免费试用 7 天。你可以先在云端用自己的 API 试用,当你希望凭据不再离开内网时再迁回自有环境;连接器完全相同。如需 DPA/AVV,请联系 [info@helpcode.ai](mailto:info@helpcode.ai)。SSO 和 SCIM 仅在自行托管版本中提供。 [![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/deploy/8-X4WD?referralCode=k30bPV&utm_medium=integration&utm_source=template&utm_campaign=generic)   @@ -95,49 +69,59 @@ docker compose up -d --- - - -## 连接任意系统 - -大多数企业还没有 MCP 服务器,它们有的是 REST API、ERP、SOAP 服务和数据库。每个系统都可以变成一组 MCP 工具,再通过一个 MCP 服务器 URL 提供给 Claude、ChatGPT 或 Copilot。 - - - -### OpenAPI / REST API 转 MCP - -通过 URL 或直接粘贴导入 OpenAPI 3.x 或 Swagger 2.0 规范,每个操作都会成为一个 MCP 工具,参数、认证和端点映射均已自动填好。你可以在可视化编辑器中为工具重命名并添加描述,帮助模型选对工具。[REST 连接器文档](docs/connectors/rest.md) · [指南](https://anythingmcp.com/zh/guides/rest-api-to-mcp) · [5 分钟演示: openapi-to-mcp](https://github.com/HelpCode-ai/openapi-to-mcp) + - +## 工作原理 -### SOAP / WSDL 转 MCP +1. **添加连接器。** 从目录安装一个**适配器**(为 SAP、Odoo、DHL 等准备好的 JSON 定义),或者把你自己的 OpenAPI 规范、WSDL、GraphQL 端点、Postman 集合或数据库交给 AnythingMCP。在工作区中配置完成后,它就是一个**连接器**,其中的每个操作都是一个 MCP 工具。 +2. **决定模型能看到什么。** 在可视化编辑器中重命名并描述工具,删除不能离开你网络的字段,并决定哪些角色可以调用哪些工具。 +3. **把一个 URL 交给 AI 客户端。** **MCP 服务器**就是你添加到 Claude、ChatGPT、Copilot、Gemini 或 Cursor 中的端点。它只公开分配给它的连接器。 -将 AnythingMCP 指向一个 WSDL,每个 SOAP 操作都会成为一个工具:SOAP 信封、参数顺序和 WCF 服务都会自动处理,认证支持 Basic、Bearer 和 API 密钥。这样,2009 年的 SOAP 服务只需几分钟而不是几周,就能交给 2026 年的模型使用。[SOAP 连接器文档](docs/connectors/soap.md) · [指南](https://anythingmcp.com/zh/guides/soap-to-mcp) · [5 分钟演示: soap-to-mcp](https://github.com/HelpCode-ai/soap-to-mcp) +--- - + -### SQL 数据库转 MCP +## 连接任意 API、SOAP 服务或数据库 -支持 PostgreSQL、MySQL、MariaDB、SQL Server、Oracle、SAP HANA、SQLite 和 MongoDB。连接器会生成查看 schema、示例和查询的工具;由你决定模型是自己编写 SQL,还是只为你预先写好的查询填写参数。查询工具默认只读,写操作会被拦截。此外,请为它配置一个只读数据库用户,并分配一个只能看到所需工具的角色。[数据库连接器文档](docs/connectors/database.md) · [指南](https://anythingmcp.com/zh/guides/database-to-mcp) · [5 分钟演示: sql-to-mcp](https://github.com/HelpCode-ai/sql-to-mcp) +大多数公司还没有 MCP 服务器。他们有的是一个 REST API、一套 ERP、一个 2009 年的 SOAP 服务和一个数据库。它们都能变成 MCP 工具: - +| 来源 | 你将得到 | 文档 | +|---|---|---| +| **OpenAPI / Swagger(REST)** | 通过 URL 导入或直接粘贴规范;每个操作都会变成一个工具,参数、认证和端点映射已自动填好 | [REST](docs/connectors/rest.md) · [指南](https://anythingmcp.com/zh/guides/rest-api-to-mcp) · [演示:openapi-to-mcp](https://github.com/HelpCode-ai/openapi-to-mcp) | +| **Postman 集合、cURL** | 文件夹、认证、请求体模式和 `{{variables}}` 都会保留;每个请求都会变成一个工具 | [Postman 导入](docs/connectors/rest.md#from-postman-collection) | +| **SOAP / WSDL** | 每个操作变成一个工具;信封、参数顺序和 WCF 服务都会自动处理 | [SOAP](docs/connectors/soap.md) · [指南](https://anythingmcp.com/zh/guides/soap-to-mcp) · [演示:soap-to-mcp](https://github.com/HelpCode-ai/soap-to-mcp) | +| **GraphQL** | 通过内省把查询和变更转化为工具,也可以自行定义操作 | [GraphQL](docs/connectors/graphql.md) · [指南](https://anythingmcp.com/zh/guides/graphql-to-mcp) | +| **OData**(包括 SAP Gateway) | 读取每个服务的 `$metadata`,让模型看到实体集、键和 SAP 的业务标签;支持 V2 和 V4 | [OData](docs/connectors/odata.md) · [指南](https://anythingmcp.com/zh/guides/odata-to-mcp) | +| **SQL 和 MongoDB** | PostgreSQL、MySQL、MariaDB、SQL Server、Oracle、SAP HANA、SQLite 和 MongoDB:结构、示例和查询工具,默认只读 | [数据库](docs/connectors/database.md) · [SAP HANA](docs/connectors/sap-hana.md) · [指南](https://anythingmcp.com/zh/guides/database-to-mcp) · [演示:sql-to-mcp](https://github.com/HelpCode-ai/sql-to-mcp) | +| **另一个 MCP 服务器** | 发现它的工具,并与你自己的工具一起提供,共用同一套认证和审计 | [MCP 桥接](docs/connectors/mcp-bridge.md) | -### GraphQL 转 MCP +工具在运行时注册,无需重启。每个连接器的 `{{VAR}}` 值在服务器端替换,不会展示给 AI。 -通过内省,GraphQL 端点的查询(query)和变更(mutation)会转化为 MCP 工具;你也可以自行定义操作。[GraphQL 连接器文档](docs/connectors/graphql.md) · [指南](https://anythingmcp.com/zh/guides/graphql-to-mcp) +--- - + -### Postman 集合转 MCP +## 连接器目录 -导入 Postman v2.1 集合:文件夹、认证、请求体模式和 `{{variables}}` 都会保留,每个请求都会成为一个工具。cURL 命令同样适用。[Postman 导入文档](docs/connectors/rest.md#from-postman-collection) +共 265 个适配器,提供 2,400 多个工具。每个适配器都在 [anythingmcp.com/zh/guides](https://anythingmcp.com/zh/guides) 上提供七种语言的配置指南。 ---- +| 类别 | 示例 | +|---|---| +| 💼 ERP、会计与开票 | SAP Business One、SAP S/4HANA、Odoo、weclapp、Xentral、Dynamics NAV、Lexware Office、sevDesk、Exact Online、bexio | +| 🛍️ 电子商务与电商平台 | Amazon Seller、WooCommerce、Shopware 6、Magento、eBay、Etsy、Kaufland、OTTO、Oxomi | +| 📦 物流与运输 | Deutsche Bahn、DHL、DPD、GLS、Shipcloud、Sendcloud | +| 👥 人力资源与现场服务 | Personio、HRWorks、Kenjo、MFR Mobile Field Report | +| 🏛️ 政府与公共数据 | VIES 增值税号、Handelsregister、UK Companies House、DESTATIS、Bundesbank、OpenPLZ、NINA | +| 🏦 银行与支付 | Revolut Business、Wise、PAYONE、Razorpay、Paystack | +| 💬 即时通讯 | WhatsApp、LINE、TeamViewer | +| 📈 广告与分析 | Google Ads、Google Analytics 4、Google Search Console、Matomo | +| 🧠 AI 决策模型 | TypeSafe 的 Jev:是/否判断、分类和带概率的评分,约 300 毫秒 | +
+ERP 连接器:18 个系统,含工具数和市场 -## ERP 连接器 - -为大多数订单、库存和发票问题背后的 ERP 提供现成适配器。安装适配器并填入凭据后,工具即可在你的 MCP 服务器上使用。点击系统名称即可查看对应的设置指南。 +
| 系统 | 市场 | 工具数 | AI 可以做什么 | |---|---|---|---| @@ -164,15 +148,13 @@ docker compose up -d **代码仓库:** [erp-mcp-server](https://github.com/HelpCode-ai/erp-mcp-server) · [weclapp-mcp-server](https://github.com/kochfreiburg/weclapp-mcp-server) · [odoo-mcp-server](https://github.com/keysersoft/odoo-mcp-server) · [sap-mcp-server](https://github.com/HelpCode-ai/sap-mcp-server) · [sap-hana-mcp-server](https://github.com/HelpCode-ai/sap-hana-mcp-server) · [sap-business-one-mcp-server](https://github.com/HelpCode-ai/sap-business-one-mcp-server) · [xentral-mcp-server](https://github.com/kochfreiburg/xentral-mcp-server) -**你的 ERP 不在列表中,或者是定制开发、本地部署的系统?** 可以通过它的 [REST API](#openapi--rest-api-to-mcp)、[SOAP 服务](#soap--wsdl-to-mcp) 连接,也可以以只读方式直接连接它的 [SQL 数据库](#sql-database-to-mcp)。[KOCH Freiburg](https://www.kochfreiburg.de/) 在生产环境中就是这样接入其 ERP 的。 - ---- +
+
+电子商务与电商平台连接器:13 个商店和平台 -## 电子商务与电商平台连接器 - -覆盖网店和电商平台,从 Amazon、eBay 到 DACH 地区的电商平台。点击系统名称即可查看对应的设置指南。 +
| 系统 | 市场 | 工具数 | AI 可以做什么 | |---|---|---|---| @@ -194,78 +176,23 @@ docker compose up -d **代码仓库:** [ecommerce-mcp-server](https://github.com/HelpCode-ai/ecommerce-mcp-server) · [amazon-seller-mcp-server](https://github.com/keysersoft/amazon-seller-mcp-server) · [billbee-mcp-server](https://github.com/kochfreiburg/billbee-mcp-server) · [magento-mcp-server](https://github.com/keysersoft/magento-mcp-server) · [woocommerce-mcp-server](https://github.com/keysersoft/woocommerce-mcp-server) · [shopware-mcp-server](https://github.com/kochfreiburg/shopware-mcp-server) · [kaufland-mcp-server](https://github.com/kochfreiburg/kaufland-mcp-server) · [otto-market-mcp-server](https://github.com/kochfreiburg/otto-market-mcp-server) ---- - -## 连接、管理与学习 - -### 连接 - -- **6 种连接器类型** — [REST](docs/connectors/rest.md)、[SOAP](docs/connectors/soap.md)、[GraphQL](docs/connectors/graphql.md)、[OData](docs/connectors/odata.md)(含 SAP Gateway)、[数据库](docs/connectors/database.md)、[MCP 到 MCP 桥接](docs/connectors/mcp-bridge.md)。支持八种数据库引擎:PostgreSQL、MySQL、MariaDB、MSSQL、Oracle、SAP HANA、MongoDB、SQLite。 -- **导入现有资源** — OpenAPI/Swagger、Postman、cURL、WSDL、GraphQL 内省,或直接从运行中的 MCP 服务器发现工具。 -- **适配器目录** — [查看已随附的内容](#the-adapter-catalog)。 -- **可视化工具编辑器** — 将参数映射到路径、查询参数、请求体和请求头;调整工具的名称和描述,让 AI 按照你的意图理解它们。 -- **动态 MCP 服务器** — 工具在运行时注册,无需重启。支持每个连接器独立的 `{{VAR}}` 插值,且对 AI 隐藏。 - -### 管理 - -- **[响应塑形](#control-what-the-model-sees)** — 精确定义每个工具可以向模型提供哪些字段,并实时预览处理前后的结果。 -- **在需要的地方只允许读取。** 每个工具都带有 MCP 注解(`readOnlyHint`、`destructiveHint`),根据操作类型生成,也可以按工具覆盖。因此,客户端能够区分读取发票和开具贷项通知单。基于角色的工具白名单可以让你发布一个只读 MCP 服务器,这也是大多数人在接入 ERP 时应采用的起点。 -- **覆盖常见认证方式** — OAuth2(PKCE 和 Client Credentials)、Bearer、API Key、Basic、HMAC 签名、[LOGIN_TOKEN](docs/connectors/login-token-auth.md) 和 OAuth 1.0a。 -- **审计日志** — 每次工具调用的输入、输出、耗时和状态都会记录在你自己的数据库中。 -- **[SSO](docs/sso.md) 和 [SCIM](docs/scim-entra-setup.md)** — 支持 Entra ID、Google、Okta、Auth0 及通用 OIDC。每次登录都会从目录服务的用户组同步角色。在目录中停用用户,其工作区访问权限和 MCP API 密钥也会随之失效(仅适用于自行托管版本)。 - -### 学习 - -- **[知识图谱](docs/knowledge-graph.md)** — 为每个工作区维护一张保护个人身份信息(PII)的关系图,展示连接器数据之间的联系,并以 MCP 工具的形式提供给智能体,帮助它正确串联跨系统调用。 -- **[AI 技能](docs/knowledge-graph.md)** — 将重复出现的使用模式转化为简短、可复用的规则,并合并到服务器指令中,使其无需增加工具调用就能引导智能体(可选,需主动启用)。 - ---- - -## AnythingMCP 与其他项目的区别 - -AnythingMCP 是一个从更早一步开始的 MCP 网关:它根据你已经在运行的 API、ERP 和数据库创建 MCP 服务器,再通过同一个端点提供服务、限定访问范围并进行审计。其他 MCP 网关负责聚合和保护你已经拥有的 MCP 服务器,但大多数企业至今还没有 MCP 服务器,只有 REST API、一个 2009 年的 SOAP 服务,以及不希望直接暴露的数据库。下面的每个项目都在解决实际问题,只是它们解决的并不是同一个问题。 - -| | 项目定位 | 以下情况更适合选择它 | -|---|---|---| -| **[ContextForge](https://github.com/IBM/mcp-context-forge)**(IBM) | 为现有 MCP 服务器提供联邦聚合和注册中心 | 你的工具已经是 MCP 服务器,需要的是联邦聚合、虚拟服务器和注册中心 | -| **[Docker MCP Gateway](https://github.com/docker/mcp-gateway)** | 将目录中的 MCP 服务器作为容器运行在同一个端点后,并处理机密信息 | 你希望将供应商发布的 MCP 服务器隔离在 Docker 中,且现有目录已能满足需求 | -| **[MetaMCP](https://github.com/metatool-ai/metamcp)** | 通过中间件层,将 MCP 服务器聚合到划分了命名空间的端点中 | 你主要需要按客户端对现有 MCP 服务器分组,并重新限定其访问范围 | -| **[Composio](https://github.com/ComposioHQ/composio)** | 提供托管集成目录,并代为处理认证 | 固定的托管目录已足够,且你不需要加入自己的 SOAP 服务、内部 API 或数据库 | -| **AnythingMCP** | 将企业已经运行的 API、SOAP 服务和数据库转化为 MCP 工具 | 你的系统**还不是** MCP 服务器,而且你希望能够选择自行保管凭据 | - -包含完整功能表的逐项比较页面:[anythingmcp.com/vs](https://anythingmcp.com/vs)。 - ---- - - - -## 知识图谱与 AI 技能 - -单纯转发调用,仍会把最困难的部分留给智能体:下一步该调用哪个工具,以及业务中的“未完成订单”或“活跃客户”究竟意味着什么。AnythingMCP 会学习这两方面的内容 — **连接器数据之间的关系**,以及**团队实际使用工具的方式** — 再将其作为上下文提供给 AI 客户端,而不是增加额外的工具调用。 - -- **知识图谱** — 每个工作区都有自己的*实体*(客户、订单、产品等)及其*关系*图。它根据工具名称、参数以及真实调用的输入和输出自动构建;可选的 AI 分析能够推断出启发式规则遗漏的跨连接器关系。它保持 **PII 安全**:只存储实体和字段的*名称*以及关系元数据,绝不存储具体值。 -- **可视化构建** — 图编辑器允许你手动创建、编辑和删除实体及关系,添加描述,并审核 AI 提出的建议。 -- **通过 MCP 提供** — 每个服务器都公开一个 `kg_how_to_obtain` 工具,让*客户的*智能体可以询问“如何从 Shopware 订单找到 DHL 运单号?”,并获得连接器调用链的提示。 -- **从实际使用中生成 AI 技能** — 启用意图记录后,每次工具调用都能记录*为什么*进行这次调用。AI 分析会将重复模式转化为简短、可复用的规则,例如*“今天的营收包括状态为 2、3 和 4 的订单”*。你可以逐条应用、编辑或忽略规则,也可以让系统自动应用置信度高的建议。已应用的技能会在提供服务时合并到 MCP 服务器的**指令**中,**无需增加任何工具调用**就能引导智能体。团队通过使用系统积累的知识,不再只保存在个人的脑海中。 - -AI 分析**默认关闭**。需要同时启用全局环境变量开关*和*工作区开关,可使用 OpenAI、OpenRouter 或 Anthropic。知识图谱、手动编辑和 MCP 工具本身完全不需要 LLM 密钥。 +
-➡️ **[知识图谱与 AI 技能指南 →](docs/knowledge-graph.md)** +**一个适配器就是一个 JSON 文件。** 这正是目录能有这么大规模的原因,也让新增适配器成为很合适的第一次贡献。没有你需要的?[提出需求](https://github.com/HelpCode-ai/anythingmcp/issues/new?template=adapter_request.yml)(我们按 👍 数排序)或[自己构建](.github/CONTRIBUTING.md)。你的 ERP 不在列表中,或者是定制系统?直接以只读方式连接它的 REST API、SOAP 服务或 SQL 数据库。 --- - - -## 控制模型能够看到的内容 + -每个工具都可以**精确定义哪些字段能够离开你的基础设施**。映射按工具配置,并在响应发出前应用。因此,AI 客户端及其背后的第三方模型只能收到你批准的数据结构。 +## 安全与治理 -- **删除不应外传的字段。** 列出需要删除的路径,在响应到达智能体之前将其移除,例如客户的 IBAN、员工薪资,或 API 随数据一并返回的访问令牌。 -- **也可以定义整个输出。** `select` 模板指定保留哪些字段以及它们的输出名称;模板无法表达的数据重组可以使用 JMESPath 表达式。如果保留稳定的结构更适合智能体,可以用占位符替换值(`"iban": "= [redacted]"`),而不是直接删除字段。 -- **保存之前先查看效果。** 编辑器会对真实响应执行映射,将处理前后结果和大小差异并排显示。某个随附适配器对包含四趟列车的结果进行处理时,测得 **12,172 B → 1,072 B(减少 91%)**。 -- **默认采用失败放行行为,并明确说明这一点。** 如果映射在运行时出错,系统会返回原始响应并记录警告,以免一个错误表达式让原本正常工作的工具不可用。但对于绝不能外传的字段,这个默认行为并不合适:请在相应工具上设置 **`"fallbackToRaw": false`**,使映射出错时调用失败,而不是放行原始数据。 +所有组件都运行在你自己的基础设施上,因此由你决定哪些数据可以离开。OAuth2、RBAC、SSO 和 SCIM 已包含在自行托管版本中,并非付费套餐专属功能。 -这样既能避免敏感字段到达模型,也能减少上下文窗口中需要付费处理的内容。 +- **响应映射。** 每个工具都声明哪些字段可以到达模型:删除客户的 IBAN 或员工的薪资,或者只列出要保留的字段。编辑器会基于真实响应显示前后对比;某个内置适配器从 12,172 B 减少到 1,072 B(−91%),这些字段也就不再占用上下文窗口。映射出错时默认返回原始响应;对于字段绝不能外传的工具,请设置 `"fallbackToRaw": false`,此时调用会直接失败。 +- **关键处只读。** 每个工具都带有 MCP 注解(`readOnlyHint`、`destructiveHint`),由操作自动推断,并可按工具覆盖。基于角色的工具白名单可以发布一个只能读取的 MCP 服务器,大多数人接入 ERP 时都应从这里开始。数据库查询工具只执行单条 SELECT,并阻止写入和堆叠语句。 +- **支持你会遇到的各种认证方式。** OAuth2(PKCE 和 Client Credentials)、Bearer、API Key、Basic、HMAC 请求签名、[LOGIN_TOKEN](docs/connectors/login-token-auth.md) 和 OAuth 1.0a。凭据以 AES-256-GCM 加密存储。 +- **审计日志。** 每次工具调用都会连同输入、输出、耗时和状态记录在你自己的数据库中,包括模型从未看到的完整上游响应。 +- **[SSO](docs/sso.md) 和 [SCIM](docs/scim-entra-setup.md)。** Entra ID、Google、Okta、Auth0 或任意 OIDC 提供方。每次登录时从目录组同步角色;在目录中停用某人后,其工作区访问权限和 MCP API 密钥也会一并失效。 ```json { @@ -278,150 +205,102 @@ AI 分析**默认关闭**。需要同时启用全局环境变量开关*和*工 } ``` -> 审计日志仍会将完整的上游响应保存在你自己的数据库中。调整智能体可以看到的内容,不会导致你失去 API 实际返回内容的证据。 - -➡️ **[响应映射参考 →](docs/tool-definition.md#3-response-mapping-optional)** +[响应映射参考](docs/tool-definition.md#3-response-mapping-optional) --- -## 无需代码,创建自定义 Claude 连接器 + -Claude 支持**自定义连接器**:在 *Customize → Connectors* 中添加一次远程 MCP 服务器,即可在 Claude.ai、Claude Desktop 和 Claude Code 中使用。AnythingMCP 可以**从你已有的任意 API 创建这样的连接器**,无需编写 MCP 服务器: +## 在 Claude、ChatGPT、Copilot 和 Gemini 中使用 -1. 导入 API 规范,或选择一个预置适配器。 -2. 在**可视化编辑器**中调整工具名称、描述和参数,由你决定 AI 能够看到的内容。 -3. 将 MCP 服务器的 URL 添加为 Claude 的自定义连接器(开箱即支持 OAuth 2.0)。 +同一个 MCP 服务器适用于所有支持 MCP 的客户端,因此连接器只需构建一次: -凭据保留在你的基础设施上,每次工具调用都会记录到审计日志中,基于角色的访问控制则决定哪些用户可以看到哪些工具。[分步指南 →](docs/integrations/claude.md) +- **Claude。** 在 *Customize → Connectors* 中把服务器 URL 添加为**自定义连接器**,即可在 Claude.ai、Claude Desktop 和 Claude Code 中使用。开箱即支持 OAuth 2.0。[Claude 配置](docs/integrations/claude.md) +- **ChatGPT。** ChatGPT 中的应用基于 MCP。在 ChatGPT 设置中添加服务器,或将其作为 Apps SDK 应用的工具层。[ChatGPT 配置](docs/integrations/chatgpt.md) +- **Copilot、Gemini、Cursor** 及其他 MCP 客户端:[客户端配置指南](docs/guides.md)。 --- -## 将 API 变成 ChatGPT 应用 - -**ChatGPT 中的应用基于 MCP 构建**,AnythingMCP 可以直接提供所需的 MCP 后端。将其指向 REST、SOAP、GraphQL 或数据库端点,即可获得适用于 ChatGPT 的连接器。你可以在 ChatGPT 设置中添加它,或将其作为 Apps SDK 应用的工具层,让 ChatGPT 读取业务数据并执行相应操作。 + -同一个连接器可以同时用于 **Claude、ChatGPT、Gemini、Copilot 和 Cursor**,一次构建,即可在多处连接。[ChatGPT 设置指南 →](docs/integrations/chatgpt.md) - ---- +## 知识图谱与 AI 技能 -## 为什么选择 AnythingMCP? +只转发调用,会把最难的部分留给智能体:知道下一步该调用哪个工具,以及你的业务所说的"未完成订单"究竟指什么。AnythingMCP 会学习这两者,并以上下文的形式交还给客户端,而不是增加额外的工具调用。 -AI 客户端使用 MCP,而你的系统使用 REST、SOAP、GraphQL 和 SQL。为每个系统单独编写和维护 MCP 服务器,同时处理认证、审计和访问控制,每套都可能花费数周。AnythingMCP 就是两者之间的无代码连接层: +- **知识图谱。** 每个工作区一张图,记录实体(客户、订单、产品)及其跨连接器的关系,根据工具定义和真实调用构建,也可以手动编辑。它只存储字段名和关系,从不存储值。每个服务器都通过 `kg_how_to_obtain` 工具提供图谱,智能体可以询问如何从一个 Shopware 订单找到 DHL 运单号。 +- **AI 技能。** 把反复出现的使用方式变成简短规则(例如"今日营收包含订单状态 2、3 和 4"),由你应用、编辑或拒绝,并写入服务器的指令中。 -| 问题 | 解决方案 | -|---|---| -| 已有 REST API,但 AI 客户端使用 MCP | 通过 OpenAPI / Swagger 导入实现 **REST → MCP** 转换 | -| 存在旧的 SOAP / WSDL 服务 | 通过自动 WSDL 解析实现 **SOAP → MCP** 桥接 | -| 需要通过 AI 智能体查询数据库 | 自动生成查询工具,实现 **DB → MCP**(7 种引擎) | -| 希望用一个端点访问所有 API | 聚合多个连接器的 **MCP 中间件** | -| 需要 SAP Business One / Odoo / Shopware 等系统的 MCP 服务器 | 使用**适配器目录**,一分钟内完成安装并配置凭据 | -| 无法将凭据交给第三方 | **运行在你自己的基础设施上**,凭据以 AES-256-GCM 加密存储 | -| 需要认证、审计日志和 RBAC | 内置 **OAuth2、审计日志和基于角色的访问控制**,无需自行实现 | -| 第三方模型会看到 API 响应中的所有字段 | 使用**[每个工具独立的响应映射](#control-what-the-model-sees)**,在字段离开网络前将其删除或重组 | -| 智能体以错误顺序调用工具,或无法理解两个系统之间的关系 | **[知识图谱与 AI 技能](#knowledge-graph--ai-skills)** 提供调用链提示和学到的业务规则,作为上下文交给智能体 | - -**人们实际用它做什么** - -| | 指南 | -|---|---| -| 通过 Claude 与 ERP 交互 | [SAP Business One](https://anythingmcp.com/zh/guides/connect-sap-business-one-to-claude) · [Odoo](https://anythingmcp.com/zh/guides/connect-odoo-to-claude) · [weclapp](https://anythingmcp.com/zh/guides/weclapp-to-mcp) · [Xentral](https://anythingmcp.com/zh/guides/xentral-to-mcp) | -| 查看各网店和电商平台的订单、库存与费用 | [Amazon Seller](https://anythingmcp.com/zh/guides/connect-amazon-seller-to-claude) · [WooCommerce](https://anythingmcp.com/zh/guides/connect-woocommerce-to-claude) · [Kaufland](https://anythingmcp.com/zh/guides/connect-kaufland-to-claude) | -| 追踪包裹 | [DHL](https://anythingmcp.com/guides/dhl-tracking-to-mcp) · [GLS](https://anythingmcp.com/guides/gls-tracking-to-mcp) | -| 付款前核验发票 | [VIES VAT](https://anythingmcp.com/guides/vies-vat-to-mcp) · [Handelsregister](https://anythingmcp.com/guides/handelsregister-to-mcp) | -| 让智能体以只读方式访问生产数据库 | [数据库连接器](docs/connectors/database.md) | -| 将 2009 年的 SOAP 服务连接到 2026 年的模型 | [SOAP → MCP](https://anythingmcp.com/guides/soap-to-mcp) | -| 查询列车、实时晚点信息和路线 | [Deutsche Bahn](https://anythingmcp.com/guides/deutsche-bahn-to-mcp) | +AI 处理默认关闭,使用你自己的 OpenAI、OpenRouter 或 Anthropic 密钥;图谱、编辑器和 MCP 工具在没有密钥时也能使用。[知识图谱指南](docs/knowledge-graph.md) --- - + -## 适配器目录 +## 适用场景 -265 个适配器,提供 2,400 多个工具。**其中 21 个不需要 API 密钥**,其余适配器会在导入时要求提供凭据,导入后工具即可立即使用。每个适配器都在 [anythingmcp.com/guides](https://anythingmcp.com/guides) 上提供七种语言的设置指南。 - -| 分类 | 示例 | -|---|---| -| 📦 物流与配送 | Deutsche Bahn、DHL、DPD、GLS、Shipcloud、Sendcloud | -| 💼 ERP、会计与开票 | [SAP Business One、Odoo、weclapp、Xentral 以及另外 12 款 ERP](#erp-connectors)、Lexware Office、sevDesk、Exact Online、bexio | -| 🛍️ 电子商务 | [Amazon Seller、WooCommerce、Shopware 6、Kaufland、OTTO 以及另外 8 个平台](#e-commerce--marketplace-connectors)、Oxomi | -| 👥 人力资源与现场服务 | Personio、HRWorks、Kenjo、MFR Mobile Field Report | -| 🏛️ 政务与公开数据 | VIES VAT、Handelsregister、UK Companies House 🇬🇧、DESTATIS、Bundesbank、OpenPLZ、NINA | -| 🏦 银行与支付 | Revolut Business、Wise 🇬🇧、PAYONE、Razorpay 🇮🇳、Paystack 🇳🇬 | -| 💬 消息与通信 | WhatsApp、LINE 🇯🇵、TeamViewer | -| 🎾 体育与 Web3 | Playtomic、Sorare | -| 🏗️ 建筑与地图 | PlanRadar、HERE Geocoding | -| 📈 广告与分析 | Google Ads、Google Analytics 4、Google Search Console、Matomo | -| 🧠 AI 决策模型 | TypeSafe 的 Jev:是/否判断、分类和打分,附带概率,约 300 毫秒 | - -**一个适配器就是一个 JSON 文件。** 这既解释了目录为何能够达到现在的规模,也意味着添加适配器很适合作为首次贡献。如果缺少你需要的适配器,可以[提出请求](https://github.com/HelpCode-ai/anythingmcp/issues/new?template=adapter_request.yml),我们会根据 👍 数量安排优先级;也可以[自己构建](CONTRIBUTING.md)。 +大多数 MCP 网关负责聚合和保护你已有的 MCP 服务器。AnythingMCP 往前多走一步:它从你已经在运行的 API、ERP 和数据库生成 MCP 服务器,再通过一个端点统一提供,并带有权限控制和审计。如果你的工具已经是 MCP 服务器,只需要聚合,那么纯网关可能就够了。详细对比:[anythingmcp.com/zh/vs](https://anythingmcp.com/zh/vs)。 --- -## 指南、客户端设置与常见问题 - -➡️ **[docs/guides.md](docs/guides.md)** — Claude / ChatGPT / Gemini / Copilot / Cursor 设置 · REST / SOAP / GraphQL / 数据库 / MCP 桥接连接器指南 · API 参考与部署文档 · 常见问题。 - -在寻找某个具体服务?每个适配器都在 **[anythingmcp.com/guides](https://anythingmcp.com/guides)** 上提供分步指南。 - ## 常见问题 -**如何将我的 ERP(SAP Business One、Odoo、Xentral 等)连接到 Claude 或 ChatGPT?** -从[目录](#erp-connectors)安装该 ERP 的适配器,填入 API 凭据,然后将 MCP 服务器 URL 作为自定义连接器添加到 Claude,或作为应用添加到 ChatGPT。如果你的 ERP 没有现成的适配器,可以直接连接它的 REST 或 SOAP API,或它的 SQL 数据库。建议先从只能读取的角色开始。 +### 什么是 MCP 网关? +位于多个工具前面的单一 MCP 端点,统一负责认证、访问控制和审计。Claude、ChatGPT 等 AI 客户端连接网关,而不是分别连接每个系统。AnythingMCP 是一种还能自行生成工具的网关,工具来自那些没有自己 MCP 服务器的 API 和数据库。 -**如何将 OpenAPI 规范转换为 MCP 服务器?** -创建一个 REST 连接器,通过 URL 或直接粘贴导入规范;每个操作都会成为服务器 `/mcp` 端点上的一个 MCP 工具,无需编写代码。[工作原理](docs/connectors/rest.md#from-openapi--swagger)。 +### 如何把我的 ERP(SAP、Odoo、Xentral……)连接到 Claude 或 ChatGPT? +从[目录](#connector-catalog)安装对应 ERP 的适配器,填写 API 凭据,然后把 MCP 服务器 URL 作为自定义连接器添加到 Claude,或作为应用添加到 ChatGPT。如果没有对应适配器,可以直接连接它的 REST 或 SOAP API,或 SQL 数据库。建议先从只读角色开始。 -**可以将 SOAP/WSDL 服务连接到 Claude 吗?** -可以。AnythingMCP 会解析 WSDL,将每个操作转化为工具,并在每次调用时构建 SOAP 信封,也支持 WCF 服务。认证方式为 HTTP Basic、Bearer 或 API 密钥请求头;WS-Security 请求头尚未实现。[SOAP 连接器文档](docs/connectors/soap.md)。 +### 如何把 OpenAPI 规范变成 MCP 服务器? +创建一个 REST 连接器,通过 URL 或粘贴方式导入规范。每个操作都会成为服务器 `/mcp` 端点上的一个 MCP 工具,无需编写代码。[工作原理](docs/connectors/rest.md#from-openapi--swagger) -**Claude 能安全地查询我的 SQL Server、Oracle 或 PostgreSQL 数据库吗?** -数据库连接器默认只读:AnythingMCP 只执行单条 SELECT(或 `WITH … SELECT`)语句,并拦截写操作和多条语句。在此基础上,请使用只有 SELECT 权限的数据库用户,尽量采用由模型只提供参数的静态查询,并按角色设置工具白名单。响应映射会删除不能到达模型的列,每次查询都会记录在你自己数据库中的审计日志里。 +### 能把 SOAP/WSDL 服务连接到 Claude 吗? +可以。AnythingMCP 解析 WSDL,把每个操作变成工具,并在每次调用时构建 SOAP 信封,也支持 WCF 服务。认证方式为 HTTP Basic、Bearer 或 API Key 请求头;WS-Security 头尚未实现。[SOAP 连接器文档](docs/connectors/soap.md) -**如何将 Shopware、WooCommerce 或 Amazon Seller Central 连接到 Claude?** -为你的网店或电商平台安装对应的[电子商务适配器](#e-commerce--marketplace-connectors)并完成授权。WooCommerce 提供 49 个工具,Amazon Seller Central 使用官方的 Selling Partner API,Shopware 6 适配器则通过 Store API 读取店面商品目录。 +### Claude 能安全地查询我的 SQL Server、Oracle 或 PostgreSQL 数据库吗? +查询工具默认只读。此外,请使用仅有 SELECT 权限的数据库用户,优先使用由模型只提供参数的静态查询,并按角色设置工具白名单。响应映射会删除不能到达模型的列,每次查询都会记录在你的审计日志中。 -**AnythingMCP 是 MCP 网关吗?可以自行托管吗?免费吗?** -三个问题的答案都是肯定的:它在所有连接器前提供一个统一的 MCP 端点,并具备 OAuth2、RBAC、SSO 和审计功能。它以 AGPL-3.0 许可证运行在你自己的服务器上,包括商业用途;[AnythingMCP Cloud](https://cloud.anythingmcp.com) 是可选的托管版本。 +### 如何把 Shopware、WooCommerce 或 Amazon Seller Central 连接到 Claude? +为你的商店或平台安装对应的[电子商务适配器](#e-commerce--marketplace-connectors)并完成授权。WooCommerce 提供 49 个工具,Amazon Seller Central 使用官方 Selling Partner API,Shopware 6 适配器通过 Store API 读取店面目录。 -**它与 Composio 有什么不同?** -Composio 是一个托管的集成目录。AnythingMCP 还能将你自己的内部 API、SOAP 服务和数据库转化为工具,并且可以将所有凭据保留在你自己的基础设施上。[完整比较](https://anythingmcp.com/zh/vs/alternatives-to-composio)。 +### AnythingMCP 免费吗?可以自行托管吗? +可以。它以 AGPL-3.0 许可在你自己的服务器上运行,包括商业用途。[AnythingMCP Cloud](https://cloud.anythingmcp.com/login?mode=register) 是可选的托管版本,在法兰克福运营,可免费试用 7 天。 --- ## 社区与支持 -- 💬 **问题与讨论** — [GitHub Discussions](https://github.com/HelpCode-ai/anythingmcp/discussions),为下一个适配器投票,分享你构建的内容。 -- 🐛 **缺陷 / 💡 功能建议** — [Issues](https://github.com/HelpCode-ai/anythingmcp/issues) · 🆘 [SUPPORT.md](SUPPORT.md) -- 🔐 **安全问题** — 请勿创建公开 Issue,请遵循 [SECURITY.md](SECURITY.md)。 -- 🏢 由德国弗赖堡的 [helpcode.ai](https://helpcode.ai) 开发。开发过程采用 AI 辅助,并由人工审查;[AUTHORS.md](AUTHORS.md) 说明了涉及哪些部分以及具体做法。 +- 💬 **问题与想法:**[GitHub Discussions](https://github.com/HelpCode-ai/anythingmcp/discussions)。为下一个适配器投票,分享你的成果。 +- 🐛 **缺陷与功能请求:**[Issues](https://github.com/HelpCode-ai/anythingmcp/issues) · [支持](.github/SUPPORT.md) +- 👥 **用户:**[哪些团队在生产环境中使用 AnythingMCP](docs/ADOPTERS.md),以及如何添加你自己 +- 🔐 **安全:**请不要公开提交 issue,请遵循[安全策略](.github/SECURITY.md) +- 🤖 **面向 AI 智能体和爬虫:**[anythingmcp.com/llms.txt](https://anythingmcp.com/llms.txt) +- 🏢 由德国弗赖堡的 [helpcode.ai](https://helpcode.ai) 开发。AI 辅助开发,人工审核:[AUTHORS.md](docs/AUTHORS.md) 说明了哪些部分以及如何进行。 ## 参与贡献 -创建 PR 前请先阅读[贡献指南](CONTRIBUTING.md)。最容易上手且有实际价值的贡献是适配器:只需要一个 JSON 文件。你可以参考对应的[分步指导 Issue](https://github.com/HelpCode-ai/anythingmcp/issues/150)。 +提交 PR 前请阅读[贡献指南](.github/CONTRIBUTING.md)。最简单也最有用的贡献是一个适配器:只需一个 JSON 文件,并且有一个[分步说明 issue](https://github.com/HelpCode-ai/anythingmcp/issues/150)。 ## License -**Open source** under the [GNU Affero General Public License v3](LICENSE) (AGPL-3.0-only). Commercial use inside your own company is included and always was; the copyleft obligation only starts if you modify AnythingMCP and offer the modified version to others over a network. Cloud-operator code under `ee/` is separately licensed and is not required for self-hosting — see the [License FAQ](docs/license-faq.md). - +基于 [GNU Affero General Public License v3](LICENSE)(AGPL-3.0-only)**开源**。在你自己公司内部的商业使用始终包含在内;只有当你修改 AnythingMCP 并通过网络向他人提供修改后的版本时,才会产生 copyleft 义务。`ee/` 下面向云运营方的代码采用单独许可,自行托管时并不需要;参见[许可证 FAQ](docs/license-faq.md)。 ---

- ⭐ 如果这个项目帮你省下了一周编写 MCP 服务器的时间,请给它一个 Star。
- Star 帮助更多人发现项目,也帮助我们决定接下来构建哪个适配器。 + ⭐ 如果它帮你省下了一周编写 MCP 服务器的时间,请给个 Star。
+ Star 能让下一个人找到它,也帮助我们决定下一个要构建的适配器。

- Star 历史 + Star history

- 贡献者 + Contributors

diff --git a/ADOPTERS.md b/docs/ADOPTERS.md similarity index 100% rename from ADOPTERS.md rename to docs/ADOPTERS.md diff --git a/AUTHORS.md b/docs/AUTHORS.md similarity index 100% rename from AUTHORS.md rename to docs/AUTHORS.md diff --git a/ROADMAP.md b/docs/ROADMAP.md similarity index 100% rename from ROADMAP.md rename to docs/ROADMAP.md diff --git a/docs/assets/demo-lumen-clay.gif b/docs/assets/demo-lumen-clay.gif deleted file mode 100644 index 6ce8001f..00000000 Binary files a/docs/assets/demo-lumen-clay.gif and /dev/null differ diff --git a/docs/connectors/rest.md b/docs/connectors/rest.md index 5864a7b2..6e94b00e 100644 --- a/docs/connectors/rest.md +++ b/docs/connectors/rest.md @@ -27,7 +27,7 @@ Goal: go from a running AnythingMCP instance to a working MCP tool call against ``` Restart Claude Desktop, then ask: *"Use AnythingMCP to validate VAT number DE123456789."* The tool call appears in the audit log at `/audit`. -If you'd rather use a pre-built adapter (DHL, DPD, Personio, VIES, …) instead of importing from a spec, see [Pre-configured MCP Connectors](../../README.md#pre-configured-mcp-connectors) — those skip steps 2–3. +If you'd rather use a pre-built adapter (DHL, DPD, Personio, VIES, …) instead of importing from a spec, see [Pre-configured MCP Connectors](../../README.md#connector-catalog) — those skip steps 2–3. --- diff --git a/docs/deployment.md b/docs/deployment.md index 5b86bd38..e74bb3ca 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -430,4 +430,4 @@ With both of these in place, AnythingMCP makes no outbound connections to `anyth --- -[Back to README](../README.md) | [API Reference](api-reference.md) | [Integration Guides](../README.md#connect-your-ai-client) +[Back to README](../README.md) | [API Reference](api-reference.md) | [Integration Guides](../README.md#use-it-from-claude-chatgpt-copilot-and-gemini) diff --git a/docs/guides.md b/docs/guides.md index be6fb279..717c01d3 100644 --- a/docs/guides.md +++ b/docs/guides.md @@ -1,6 +1,6 @@ # AnythingMCP — Client setup, connector types & FAQ -Guides for connecting AI clients to AnythingMCP, the connector types you can build, and frequently asked questions. New here? Start with the [README](../README.md) and [Get started in 60 seconds](../README.md#get-started-in-60-seconds). +Guides for connecting AI clients to AnythingMCP, the connector types you can build, and frequently asked questions. New here? Start with the [README](../README.md) and [Get started in 60 seconds](../README.md#run-it-yourself). Per-adapter setup guides (English, German, Italian and more) live at **[anythingmcp.com/guides](https://anythingmcp.com/guides)**. @@ -58,7 +58,7 @@ Run AnythingMCP (self-hosted or [Cloud](https://cloud.anythingmcp.com)), import
Can I build a ChatGPT app from my existing API? -Yes. As of December 2025, OpenAI calls these **apps in ChatGPT** (the term now covers both interactive apps and data connectors), and they're built on MCP via the Apps SDK. AnythingMCP generates the MCP backend from your existing API — add it as an app/connector in ChatGPT, or use it as the tool layer of an Apps SDK app. See [Turn your API into a ChatGPT app](../README.md#turn-your-api-into-a-chatgpt-app). +Yes. As of December 2025, OpenAI calls these **apps in ChatGPT** (the term now covers both interactive apps and data connectors), and they're built on MCP via the Apps SDK. AnythingMCP generates the MCP backend from your existing API — add it as an app/connector in ChatGPT, or use it as the tool layer of an Apps SDK app. See [Turn your API into a ChatGPT app](../README.md#use-it-from-claude-chatgpt-copilot-and-gemini).
diff --git a/scripts/adapter-count.mjs b/scripts/adapter-count.mjs index d2ad318b..ffc80a26 100644 --- a/scripts/adapter-count.mjs +++ b/scripts/adapter-count.mjs @@ -90,18 +90,18 @@ if (args.includes('--check')) { ['CITATION.cff', /\b(\d{2,3})\s+pre-built adapters\b/g], ['server.json', /\b(\d{2,3})\s+(?:pre-built )?(?:adapters|connectors)\b/g], ['package.json', /\b(\d{2,3})\s+pre-built adapters\b/g], - ['README.de.md', /\b(\d{2,3})\s+(?:Connectors|fertige Adapter|JSON-Definitionen|Adapter)\b/g, 4], - ['README.zh-CN.md', /(\d{2,3})\s*个\s*(?:连接器|现成适配器|适配器|JSON 定义)/g, 4], - ['README.ja.md', /(\d{2,3})\s*(?:のコネクター|種類の既製アダプター|個の JSON 定義|個のアダプター)/g, 4], + ['README.de.md', /\b(\d{2,3})\s+(?:Connectors|fertige Adapter|JSON-Definitionen|Adapter)\b/g, 3], + ['README.zh-CN.md', /(\d{2,3})\s*个\s*(?:连接器|现成适配器|适配器|JSON 定义)/g, 3], + ['README.ja.md', /(\d{2,3})\s*(?:のコネクター|種類の既製アダプター|個の JSON 定義|個のアダプター)/g, 3], ]; // Same idea for the "no API key needed" number, which the README, the demo // tools and the website all quote as a selling point. const keylessChecks = [ ['README.md', /\b(\d{1,3})\s+(?:of them\s+)?(?:need|needs)\s+no API key\b/g], ['README.md', /\b(\d{1,3})\s+adapters need no API key\b/g], - ['README.de.md', /\b(\d{1,3})\s+(?:davon|benötigen keinen API-Schlüssel)/g, 3], - ['README.zh-CN.md', /其中\s*(\d{1,3})\s*个/g, 3], - ['README.ja.md', /(\d{1,3})\s*個?\s*は\s*API\s*キー/g, 3], + ['README.de.md', /\b(\d{1,3})\s+(?:davon|benötigen keinen API-Schlüssel)/g, 2], + ['README.zh-CN.md', /其中\s*(\d{1,3})\s*个/g, 2], + ['README.ja.md', /(\d{1,3})\s*個?\s*は\s*API\s*キー/g, 2], ]; const banned = [ // Wording that no longer describes the project. CHANGELOG/LICENSING/license-faq diff --git a/video/demo/.gitignore b/scripts/demo-video/.gitignore similarity index 100% rename from video/demo/.gitignore rename to scripts/demo-video/.gitignore diff --git a/video/demo/README.md b/scripts/demo-video/README.md similarity index 96% rename from video/demo/README.md rename to scripts/demo-video/README.md index e23ebbe2..2dc960f6 100644 --- a/video/demo/README.md +++ b/scripts/demo-video/README.md @@ -113,10 +113,10 @@ python3 build.py # cut list, captions, overlays -> index.html (see th npx hyperframes check npx hyperframes preview --background npx hyperframes render --output ../renders/anythingmcp-demo-lumen-clay-en.mp4 --fps 30 --quality delivery -cd .. && python3 export-web.py # demo.mp4/.webm, 23 s preview loop, poster, README GIF +cd .. && python3 export-web.py # demo.mp4/.webm, 23 s preview loop, poster, README video ``` - **Cut list**: `SCENES` in `build.py`, one line per kept range: clip, source in/out, speed, caption. Claude waits run at 6–8× with a visible speed label; cut after the Send click, before Recordly's zoom-out. - **Look**: overlays follow the Claude Design styleframes (AnythingMCP Design System: Fraunces, Geist, cream/ink/blue); recordings fly in and out in 3D on a dark stage, captions sit below them. - **Music**: a HeyGen catalog track (`npx hyperframes media-use resolve --type bgm`, needs `heygen auth login --oauth`), kept out of git in `compositions/.media/`. Its licence for use outside HeyGen is not confirmed. -- **Publishing**: the site streams the files from DigitalOcean Spaces (`koch-katalog` bucket, `anythingmcp/demo//`, public-read, `Cache-Control: immutable`), so a new cut goes into a new dated folder and `lib/demo-media.ts` in the website repo points at it. The README uses `docs/assets/demo-lumen-clay.gif`. +- **Publishing**: the site streams the files from DigitalOcean Spaces (`koch-katalog` bucket, `anythingmcp/demo//`, public-read, `Cache-Control: immutable`), so a new cut goes into a new dated folder and `lib/demo-media.ts` in the website repo points at it. The README embeds `demo-github.mp4`, uploaded to GitHub by dropping it into a comment box (without posting) so GitHub plays it inline; a new cut needs a new upload and a new link in the four READMEs. diff --git a/video/demo/compositions/AGENTS.md b/scripts/demo-video/compositions/AGENTS.md similarity index 100% rename from video/demo/compositions/AGENTS.md rename to scripts/demo-video/compositions/AGENTS.md diff --git a/video/demo/compositions/CLAUDE.md b/scripts/demo-video/compositions/CLAUDE.md similarity index 100% rename from video/demo/compositions/CLAUDE.md rename to scripts/demo-video/compositions/CLAUDE.md diff --git a/video/demo/compositions/assets/brand/etsy.svg b/scripts/demo-video/compositions/assets/brand/etsy.svg similarity index 100% rename from video/demo/compositions/assets/brand/etsy.svg rename to scripts/demo-video/compositions/assets/brand/etsy.svg diff --git a/video/demo/compositions/assets/brand/logo.svg b/scripts/demo-video/compositions/assets/brand/logo.svg similarity index 100% rename from video/demo/compositions/assets/brand/logo.svg rename to scripts/demo-video/compositions/assets/brand/logo.svg diff --git a/video/demo/compositions/assets/fonts/Fraunces-italic.woff2 b/scripts/demo-video/compositions/assets/fonts/Fraunces-italic.woff2 similarity index 100% rename from video/demo/compositions/assets/fonts/Fraunces-italic.woff2 rename to scripts/demo-video/compositions/assets/fonts/Fraunces-italic.woff2 diff --git a/video/demo/compositions/assets/fonts/Fraunces-normal.woff2 b/scripts/demo-video/compositions/assets/fonts/Fraunces-normal.woff2 similarity index 100% rename from video/demo/compositions/assets/fonts/Fraunces-normal.woff2 rename to scripts/demo-video/compositions/assets/fonts/Fraunces-normal.woff2 diff --git a/video/demo/compositions/assets/fonts/Geist-normal.woff2 b/scripts/demo-video/compositions/assets/fonts/Geist-normal.woff2 similarity index 100% rename from video/demo/compositions/assets/fonts/Geist-normal.woff2 rename to scripts/demo-video/compositions/assets/fonts/Geist-normal.woff2 diff --git a/video/demo/compositions/assets/fonts/GeistMono-normal.woff2 b/scripts/demo-video/compositions/assets/fonts/GeistMono-normal.woff2 similarity index 100% rename from video/demo/compositions/assets/fonts/GeistMono-normal.woff2 rename to scripts/demo-video/compositions/assets/fonts/GeistMono-normal.woff2 diff --git a/video/demo/compositions/assets/fonts/fonts.css b/scripts/demo-video/compositions/assets/fonts/fonts.css similarity index 100% rename from video/demo/compositions/assets/fonts/fonts.css rename to scripts/demo-video/compositions/assets/fonts/fonts.css diff --git a/video/demo/compositions/build.py b/scripts/demo-video/compositions/build.py similarity index 100% rename from video/demo/compositions/build.py rename to scripts/demo-video/compositions/build.py diff --git a/video/demo/compositions/hyperframes.json b/scripts/demo-video/compositions/hyperframes.json similarity index 100% rename from video/demo/compositions/hyperframes.json rename to scripts/demo-video/compositions/hyperframes.json diff --git a/video/demo/compositions/index.html b/scripts/demo-video/compositions/index.html similarity index 100% rename from video/demo/compositions/index.html rename to scripts/demo-video/compositions/index.html diff --git a/video/demo/compositions/meta.json b/scripts/demo-video/compositions/meta.json similarity index 100% rename from video/demo/compositions/meta.json rename to scripts/demo-video/compositions/meta.json diff --git a/video/demo/compositions/package.json b/scripts/demo-video/compositions/package.json similarity index 100% rename from video/demo/compositions/package.json rename to scripts/demo-video/compositions/package.json diff --git a/video/demo/director/check.ts b/scripts/demo-video/director/check.ts similarity index 100% rename from video/demo/director/check.ts rename to scripts/demo-video/director/check.ts diff --git a/video/demo/director/closeextra.ts b/scripts/demo-video/director/closeextra.ts similarity index 100% rename from video/demo/director/closeextra.ts rename to scripts/demo-video/director/closeextra.ts diff --git a/video/demo/director/go.ts b/scripts/demo-video/director/go.ts similarity index 100% rename from video/demo/director/go.ts rename to scripts/demo-video/director/go.ts diff --git a/video/demo/director/lib/browser.ts b/scripts/demo-video/director/lib/browser.ts similarity index 100% rename from video/demo/director/lib/browser.ts rename to scripts/demo-video/director/lib/browser.ts diff --git a/video/demo/director/lib/human.ts b/scripts/demo-video/director/lib/human.ts similarity index 100% rename from video/demo/director/lib/human.ts rename to scripts/demo-video/director/lib/human.ts diff --git a/video/demo/director/lib/scene.ts b/scripts/demo-video/director/lib/scene.ts similarity index 100% rename from video/demo/director/lib/scene.ts rename to scripts/demo-video/director/lib/scene.ts diff --git a/video/demo/director/lib/session.ts b/scripts/demo-video/director/lib/session.ts similarity index 100% rename from video/demo/director/lib/session.ts rename to scripts/demo-video/director/lib/session.ts diff --git a/video/demo/director/mock-backend/server.ts b/scripts/demo-video/director/mock-backend/server.ts similarity index 100% rename from video/demo/director/mock-backend/server.ts rename to scripts/demo-video/director/mock-backend/server.ts diff --git a/video/demo/director/mock-backend/snapshot-tools.ts b/scripts/demo-video/director/mock-backend/snapshot-tools.ts similarity index 96% rename from video/demo/director/mock-backend/snapshot-tools.ts rename to scripts/demo-video/director/mock-backend/snapshot-tools.ts index c1c199b2..652fb875 100644 --- a/video/demo/director/mock-backend/snapshot-tools.ts +++ b/scripts/demo-video/director/mock-backend/snapshot-tools.ts @@ -5,7 +5,7 @@ * tools the real cloud connectors have. * * Run from packages/backend (uses its tsconfig and node_modules): - * npx tsx ../../video/demo/director/mock-backend/snapshot-tools.ts + * npx tsx ../../scripts/demo-video/director/mock-backend/snapshot-tools.ts */ import { readFileSync, writeFileSync } from 'node:fs'; import path from 'node:path'; diff --git a/video/demo/director/native/humanio.swift b/scripts/demo-video/director/native/humanio.swift similarity index 100% rename from video/demo/director/native/humanio.swift rename to scripts/demo-video/director/native/humanio.swift diff --git a/video/demo/director/package-lock.json b/scripts/demo-video/director/package-lock.json similarity index 100% rename from video/demo/director/package-lock.json rename to scripts/demo-video/director/package-lock.json diff --git a/video/demo/director/package.json b/scripts/demo-video/director/package.json similarity index 100% rename from video/demo/director/package.json rename to scripts/demo-video/director/package.json diff --git a/video/demo/director/pages.ts b/scripts/demo-video/director/pages.ts similarity index 100% rename from video/demo/director/pages.ts rename to scripts/demo-video/director/pages.ts diff --git a/video/demo/director/run.ts b/scripts/demo-video/director/run.ts similarity index 100% rename from video/demo/director/run.ts rename to scripts/demo-video/director/run.ts diff --git a/video/demo/director/scenes/claude.ts b/scripts/demo-video/director/scenes/claude.ts similarity index 100% rename from video/demo/director/scenes/claude.ts rename to scripts/demo-video/director/scenes/claude.ts diff --git a/video/demo/director/scenes/web.ts b/scripts/demo-video/director/scenes/web.ts similarity index 100% rename from video/demo/director/scenes/web.ts rename to scripts/demo-video/director/scenes/web.ts diff --git a/video/demo/director/tsconfig.json b/scripts/demo-video/director/tsconfig.json similarity index 100% rename from video/demo/director/tsconfig.json rename to scripts/demo-video/director/tsconfig.json diff --git a/video/demo/export-web.py b/scripts/demo-video/export-web.py similarity index 75% rename from video/demo/export-web.py rename to scripts/demo-video/export-web.py index 3cdae531..2d61efdb 100644 --- a/video/demo/export-web.py +++ b/scripts/demo-video/export-web.py @@ -7,7 +7,9 @@ demo.mp4 / demo.webm full film with sound, for the theatre player demo-preview.mp4 / .webm silent 23 s highlight loop for the page background (product footage only) demo-poster.jpg poster frame - demo.gif README loop (under 10 MB) + demo-github.mp4 full film for the README, under 10 MB (GitHub's upload cap on + free plans); its first frame is the poster, which the player + shows before anyone presses play """ from __future__ import annotations @@ -73,7 +75,6 @@ def loop(cuts, out: Path) -> Path: return out -highlight = loop(HIGHLIGHTS, OUT / "highlight-master.mp4") background = loop(BACKGROUND, OUT / "background-master.mp4") run("-i", str(background), "-vf", "scale=1280:-2", "-c:v", "libx264", "-preset", "slow", "-crf", "30", "-maxrate", "700k", @@ -84,18 +85,21 @@ def loop(cuts, out: Path) -> Path: # Poster. run("-ss", str(POSTER_AT), "-i", str(SRC), "-frames:v", "1", "-q:v", "3", str(OUT / "demo-poster.jpg")) -# README GIF: gifski from PNG frames, shrinking until it fits under 10 MB. -frames = OUT / "gif-frames" -for width, fps, quality in [(960, 12, 70), (880, 12, 65), (800, 10, 60), (720, 10, 55)]: - subprocess.run(["rm", "-rf", str(frames)], check=True) - frames.mkdir() - run("-i", str(highlight), "-vf", f"fps={fps},scale={width}:-2:flags=lanczos", str(frames / "f%04d.png")) - gif = OUT / "demo.gif" - subprocess.run(["gifski", "--quiet", "--fps", str(fps), "--width", str(width), "--quality", str(quality), - "-o", str(gif), *sorted(str(p) for p in frames.glob("f*.png"))], check=True) - if gif.stat().st_size < 9.5e6: +# README video: GitHub plays an uploaded mp4 inline, but only takes 10 MB on a +# free plan. 720p is plenty for an ~830 px column; the poster goes in as the +# first frame (one frame, audio delayed to match) so the player's still is the +# Claude answer rather than an empty title card. Raise the CRF until it fits. +for crf in (26, 27, 28, 30): + github = OUT / "demo-github.mp4" + run("-loop", "1", "-framerate", "30", "-t", "0.0334", "-i", str(OUT / "demo-poster.jpg"), "-i", str(SRC), + "-filter_complex", + "[0:v]scale=1280:720:flags=lanczos,format=yuv420p,setsar=1[p];" + "[1:v]scale=1280:720:flags=lanczos,format=yuv420p,setsar=1[m];" + "[p][m]concat=n=2:v=1:a=0[v];[1:a]adelay=33|33[a]", + "-map", "[v]", "-map", "[a]", "-r", "30", "-c:v", "libx264", "-preset", "slow", "-crf", str(crf), + "-c:a", "aac", "-b:a", "80k", "-movflags", "+faststart", str(github)) + if github.stat().st_size < 9.5e6: break -subprocess.run(["rm", "-rf", str(frames)], check=True) for p in sorted(OUT.iterdir()): print(f"{p.name:28s} {size(p)}") diff --git a/video/demo/fixtures/etsy.ts b/scripts/demo-video/fixtures/etsy.ts similarity index 100% rename from video/demo/fixtures/etsy.ts rename to scripts/demo-video/fixtures/etsy.ts diff --git a/video/demo/fixtures/logistics.ts b/scripts/demo-video/fixtures/logistics.ts similarity index 100% rename from video/demo/fixtures/logistics.ts rename to scripts/demo-video/fixtures/logistics.ts diff --git a/video/demo/fixtures/orders.ts b/scripts/demo-video/fixtures/orders.ts similarity index 100% rename from video/demo/fixtures/orders.ts rename to scripts/demo-video/fixtures/orders.ts diff --git a/video/demo/fixtures/products.ts b/scripts/demo-video/fixtures/products.ts similarity index 100% rename from video/demo/fixtures/products.ts rename to scripts/demo-video/fixtures/products.ts diff --git a/video/demo/fixtures/sap.ts b/scripts/demo-video/fixtures/sap.ts similarity index 100% rename from video/demo/fixtures/sap.ts rename to scripts/demo-video/fixtures/sap.ts diff --git a/video/demo/mock-api/cloud-setup.cjs b/scripts/demo-video/mock-api/cloud-setup.cjs similarity index 100% rename from video/demo/mock-api/cloud-setup.cjs rename to scripts/demo-video/mock-api/cloud-setup.cjs diff --git a/video/demo/mock-api/package-lock.json b/scripts/demo-video/mock-api/package-lock.json similarity index 100% rename from video/demo/mock-api/package-lock.json rename to scripts/demo-video/mock-api/package-lock.json diff --git a/video/demo/mock-api/package.json b/scripts/demo-video/mock-api/package.json similarity index 100% rename from video/demo/mock-api/package.json rename to scripts/demo-video/mock-api/package.json diff --git a/video/demo/mock-api/src/index.ts b/scripts/demo-video/mock-api/src/index.ts similarity index 100% rename from video/demo/mock-api/src/index.ts rename to scripts/demo-video/mock-api/src/index.ts diff --git a/video/demo/mock-api/src/node.ts b/scripts/demo-video/mock-api/src/node.ts similarity index 100% rename from video/demo/mock-api/src/node.ts rename to scripts/demo-video/mock-api/src/node.ts diff --git a/video/demo/mock-api/src/odata-filter.ts b/scripts/demo-video/mock-api/src/odata-filter.ts similarity index 100% rename from video/demo/mock-api/src/odata-filter.ts rename to scripts/demo-video/mock-api/src/odata-filter.ts diff --git a/video/demo/mock-api/src/openapi.ts b/scripts/demo-video/mock-api/src/openapi.ts similarity index 100% rename from video/demo/mock-api/src/openapi.ts rename to scripts/demo-video/mock-api/src/openapi.ts diff --git a/video/demo/mock-api/tsconfig.json b/scripts/demo-video/mock-api/tsconfig.json similarity index 100% rename from video/demo/mock-api/tsconfig.json rename to scripts/demo-video/mock-api/tsconfig.json diff --git a/video/demo/mock-api/wrangler.toml b/scripts/demo-video/mock-api/wrangler.toml similarity index 100% rename from video/demo/mock-api/wrangler.toml rename to scripts/demo-video/mock-api/wrangler.toml diff --git a/video/demo/styleframes/CLAUDE_DESIGN_PROMPT.md b/scripts/demo-video/styleframes/CLAUDE_DESIGN_PROMPT.md similarity index 98% rename from video/demo/styleframes/CLAUDE_DESIGN_PROMPT.md rename to scripts/demo-video/styleframes/CLAUDE_DESIGN_PROMPT.md index 467a40f9..7ac181da 100644 --- a/video/demo/styleframes/CLAUDE_DESIGN_PROMPT.md +++ b/scripts/demo-video/styleframes/CLAUDE_DESIGN_PROMPT.md @@ -5,7 +5,7 @@ Paste everything below the line into a new Claude Design project. Attach: and one screenshot of the anythingmcp.com hero (cream background, dark gateway diagram). When the frames are approved, use **Export → Handoff to Claude Code** and save the -bundle into `video/demo/styleframes/handoff/`. +bundle into `scripts/demo-video/styleframes/handoff/`. --- diff --git a/scripts/generate-banner.mjs b/scripts/generate-banner.mjs index c50f7ccb..6ff94374 100644 --- a/scripts/generate-banner.mjs +++ b/scripts/generate-banner.mjs @@ -131,13 +131,16 @@ const imagemagick = (() => { const magick = (args) => execFileSync(imagemagick, args, { stdio: 'inherit' }); // README banner: 1600x500 (3.2:1). Wider than 2.5:1 on purpose — at -// GitHub's ~830px column every 100px of banner height is 100px the demo GIF -// below it does not get. +// GitHub's ~830px column every 100px of banner height is 100px the demo video +// below it does not get. GitHub loads README images eagerly, so the banner is +// written as a 256-colour PNG: ~90 KB instead of ~320 KB, and with dithering +// off the dark gradient stays smooth instead of turning to grain. for (const lang of Object.keys(STRINGS).filter((k) => !k.startsWith('$'))) { magick([ render(`banner-${lang}`, adapters, keyless, lang), '-resize', '1600x500', '-strip', - join(OUT, STRINGS[lang].file), + '-dither', 'None', '-colors', '256', + `PNG8:${join(OUT, STRINGS[lang].file)}`, ]); }