Skip to main content
Glama
ajemssolutions

AJEMS MCP Connector

Official

AJEMS MCP Connector

Ermöglicht Claude und ChatGPT, Fragen zu einem AJEMS-Arbeitsbereich zu beantworten – und optional Apps, Formulare und Datensätze zu erstellen – ohne dass sich jemand bei AJEMS anmeldet.

Eine Bereitstellung bedient alle Mandanten. Benutzer melden sich mit ihrem Organisationsnamen und ihrem AJEMS-Geheimschlüssel an.


Dateien

Datei

Rolle

server.js

Konfiguration, Authentifizierung, HTTP-Transport, Health, Shutdown

tools.js

Jedes Tool, das die KI aufrufen kann

ajems.js

Das einzige Modul, das mit der AJEMS-API kommuniziert

oauth.js

Der OAuth-Handshake, den Claude und ChatGPT benötigen

cache.js

Pro-Mandant-Caching und Begrenzung der Upstream-Gleichzeitigkeit

util.js

Kleine gemeinsame Helfer

diagnose.js

11-stufiger End-to-End-Prüfer

mock-ajems.js

Fake-AJEMS mit Beispieldaten, zum Testen ohne Live-Arbeitsbereich


Related MCP server: BackCrew ServiceM8 MCP Server

Schnellstart

npm install
cp .env.example .env      # set PUBLIC_URL and AJEMS_HOST_TEMPLATE
npm start

Gegen einen echten Arbeitsbereich verifizieren:

node diagnose.js https://mcp.ajems.com <organisation> <secret-key>

Oder ganz ohne AJEMS ausprobieren:

npm run mock              # terminal 1
# set AJEMS_HOST_TEMPLATE=http://localhost:9090/{org}/json_builder
npm start                 # terminal 2
node diagnose.js http://localhost:8080 testco test-secret-key

Siehe DEPLOY.md für nginx, TLS, pm2 und Tuning.


Tools

Standardmäßig schreibgeschützt. Setzen Sie ALLOW_WRITES=true für die vier Schreib-Tools.

Tool

Zweck

list_apps_and_forms

Erkennung – jede App und jedes Formular, mit Lese-/Schreib-Flags

describe_form

Feld-Schlüssel, menschliche Bezeichnungen, Typen, Dropdown-Optionen

query_responses

Datensätze mit Filtern, Datumsbereich, Feldauswahl

aggregate_responses

count / sum / avg / min / max, optional gruppiert

create_app

Neue App

create_form

Neues Formular; Feld-Schlüssel werden automatisch generiert

create_record

Ein oder viele Datensätze, eingefügt mit begrenzter Gleichzeitigkeit

update_record

Felder eines vorhandenen Datensatzes ändern

search

Stichwortsuche über Formulare und Datensätze (ChatGPT)

fetch

Vollständige Details für ein Suchergebnis (ChatGPT)

aggregate_responses berechnet auf dem Server. Ohne dieses Tool würde „Summe nach Stadt“ Tausende von Zeilen in den Kontext des Modells ziehen und von Hand zählen – langsam, teuer und ab einer bestimmten Größe falsch.

search und fetch existieren, weil ChatGPT außerhalb des Entwicklermodus nur Tools mit diesen beiden Namen aufruft und alles andere ignoriert.


Wie eine Frage beantwortet wird

Claude fragt: „Wie viele Einträge im Juli, nach Stadt?“

  1. list_apps_and_forms → findet das Formular

  2. describe_form → erfährt, dass date_1750943312417 das Datumsfeld ist und dropdown_1750943301432 Städte enthält

  3. aggregate_responses mit einem Datumsbereich und group_by → erhält drei Zahlen zurück

  4. Schreibt die Antwort in einfachem Englisch

Feld-Schlüssel werden automatisch generiert (date_1750943312417), weshalb Schritt 2 nicht optional ist. Die Tool-Beschreibungen sagen dem Modell das, und es verknüpft die Aufrufe selbst.


Mandantenisolation

  • Mandant stammt aus der Sitzung, serverseitig aus dem Bearer-Token aufgelöst

  • Kein Tool-Schema hat einen tenant-, org- oder url-Parameter – es gibt nichts, wovon ein Modell überredet werden könnte, es zu ändern

  • ajems.js ist das einzige Modul, das ausgehende Anfragen stellt, und nur an die Basis-URL dieses Mandanten

  • Cache-Schlüssel sind nach Mandant und einem Hash des Geheimschlüssels benannt, sodass Mandanten keine zwischengespeicherten Einträge des anderen lesen können und ein rotierter Schlüssel von selbst abläuft

  • Organisationsnamen werden auf subdomain-sichere Zeichen reduziert, sodass ein Eintrag wie evil.com/x den Server nicht woandershin umleiten kann

  • Jeder Tool-Aufruf wird als JSON mit Mandant und Benutzer protokolliert

Wenn Sie ein Tool hinzufügen, überprüfen Sie den zweiten Punkt erneut.


Tests

46 Prüfungen bestehen gegen den Mock: Authentifizierung, alle 10 Tools, Filter, Datumsbereiche, der created_at-Fallback, gruppierte Aggregation, Masseneinfügung, Cache-Invalidierung nach Schreibvorgängen, Fehlermeldungen, Mandantenisolation, 20 gleichzeitige Benutzer und Ratenbegrenzung.

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

0Maintainers
No issuesResponse time
0Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    Enables an AI assistant to interact with ServiceM8 via natural language, supporting lookups and optionally creating or updating records, with tiered safety controls.
    36
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to interact with Jurisly workspaces for tasks like drafting invoices, finding hearing dates, and editing documents through natural language.
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to directly interact with ERPNext/Frappe business data and operations, including document management, submissions, cancellations, reports, PDF generation, file uploads, and whitelisted method calls, with per-request permission enforcement.
    MIT

View all related MCP servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ajemssolutions/MCP'

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