GuruWalk Affiliates

com.guruwalkPublished by guruwalk.comOfficial publisherv1.0.0Updated Oct 24, 2026

GuruWalk affiliate program for AI agents. Free walking tours in 100+ countries. Earn per booking.

VerifiedStreamable HTTPWeb executableLocation & LifestyleBusiness & Commerce

Overview

AI-generated overview

GuruWalk Affiliates lets an assistant find free walking tours in cities worldwide, browse categories and check availability, with affiliate-tracked booking URLs

What you can do
Find free walking tours in a destination, with categories and featured tours, optionally filtered by date range and language (English, Spanish, German, Italian). Browse all tours inside a category returned by the destination search. Check upcoming event dates, times, languages and remaining seats for a chosen tour over a date range. Every returned tour and booking link carries the affiliate referral parameter automatically.
When to use it
Use it when building a travel or city-guide assistant that should recommend free walking tours and hand users direct booking links, and when bookings should be credited to a GuruWalk affiliate account.
Requirements
A remote Streamable HTTP endpoint; no local runtime or package. A GuruWalk affiliate API key sent as a bearer token in the Authorization header (the README also mentions an Api-Key header). Network access to the GuruWalk backend.
Before you install
The API key is a credential and must be kept out of logs and shared transcripts. Returned links contain your affiliate referral parameter and the README asks that it not be stripped or modified. The server is read-only for tour data, but bookings happen on GuruWalk's site, not through the assistant. Affiliate earnings depend on GuruWalk's tracking and terms.

Installation

In SourceWeft

  1. Open GuruWalk Affiliates in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.guruwalk%2Faffiliates-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "guruwalk-affiliates": {
      "type": "http",
      "url": "https://back.guruwalk.com/mcp/affiliates",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

GuruWalk MCP — Affiliate Integration Guide

GuruWalk exposes a subset of its tour catalog through the Model Context Protocol (MCP), allowing affiliates to embed tour discovery, browsing, and availability checking directly into their own AI agents and assistants.

All URLs returned by the tools include your affiliate ?ref=<username> parameter automatically, so bookings driven by your agent are attributed to your account.


Endpoint

POST https://back.guruwalk.com/mcp/affiliates

The server implements MCP over Streamable HTTP, stateless mode. Every request is independent — no session state is maintained between calls.


Authentication

Include your API key on every request using one of these headers:

Authorization: Bearer <api_key>

or

Api-Key: <api_key>

Requests without a valid key receive 401 Unauthorized.


Protocol

This server follows the MCP specification. Use any MCP-compatible client library:

The transport is Streamable HTTP (not SSE, not stdio). The server is stateless — pass stateless: true (or equivalent) in your client transport configuration.


Tools

discover_destination

Find free walking tours available in a city. Returns the destination info, tour categories to browse, and a paginated list of featured tours. Optionally filter by date range and language.

Parameters

NameTypeRequiredDefaultDescription
destinationstringyes—City or destination name, e.g. "Rome", "Barcelona"
languagestringno"en"Language for tour names and descriptions. One of: en, es, de, it
start_datestringno—Only show tours available from this date (YYYY-MM-DD)
end_datestringno—Only show tours available until this date (YYYY-MM-DD)
pageintegerno1Page number for the featured tours list

Response

json
{  "place": {    "id": 12,    "name": "Rome",    "slug": "rome",    "country": "Italy",    "has_free_tours": true  },  "pagination": {    "page": 1,    "per_page": 12,    "total_count": 34  },  "categories": [    {      "id": 5,      "name": "Ancient Rome",      "url": "https://www.guruwalk.com/en/walks/rome/ancient-rome?ref=myaffiliate"    }  ],  "featured_products": [    {      "id": 101,      "name": "Classic Rome Free Tour",      "slug": "classic-rome-free-tour",      "rating_out_of_5": 4.9,      "reviews_count": 312,      "image_url": "https://cdn.guruwalk.com/tours/101.jpg",      "url": "https://www.guruwalk.com/walks/classic-rome-free-tour?ref=myaffiliate"    }  ]}

browse_category

List free walking tours within a category. Use a category_id from discover_destination results. Returns paginated tours with ratings, images, and booking URLs.

Parameters

NameTypeRequiredDefaultDescription
category_idintegeryes—Category ID returned by discover_destination
languagestringno"en"Language for tour names and category labels. One of: en, es, de, it
pageintegerno1Page number for paginated results

Response

json
{  "category": {    "id": 5,    "name": "Ancient Rome",    "url": "https://www.guruwalk.com/en/walks/rome/ancient-rome?ref=myaffiliate"  },  "place": {    "name": "Rome",    "slug": "rome"  },  "pagination": {    "page": 1,    "per_page": 12,    "total_count": 8  },  "products": [    {      "id": 101,      "name": "Classic Rome Free Tour",      "slug": "classic-rome-free-tour",      "rating_out_of_5": 4.9,      "reviews_count": 312,      "image_url": "https://cdn.guruwalk.com/tours/101.jpg",      "url": "https://www.guruwalk.com/walks/classic-rome-free-tour?ref=myaffiliate"    }  ]}

check_availability

Check when a free walking tour has upcoming events. Use a tour_id from discover_destination or browse_category results. Returns available time slots with dates, times, languages, and booking URLs.

Parameters

NameTypeRequiredDefaultDescription
tour_idintegeryes—Tour ID from discover_destination or browse_category results
from_datestringyes—Start of date range (YYYY-MM-DD)
to_datestringyes—End of date range (YYYY-MM-DD)
languagestringno"en"Language for tour names and descriptions. One of: en, es, de, it

Response

The dates object contains one key per day in the requested range. Days with no events have an empty array.

json
{  "tour_id": 101,  "from_date": "2025-06-10",  "to_date": "2025-06-12",  "dates": {    "2025-06-10": [      {        "event_id": 9901,        "start_time": "10:00",        "language": "en",        "last_seats": false,        "booking_url": "https://www.guruwalk.com/walks/classic-rome-free-tour?beginsAt=2025-06-10&endsAt=2025-06-10&ref=myaffiliate"      }    ],    "2025-06-11": [],    "2025-06-12": [      {        "event_id": 9902,        "start_time": "11:00",        "language": "en",        "last_seats": true,        "booking_url": "https://www.guruwalk.com/walks/classic-rome-free-tour?beginsAt=2025-06-12&endsAt=2025-06-12&ref=myaffiliate"      }    ]  }}

Typical Flow

A natural conversation flow for a travel assistant looks like this:

1. discover_destination(destination: "Barcelona", language: "en")   → get place info, category list, and featured tours
2. browse_category(category_id: <id from step 1>, language: "en")   → drill into a specific category to see all tours
3. check_availability(tour_id: <id from step 1 or 2>, from_date: "...", to_date: "...")   → show the user available dates and times with direct booking links

You can also skip step 2 and go directly from discover_destination to check_availability if the user already selected a tour from the featured list.


Attribution

All url and booking_url fields in every tool response automatically include ?ref=<your_username> so bookings originating from your agent are tracked and credited to your account. Do not strip or modify these parameters.


Reference

Source: README.md at commit d690d4a

Tools

0
This server asks for a credential such as an API key, so SourceWeft could not read its tools without one and has not indexed them.

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

75% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.

Other Guruwalk integrations