Skip to content
Back to skills

Guruwalk Free Tours

ASecurity

Search GuruWalk free tours through the GuruWalk MCP server and return bookable options by city, dates, and language. Use this skill when the user asks for free tours, walking tours, guided city tours, plans in a city, or availability of tours on specific dates.

  • 14 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 7, 2026
toolsapibackend

Works with

  • api
  • mcp

Security analysis

A100/100

Scanned September 7, 2026

npx -y skills add modbender/skill-library-mcp --skill guruwalk-free-tours --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Guruwalk Free Tours?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Guruwalk Free Tours
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/modbender-guruwalk-free-tours/badge)](https://www.skillsdirectory.com/skills/modbender-guruwalk-free-tours)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: guruwalk-free-tours
description: >
  Search GuruWalk free tours through the GuruWalk MCP server and return bookable options
  by city, dates, and language. Use this skill when the user asks for free tours, walking
  tours, guided city tours, plans in a city, or availability of tours on specific dates.
---

# GuruWalk Free Tours

Use the GuruWalk MCP server to search free tours:

`https://guruwalk-api-44909317956.europe-southwest1.run.app/mcp`

The server currently exposes one tool:

- `search`

## Tool Contract

`search` input:

- `city` (string): lowercase slug in English with spaces replaced by `-`
- `start_date` (string): `yyyy-mm-dd`
- `end_date` (string): `yyyy-mm-dd`
- `language` (string): two-letter code, usually `es`, `en`, `de`, `it`

`search` output:

- Tool returns `content[0].text` containing a JSON string.
- Parse that string to get an array of tours.
- Each tour contains:
  - `title`, `url`, `meetpoint_address`, `average_rating`, `duration`, `guru.name`, `image_url`
  - `events[]` with `start_time` (UTC), `available_spots`, `language`

## Execution Workflow

1. Determine city, date range, and preferred language from user request.
2. Normalize `city` to slug format:
   - `new york` -> `new-york`
   - `san sebastian` -> `san-sebastian`
3. Use valid ISO dates for both fields.
4. Call `search`.
5. Parse JSON from `content[0].text`.
6. Filter and rank results for user-facing output:
   - keep only events with `available_spots > 0`
   - prioritize events matching requested language when possible
   - prefer higher `average_rating`, then earlier upcoming time
7. Return concise options with booking URL and next available slots.

## Defaults

- If user does not specify language, use:
  - `es` for Spanish conversation
  - `en` otherwise
- If user does not specify dates, ask for dates before calling the tool.
- If date intent is relative, convert to explicit dates before calling.

## Response Format to User

For each recommended tour include:

- Tour title
- Rating
- Duration
- Guide name
- Meeting point
- 1-3 next available sessions (with timezone label)
- Booking URL

If no tours are found:

- explain that no availability was returned for the given city/date range
- propose adjusting one variable at a time: city slug, dates, or language

## Observed Edge Cases (from live MCP inspection)

- `search` is the only available tool; no MCP resources/prompts/templates are exposed.
- `city` with spaces (e.g. `New York`) can return empty results.
- `start_date > end_date` can return empty results instead of validation error.
- Non-ISO dates can still be accepted by backend, but always send ISO `yyyy-mm-dd`.
- Some locale/language combinations can return tours with `title: null`; handle gracefully.

## Validation Notes

- Keep executable validation commands outside this skill file.
- Validate behavior by confirming:
  - the MCP server exposes the `search` tool
  - search results arrive as a JSON string in `content[0].text`

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…