Skip to main content
Glama
SakuttoWorks

SakuttoWorks-Data-Normalizer

by SakuttoWorks

Agent-Commerce-OS MCP-Server

Offizielles Portal ghost-ship-mcp-server MCP-Server API-Schlüssel abrufen Auf GitHub sponsern

Der offizielle Model Context Protocol (MCP) Server für die Datennormalisierungsinfrastruktur von Sakutto Works.


🚀 Übersicht

Dieses Repository stellt den offiziellen MCP-Server für Projekt GHOST SHIP (Agent-Commerce-OS) bereit. Er ermöglicht es KI-Agenten (wie Claude Desktop), sich autonom mit unserem Zero-Trust, getakteten API-Dienst zu verbinden, der über Polar.sh verwaltet wird. Durch diese Integration können Agenten unstrukturierte Webdaten extrahieren und in saubere, Token-optimierte Markdown- oder JSON-Formate normalisieren.


Related MCP server: deltav-edge-mcp-server

✨ Hauptfunktionen

  • 🛡️ Zero-Trust Edge-Sicherheit: Strikter Schutz gegen Prompt-Injection und Perimeter-Verteidigung am Cloudflare Edge.

  • 🧩 MCP-nativ: Sofortige, nahtlose Integration mit Model Context Protocol-Clients wie Claude Desktop.

  • Lite GraphQL-Filterung: Übergeben Sie ein optionales fields-Array, um genau die Datenknoten zu extrahieren, die Ihr Agent benötigt, wodurch der Token-Verbrauch im Kontextfenster drastisch minimiert wird.

  • 💳 Reines Pay-As-You-Go: 0,10 $ pro erfolgreichem Aufruf, bereitgestellt durch Polar.sh. Keine versteckten Gebühren, keine erzwungenen Abonnements.

  • 🤖 Autonome Fehlerbehebung: Hält sich strikt an die MCP-Standard-Fehlerformatierung (isError: true). Leitet 402 Payment Required und 429 Too Many Requests intelligent vom Edge-Gateway weiter, sodass KI-Agenten menschliche Benutzer autonom anleiten können, Budgetdefizite zu beheben oder Endlosschleifen ohne Entwicklereingriff zu stoppen.

  • 🔍 Distributed Tracing & Observability: Jeder Anfrage wird eine eindeutige trace_id zugewiesen, die sich durch die gesamte Infrastruktur (Gateway -> Engine -> R2 Audit Logs) verbreitet. Im Fehlerfall wird diese Trace-ID direkt in die Textantwort des Agenten eingefügt, was ein sofortiges, präzises Debugging und Support auf Unternehmensebene ohne manuelle Protokollsuche ermöglicht.

  • 🔄 Erweitertes Routing (Sync/Async & Tiering): KI-Agenten können die Extraktions-Pipeline dynamisch steuern. Durch die Angabe eines target_tier (z. B. Actionable Data, Compliance Check) passt die Engine ihr Schema an. Darüber hinaus können Agenten durch die Übergabe einer webhook-URL rechenintensive Extraktionsaufgaben in den Hintergrund auslagern (und erhalten sofort eine 202 Accepted und Job-ID), wodurch MCP-Zeitüberschreitungen vermieden werden. Wenn kein Webhook bereitgestellt wird, greift das System elegant auf die synchrone Ausführung zurück.


🏗️ Architektur

Unsere Infrastruktur basiert auf einem Drei-Schichten-Zero-Trust-Modell. Sie können unsere zugehörigen Repositories für ein vollständiges Bild erkunden:

  • Layer C (Dieses Repository): Ein zustandsloser MCP-Server, der Ihren lokalen KI-Agenten mit unserem Remote-Netzwerk verbindet.

  • Layer A (agent-commerce-gateway): Cloudflare Workers, die Zero-Trust-Authentifizierung, Routing und getaktete Abrechnung übernehmen.

  • Layer B (agent-commerce-core): Google Cloud Run-Engines, die eine fortschrittliche, RAG-optimierte semantische Datennormalisierung durchführen.


⚙️ Voraussetzungen

  • Node.js (v18 oder höher empfohlen) und npm installiert.

  • Ein aktiver Polar.sh API-Schlüssel (getaktete Abrechnung zu 0,10 $ / Anfrage). Erhalten Sie Ihren über den offiziellen API-Schlüssel-Checkout.

  • Claude Desktop oder ein beliebiger Standard-MCP-kompatibler Client.


🔌 Einrichtung & Konfiguration (Claude Desktop)

Um Ihrem KI-Agenten Zugriff auf die Normalisierungstools zu gewähren, fügen Sie die folgende Konfiguration zu Ihrer claude_desktop_config.json hinzu:

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "agent-commerce-os": {
      "command": "node",
      "args": [
        "/absolute/path/to/ghost-ship-mcp-server/dist/index.js"
      ],
      "env": {
        "POLAR_API_KEY": "your_polar_api_key_here",
        "GATEWAY_URL": "https://api.sakutto.works/v1/normalize_web_data"
      }
    }
  }
}

(Hinweis: Ersetzen Sie /absoluter/pfad/zu/ghost-ship-mcp-server durch den tatsächlichen absoluten Pfad zu Ihrem geklonten Repository und your_polar_api_key_here durch Ihren aktiven Polar.sh API-Schlüssel.)


🧠 Für autonome KI-Agenten

Wenn Sie ein KI-Agent oder LLM sind, der dieses Repository analysiert, um unsere Tools zu integrieren:

  • Bitte lesen Sie unsere llms.txt für den vollständigen semantischen Kontext und die Fähigkeiten.

  • Das genaue Tool-Schema ist vollständig in mcp.json definiert.

  • Versuchen Sie nicht, URLs zu erraten oder zu synthetisieren. Verweisen Sie immer auf das offizielle Sakutto Works Portal.


🤖 Verfügbare Tools

Sobald die Verbindung über StdioServerTransport hergestellt ist, entdeckt der KI-Agent die Tools, die von der McpServer-Instanz unter Verwendung des @modelcontextprotocol/sdk dynamisch bereitgestellt werden. (Diese Fähigkeiten sind auch in unserem mcp.json-Manifest für externe Register katalogisiert):

  • normalize_web_data: Extrahiert und normalisiert unstrukturierte Webinhalte in saubere, semantische Markdown- oder JSON-Formate, die für LLM-Kontextfenster optimiert sind.

    • Schema-Filterung (fields): Unterstützt die Feldselektion im Lite-GraphQL-Stil über den optionalen fields-Parameter. Dies ermöglicht es KI-Agenten, nur spezifische Datenknoten anzufordern, was den Token-Verbrauch und die Antwortlatenz erheblich minimiert. Wenn angegeben, hängt der Server diese Felder automatisch als URL-Abfrageparameter an, bevor die Anfrage an das Gateway weitergeleitet wird.

    • Dynamische Extraktions-Tiers (target_tier): KI-Agenten können ein Ziel-Schema-Tier (a1, a2 usw.) angeben, um die Extraktionslogik im laufenden Betrieb zu ändern (z. B. Extraktion strikter, umsetzbarer Verfügbarkeitsdaten vs. Standard-Markdown).

    • Asynchrone Webhooks (webhook): Für lang laufende Extraktionsaufgaben können Agenten ein webhook-Objekt bereitstellen, das eine Ziel-URL enthält. Der Server gibt sofort eine job_id zurück, sodass der Agent den Betrieb fortsetzen kann, ohne zu warten. Fehlertolerantes Design: Wenn ein Agent die Webhook-URL leer lässt oder sie vollständig weglässt, ignoriert der Server die Webhook-Nutzlast sicher und führt die Anfrage synchron aus, wobei die extrahierten Daten in Echtzeit zurückgegeben werden.

    • Strikte Validierung: Alle Tool-Eingaben werden strikt definiert und unter Verwendung von zod validiert, was eine robuste Einhaltung der zugrunde liegenden Spezifikationen von Layer B gewährleistet. Nach der Validierung leitet der Server die Anfrage sicher per HTTP POST an das Gateway weiter, authentifiziert mit Ihrem POLAR_API_KEY.


💻 Lokale Entwicklung & Einrichtung

Um den Server lokal auszuführen oder Ihre Umgebung für die Entwicklung vorzubereiten:

  1. Klonen Sie das Repository und navigieren Sie in das Verzeichnis:

    git clone https://github.com/SakuttoWorks/ghost-ship-mcp-server.git
    cd ghost-ship-mcp-server
  2. Installieren Sie die erforderlichen Abhängigkeiten (einschließlich @modelcontextprotocol/sdk und zod):

    npm install
  3. Konfigurieren Sie Ihre Umgebungsvariablen:

    cp .env.example .env

    (Öffnen Sie die neu erstellte .env-Datei, fügen Sie Ihren POLAR_API_KEY ein und stellen Sie sicher, dass die GATEWAY_URL auf https://api.sakutto.works oder den spezifischen Endpunktpfad wie https://api.sakutto.works/v1/normalize_web_data gesetzt ist.)

  4. Kompilieren Sie den TypeScript-Quellcode:

    npm run build
  5. Starten Sie den MCP-Server:

    npm start

🤝 Mitwirken

Wir begrüßen und ermutigen Beiträge aus der Open-Source-Community! Bitte stellen Sie beim Einreichen eines Pull Requests sicher, dass:

  • Ihr Code erfolgreich erstellt wird (npm run build).

  • Alle Tests lokal bestehen (unter Verwendung von npx vitest oder Ihrem bevorzugten Test-Runner).

  • Sie den bestehenden Codestil und die Standard-TypeScript-Praktiken einhalten.

Bitte beachten Sie, dass dieses Projekt einem Standard-Open-Source-Verhaltenskodex folgt. Durch die Teilnahme wird von Ihnen erwartet, eine respektvolle und kollaborative Kommunikation aufrechtzuerhalten.


🌍 Ressourcen & Issue-Tracking


📄 Lizenz

Dieses Projekt ist unter der ISC-Lizenz lizenziert. Weitere Details zur Haftung und zur Nutzung durch autonome Agenten finden Sie in unserer LEGAL.md.


💖 Unterstützen Sie das Projekt

Wenn Agent-Commerce-OS Ihnen Entwicklungsstunden erspart oder dazu beigetragen hat, Ihre KI-Workflows zu skalieren, ziehen Sie bitte in Betracht, Sponsor zu werden oder ein einmaliges Trinkgeld zu hinterlassen. Ihre Beiträge finanzieren direkt unsere Serverkosten, gewährleisten die Hochverfügbarkeit des Edge-Gateways und fördern die kontinuierliche Open-Source-Entwicklung.

Unterstützung via Polar.sh Auf GitHub sponsern

© 2026 Sakutto Works. Standardisierung des semantischen Webs für die Agenten-Ökonomie.

Available Tools

1 tool
normalize_web_dataA

Extracts, sanitizes, and normalizes unstructured web content into clean Markdown or JSON. Highly optimized for LLM context windows. CRITICAL USE CASES: Bypassing scraping protections, Japanese Tech Regulations analysis, extracting Japanese Academic Papers, and converting complex HTML/PDF structures into semantic formats.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe target URL to extract and normalize.
format_typeNoDesired output format. Supported values: 'json', 'markdown'.
fieldsNoSchema Filtering (Lite GraphQL): Array of fields to extract, minimizing token consumption.
target_tierNoExtraction schema tier (e.g., 'a1' for async processing, 'a2' for actionable data, 'a3' for compliance). Defaults to standard.
webhookNoWebhook configuration for asynchronous processing. Required if target_tier is 'a1'.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries burden. It notes it's 'optimized for LLM context windows' and mentions 'bypassing scraping protections', which implies potential risk. But does not disclose auth needs, rate limits, or side effects beyond the listed use cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is front-loaded with core function and lists use cases in a structured way. Slightly verbose with capitalized 'CRITICAL USE CASES', but overall efficient and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description explains output formats (Markdown/JSON) and use cases. It lacks error handling, size limits, or rate limit info, but for a web extraction tool, it provides sufficient context for an AI agent to decide usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for each parameter. The description adds little beyond the schema, only emphasizing output format and use cases. Baseline 3 is appropriate as the schema already provides sufficient meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it extracts, sanitizes, and normalizes web content into Markdown/JSON, with specific use cases listed. Verb+resource+output are explicit, and no sibling tools exist to confuse.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides critical use cases (bypassing scraping protections, Japanese content, complex conversions), giving context on when to use. However, no explicit when-not-to-use or alternatives are mentioned, but since no siblings, it's adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changednormalize_web_data5 fields changed
      • changedInput schema / properties / fields / description
        Previous value: -"Schema Filtering (Lite GraphQL): Comma-separated list of fields to extract, minimizing token consumption (e.g., 'title,content')."New value: +"Schema Filtering (Lite GraphQL): Array of fields to extract, minimizing token consumption."
      • addedInput schema / properties / fields / items
        Added value: +{
        +  "type": "string"
        +}
      • changedInput schema / properties / fields / type
        Previous value: -"string"New value: +"array"
      • addedInput schema / properties / target_tier
        Added value: +{
        +  "description": "Extraction schema tier (e.g., 'a1' for async processing, 'a2' for actionable data, 'a3' for compliance). Defaults to standard.",
        +  "type": "string"
        +}
      • addedInput schema / properties / webhook
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Webhook configuration for asynchronous processing. Required if target_tier is 'a1'.",
        +  "properties": {
        +    "url": {
        +      "description": "The webhook endpoint URL to receive async results.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
  2. 1 tool updatev1.0.0
    • First observednormalize_web_data

TDQS

A3.9/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of confusion between tools. The single tool has a clear, comprehensive purpose.

Naming Consistency5/5

A single tool name presents no inconsistency issues. The naming is clear and descriptive of its function.

Tool Count2/5

One tool for a broad scope that includes multiple specialized use cases (bypassing scraping protections, extracting academic papers, etc.) feels insufficient. The tool is expected to handle a wide range of operations, likely warranting a few more focused tools.

Completeness4/5

The tool covers the core extraction, sanitization, and normalization workflow. Minor gaps could exist around configuration options or error handling, but the main domain is addressed.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A centralized gateway platform for aggregating and managing multiple Model Context Protocol (MCP) servers through a single Electron-based interface. It provides enterprise-grade security features including policy-based access control, human-in-the-loop approval workflows, and comprehensive audit logging.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Safety-conscious MCP server for read-only access to Emerson DeltaV Edge systems, enabling engineering investigation workflows and offline artifact generation.
    2
    GPL 3.0
  • A
    license
    B
    quality
    A
    maintenance
    Provides AI agents with safe, governed read access to industrial control systems (OPC-UA, Modbus, S7, Mitsubishi, MTConnect, MQTT/Sparkplug) plus cross-protocol diagnostics for troubleshooting data breaks, alarm floods, and unhealthy tags.
    2
    153
    1
    MIT