← Files NoMap RouterARCHIVED FILE

plugin.json

8.08 KB · Nov 3, 2026 · 18:56 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "app-6aa7098b88808191ab863cf2fe9bf73e",
  "version": "1.0.1",
  "description": "Plan multimodal freight routes between real ports, terminals and cities, and see the corridor on a map.",
  "author": {
    "name": "Swiss Logistics Consulting GmbH",
    "email": "info@swisslogisticsconsulting.com",
    "url": "https://swisslogisticsconsulting.com"
  },
  "homepage": "https://ocean.nomap.app/command#connector",
  "keywords": [
    "freight",
    "logistics",
    "shipping",
    "routing",
    "ports"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "NoMap Router",
        "shortDescription": "Plan multimodal freight routes",
        "longDescription": "NoMap Router is a freight logistics tool. It plans how cargo moves between real places \u2014 ports, inland terminals and cities \u2014 and returns the distance, transport mode and duration of every leg.\n\nAsk in plain language, for example \"Rotterdam to Shanghai via Kolkata\" or \"Munich to Rotterdam by rail\". NoMap identifies each place against a curated catalog of ports and terminals with its UN/LOCODE, picks a transport mode per leg, and returns the calculated sea, river, rail and road legs. Ask to see it and NoMap renders its own satellite map card with the corridor drawn on it, alongside a link that opens the same route in NoMap for further work.\n\nIt is built for the people who move cargo for a living: freight forwarders, project logistics teams, shippers comparing corridors, and anyone who needs a defensible first estimate of how far and how long before committing to a plan.\n\nLimitations. Distances, durations, emissions and cost bands are planning estimates from published network data and stated assumptions \u2014 an overview, not navigational advice, and not a freight quote. It does not report live vessel positions, schedules or tracking; it does not plan passenger travel; it gives no customs, tariff or regulatory guidance; and it books nothing. It will not invent a UN/LOCODE: a place the catalog cannot identify comes back as a question with suggestions rather than a guess. No account or sign-in is needed and nothing is stored between calls.",
        "developerName": "Swiss Logistics Consulting GmbH",
        "category": "Business & Operations",
        "capabilities": [
          "Plan multimodal freight routes",
          "Render the route on a satellite map",
          "Identify ports and terminals by UN/LOCODE"
        ],
        "websiteURL": "https://ocean.nomap.app",
        "supportURL": "https://ocean.nomap.app/support",
        "privacyPolicyURL": "https://ocean.nomap.app/privacy",
        "termsOfServiceURL": "https://ocean.nomap.app/terms",
        "defaultPrompt": [
          "Plan a freight route from Rotterdam to Shanghai.",
          "Show me a map of the route from Oakland to Qingdao.",
          "How far is Munich to Rotterdam by rail?"
        ],
        "brandColor": "#5A7A00",
        "brandColorDark": "#C8FF32",
        "composerIcon": "./assets/icon.png",
        "logo": "./assets/logo.png",
        "screenshots": [
          "./assets/screenshot-1-plan.png",
          "./assets/screenshot-2-map.png",
          "./assets/screenshot-3-rail.png"
        ]
      },
      "onboardingSkill": "./skills/plan-freight-route/SKILL.md",
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Plan a port-to-port ocean route between two well-known ports.",
              "prompt": "Plan a freight route from Rotterdam to Shanghai.",
              "tools_triggered": "plan_route",
              "expected_behavior": "Identifies Rotterdam (NLRTM) and Shanghai (CNSHA) and returns one sea leg of about 19,800 km, a link that opens the same route in NoMap, and the note that the figures are a planning overview and not navigational advice. No tool other than plan_route is needed."
            },
            {
              "description": "Plan a route with an intermediate stop, so multiple legs are calculated.",
              "prompt": "I need to ship cargo from Rotterdam to Shanghai via Kolkata \u2014 what are the legs?",
              "tools_triggered": "plan_route",
              "expected_behavior": "Returns Rotterdam (NLRTM), Kolkata (INCCU) and Shanghai (CNSHA) in that order as two sea legs \u2014 roughly 14,600 km and 7,200 km, totalling about 21,800 km \u2014 from a single plan_route call, with a NoMap link that keeps Kolkata as an intermediate stop."
            },
            {
              "description": "Plan an inland route where the user names the transport mode.",
              "prompt": "How far is Munich to Rotterdam by rail?",
              "tools_triggered": "plan_route",
              "expected_behavior": "Resolves both ends to their rail facilities \u2014 Munich-Riem Intermodal Terminal (DEMUC) and Rotterdam Port Rail Cluster (NLRTM) \u2014 and returns a rail leg of about 910 km. If a rail corridor cannot be calculated the reply names the mode actually used instead of labelling a road distance as rail."
            },
            {
              "description": "Show the route visually, which must use the app's rendered map rather than a generated image.",
              "prompt": "Show me a map of the route from Oakland to Qingdao.",
              "tools_triggered": "route_map",
              "expected_behavior": "Calls route_map for Oakland (USOAK) to Qingdao (CNQIN) and displays the widget it returns: the app's own satellite card with the calculated corridor drawn on it, titled \"Oakland \u2192 Qingdao\" and carrying the planning-overview note. The assistant shows that card rather than drawing or generating a map of its own."
            },
            {
              "description": "Resolve a route request into a result identifier and then retrieve its full detail.",
              "prompt": "Look up freight routes from Hamburg to Singapore and then give me the full breakdown of the first one.",
              "tools_triggered": "search, fetch",
              "expected_behavior": "search returns one result titled \"Hamburg \u2192 Singapore\" carrying an id and a NoMap link; passing that id to fetch returns Hamburg (DEHAM) to Singapore (SGSIN) as a sea leg of about 16,200 km with the same link and the planning-overview note."
            }
          ],
          "negative": [
            {
              "description": "Live vessel tracking is out of scope. The app should not be invoked, because it plans routes between places and does not report live vessel positions.",
              "prompt": "Where is the container ship Ever Given right now?"
            },
            {
              "description": "Passenger travel is a nearby but out-of-scope request. The app should not be invoked, because it plans freight movement between places, not passenger flights or fares.",
              "prompt": "Find me a cheap flight from Zurich to Singapore next Tuesday."
            },
            {
              "description": "Customs and regulatory advice is out of scope. The app should not be invoked, because it calculates routes and distances and does not provide customs, tariff or regulatory guidance.",
              "prompt": "What customs paperwork do I need to import steel coils into Brazil?"
            }
          ]
        },
        "demo_recording_url": "https://ocean.nomap.app/media/nomap-router-walkthrough.mp4",
        "commerce": false,
        "commerce_description": "NoMap Router sells nothing and processes no payments. It requires no account and no sign-in, displays no plans or pricing, and never links to a checkout or upgrade flow. Every tool only reads."
      },
      "publication": {
        "release_notes": "Rewritten privacy policy covering the tools' inputs and outputs, purposes, recipients, retention and user controls, published at ocean.nomap.app/privacy. Public connector documentation added at ocean.nomap.app/command#connector and a support page at ocean.nomap.app/support. The app is named NoMap Router consistently, including the MCP server identity. Analytics gained an opt-out and a retention window."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: 1bdbbb26c845d6ffea78112f03500c7b73df2a957652713558f127d7ffbb91a2