Skip to content

Sedna Genesis

by sednasystem.com · remote · no sign-in to list tools · v1.0.0 · published by com.sednasystem

Customer-facing yacht search and charter request MCP server by Sedna System.

Changes · 3

8 tools: 3 change things and 5 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http genesis https://mcp.sednasystem.com/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "booking_detail_mod" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "apply": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

8 tools

Changes things 3Claude Code: ask
  • booking_createSubmits a request for a booking or a request for an option.Reads text others writeNo findings

    Why it is in this group

    • The name "booking_create" says "create": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Submits a request for a booking or a request for an option. This action re-prices and submits the request. ``booking_detail_mod`` is a stateless preview: selections made there are not stored automatically. Therefore selected_extras MUST repeat every extra the customer selected, using the exact id_opt and quantity. Pass an empty list only when the customer selected no optional extras. Never report an extra as selected unless this tool's saved_extras verification confirms it. Full client details (name, email, phone) are required to submit the request. **** strong rule: AI should not guess or input customer information on its own. It must ask customers to input it on its own.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • booking_detail_modApply customer selections and return server-recalculated booking details.1 finding

    Why it is in this group

    • The description's first verb is "apply": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "booking_detail_mod" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "apply": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Apply customer selections and return server-recalculated booking details. Copy id_boat and id_tbf1 from search_boats. Sedna is the only source of truth for prices: never calculate totals in the LLM. Send selected extras, passenger count, currency, ports and payment options here, then present the complete updated summary returned by the server. This is a stateless price preview and does not save the selection. If the customer proceeds, repeat the complete selected_extras list in booking_create. When the customer asks for the new total, quote customer_cost_summary.full_customer_cost. Explain payable_now and payable_at_base separately; never add them in the LLM, and keep the refundable deposit separate.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • readmeSedna guidance for public yacht-search conversations.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Sedna guidance for public yacht-search conversations. 1. Yacht, fleet, availability and price facts come from Sedna tool results; do not invent them. 2. Stay neutral between fleets. Present factual differences and let the customer decide. 3. Call Base_list before search_boats so the search uses an official base. 4. Copy id_boat and id_tbf1 exactly as returned by search_boats. 5. When the customer does not state a year, clarify the date or use the current year rather than silently choosing another year. 6. When the customer asks to see yacht photos or other yacht media, call boat_details with the exact id_boat from search_boats. Display the public URLs returned in media.header, media.photos, media.plans or media.images. search_boats intentionally returns no gallery. Use booking_detail only for date-specific availability, prices, extras and booking choices. 7. A search result is available only for the requested dates reported by Sedna. Never generalize that availability to different dates.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 5Claude Code: allow
  • Base_listSedna yacht-search guidance and available bases.No findings

    Why it is in this group

    • The name "Base_list" says "list": a word for reading.
    Description, as the server wrote it
    Sedna yacht-search guidance and available bases. This tool lists available bases grouped by country and provides operating guidance for yacht searches. 1. Yacht, fleet, availability and price facts come from Sedna tool results; do not invent them. 2. Stay neutral between fleets and present factual differences so the customer can decide. 3. Copy `id_tbf1` and `id_boat` exactly from `search_boats` results. 4. If no year is specified, clarify the date or use the current year. 5. Call `Base_list` before `search_boats` and use the returned base name.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • boat_detailsReturn yacht details and CDN-backed public URLs for yacht media.No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Return yacht details and CDN-backed public URLs for yacht media. This is the primary tool to call after search_boats whenever the customer asks to see yacht photos, a gallery, plans, videos or documents, or asks about layout, capacity, dimensions, equipment, description, crew or itinerary. When the client supports MCP Apps, render the attached inline Sedna gallery; otherwise display the public URLs returned under media.header, media.photos, media.plans, media.images, media.videos and media.documents. All media in this public tool comes through Sedna's CdnManager; missing CDN media is returned as an empty field and never replaced by a legacy DB URL. id_boat must be copied exactly from search_boats. This tool does not return date-specific prices, extras or availability; use booking_detail for those. Length and beam are optional fleet-supplied facts. When absent they are omitted, never returned as zero or estimated. Do not ask for either value or exclude a yacht unless the customer explicitly requires that dimension.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • booking_detailReturn date-specific availability, pricing, extras and booking choices.No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Return date-specific availability, pricing, extras and booking choices. Use id_boat and id_tbf1 exactly as returned by search_boats. This tool is for a selected yacht and charter period. Do not call this tool only to see yacht photos or media; call boat_details with the exact id_boat instead. Any Images included here are supplemental booking-context images, while boat_details is the canonical source for the complete public media URLs. Show all optional extras. After the customer changes extras, passenger count, currency, ports or payment options, call booking_detail_mod and use only its server-calculated totals. When asked for the total, quote customer_cost_summary.full_customer_cost; deposits are returned separately and are not included in that amount. Finally, offer a request for an option or a request for a booking.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • compare_boatsCompare 2 to 4 boats using Sedna's date-specific customer pricing.No findings

    Why it is in this group

    • The name "compare_boats" says "compare": a word for reading.
    Description, as the server wrote it
    Compare 2 to 4 boats using Sedna's date-specific customer pricing. - boat_ids: list of 2..4 boat ids - pax: customer passenger count used by booking_detail pricing - currency: EUR, USD, CNY (default EUR) - start_date/end_date: optional availability window (YYYY-MM-DD) For dated comparisons, customer_cost_summary clearly separates charter price, mandatory extras, full customer cost and refundable deposit. The full customer cost comes from the same booking preview as booking_detail; the refundable deposit is always separate. Cabin fields explicitly label total, double, single and bunk cabins. Length and beam are optional fleet-supplied facts. Missing values are omitted rather than returned as zero/null or estimated, and must not make an otherwise valid yacht unavailable for comparison.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_boatsSearch Sedna for yachts available for the exact requested dates.No findings

    Why it is in this group

    • The name "search_boats" says "search": a word for reading.
    Description, as the server wrote it
    Search Sedna for yachts available for the exact requested dates. Call Base_list first and use an official base name. Results have passed Sedna planning/block and pricing checks for start_date plus nights. If more than 30 yachts match, state the accurate count and ask for a fleet, model or year preference. If 30 or fewer match, show every result with its fleet name; never select an arbitrary subset. If none match, offer alternative bases or dates. Search results intentionally contain no yacht images. If the customer asks to see photos, a gallery, plans, videos or documents for a selected yacht, call boat_details with its exact id_boat and display the returned public media URLs. Use booking_detail for date-specific prices, extras, ports and booking choices. Length and beam are optional fleet-supplied facts. Missing values are omitted and must never exclude an otherwise matching yacht, be shown as zero, be estimated, or trigger a clarification unless the customer has explicitly made that dimension a requirement.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data or outbound.

Reads private data0
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write1
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Remote posture

What anyone on the internet sees at the remote endpoint: an anonymous initialize and tools/list, and the public OAuth metadata.

Looked at Oct 22, 2026, 14:40 UTC, unchanged since Oct 22, 2026. No credentials were sent and no tool was called. What is looked at.

Reachable
yes
HTTP status of an anonymous initialize
200
tools/list served without credentials
yes
Tools that change things, listed without credentials
3
Protocol version
2025-03-26
WWW-Authenticate on 401
not observed
resource_metadata in WWW-Authenticate
none
RFC 9728 protected resource metadata
none
Authorization servers
none
Legacy HTTP+SSE transport
no
Dynamic client registration
not observed
Client ID metadata documents
not observed
  • WarnThe whole server

    The endpoint served tools/list without credentials, and the list has 3 tools that change things (3 write). Whether a call also works without credentials was not tested: tools are never called.

    Matched text

    https://mcp.sednasystem.com/mcp: tools/list returned 8 tools to an anonymous client, including readme (write), booking_detail_mod (write), booking_create (write)

    What this check looks for

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http genesis https://mcp.sednasystem.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__genesis__Base_list",
      "mcp__genesis__boat_details",
      "mcp__genesis__search_boats",
      "mcp__genesis__booking_detail",
      "mcp__genesis__compare_boats"
    ],
    "ask": [
      "mcp__genesis__readme",
      "mcp__genesis__booking_detail_mod",
      "mcp__genesis__booking_create"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as genesis. Review it before you use it.

Capability tags behind 1 rule
  • mcp__genesis__booking_create untrusted-input