deep.swiss logo

Agent Tools

deep.swiss exposes an MCP server so AI assistants can read the site's reels and edit content on your behalf. Connect it once, sign in with your account, and the assistant acts with exactly your permissions.

Connecting

Server address
https://deepswiss.bern.guru/mcp
Sign-in
Browser sign-in with your deep.swiss account, then a consent screen. Editing tools need an admin account.
{
  "mcpServers": {
    "deep-swiss": { "url": "https://deepswiss.bern.guru/mcp" }
  }
}

Tools

List published reels

list_reels · Signed-in account

Returns the live reels of the site in display order.

Parameters

limit — number (1-100, default 50)
Maximum number of reels to return.

Example request

{
  "name": "list_reels",
  "arguments": { "limit": 2 }
}

Example response

{
  "structuredContent": {
    "reels": [
      {
        "id": "c1f2...",
        "type": "video",
        "position": 0,
        "data": {
          "title": "Your Deep Swiss Experience",
          "body": "Authentic places, far from the crowds.",
          "video": "/media/intro.webm",
          "poster": "/media/intro.webp"
        },
        "updated_at": "2026-09-01T09:12:44.120Z"
      },
      {
        "id": "8ab0...",
        "type": "image",
        "position": 1,
        "data": { "title": "Privacy & Simplicity", "body": "No crowds, no noise." },
        "updated_at": "2026-09-01T09:14:02.554Z"
      }
    ]
  }
}

List draft reels

list_draft_reels · Admin only

Returns the unpublished draft reels, in display order.

Parameters

limit — number (1-100, default 50)
Maximum number of drafts to return.

Example request

{
  "name": "list_draft_reels",
  "arguments": { "limit": 1 }
}

Example response

{
  "structuredContent": {
    "drafts": [
      {
        "id": "8ab0...",
        "type": "image",
        "position": 1,
        "data": { "title": "Privacy & Simplicity (draft)", "body": "New wording in review." },
        "updated_at": "2026-09-07T18:20:11.900Z"
      }
    ]
  }
}

Update draft reel content

update_draft_reel · Admin only

Merges the given fields into a draft reel's content. Other fields stay untouched. The change stays in the draft until you publish from the CMS.

Parameters

id — string (required)
Draft reel id, as returned by list_draft_reels.
fields — object (required)
Content fields to merge, e.g. title, body, poster, video.

Example request

{
  "name": "update_draft_reel",
  "arguments": {
    "id": "8ab0...",
    "fields": { "title": "Privacy, Health, Humanism" }
  }
}

Example response

{
  "structuredContent": {
    "reel": {
      "id": "8ab0...",
      "type": "image",
      "position": 1,
      "data": {
        "title": "Privacy, Health, Humanism",
        "body": "New wording in review."
      }
    }
  }
}

Get CMS page content

get_page · Signed-in account

Reads the stored content of a landing page by slug.

Parameters

slug — string (required)
For example private-tours-switzerland.

Example request

{
  "name": "get_page",
  "arguments": { "slug": "private-tours-switzerland" }
}

Example response

{
  "structuredContent": {
    "page": {
      "slug": "private-tours-switzerland",
      "data": {
        "metaTitle": "Private Tours Switzerland | deep.swiss",
        "metaDescription": "Private, guided Swiss experiences away from the crowds.",
        "h1": "Private Tours in Switzerland",
        "intro": "Three personal guides, one unhurried country.",
        "sections": [
          { "heading": "How it works", "paragraphs": ["..."], "bullets": ["..."] }
        ],
        "faqs": [{ "q": "How many guests?", "a": "Usually two to six." }]
      },
      "updated_at": "2026-09-05T07:41:00.000Z"
    }
  }
}

Update CMS page content

update_page · Admin only

Merges top-level fields into a landing page's stored content. Changes appear on the live page immediately.

Parameters

slug — string (required)
Page slug to update.
fields — object (required)
Top-level fields such as metaTitle, metaDescription, h1, intro, sections, faqs.

Example request

{
  "name": "update_page",
  "arguments": {
    "slug": "private-tours-switzerland",
    "fields": {
      "metaTitle": "Private Tours in Switzerland | deep.swiss",
      "intro": "Three personal guides, one unhurried country."
    }
  }
}

Example response

{
  "structuredContent": {
    "page": {
      "slug": "private-tours-switzerland",
      "data": {
        "metaTitle": "Private Tours in Switzerland | deep.swiss",
        "intro": "Three personal guides, one unhurried country.",
        "h1": "Private Tours in Switzerland"
      },
      "updated_at": "2026-09-08T17:25:10.000Z"
    }
  }
}

Errors

Failed calls come back as an error result with a short message, for example when you are not signed in, a slug or draft id does not exist, or your account lacks admin access.

{
  "isError": true,
  "content": [{ "type": "text", "text": "No page stored for slug \"tours\"." }]
}