Skip to main content
Glama

Server Details

Norwegian experiences marketplace MCP: activities by county, category, weather, season, group size.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
slookisen/lokal
GitHub Stars
1
Server Listing
opplevagent-mcp

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 5 of 5 tools scored. Lowest: 3.9/5.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct resource and action: discovery of experiences vs farm-sale producers, getting details for an experience, listing categories, and booking a farm-sale visit. No overlap in purpose; clear separation.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (book, discover, get, list). The nouns are domain-specific but the pattern is uniform, with no mixing of styles.

Tool Count5/5

With 5 tools covering discovery, details, categories, and booking for two verticals, the count is well-scoped for a focused marketplace server. Not too many, not too few.

Completeness2/5

The set lacks a booking tool for experiences (only farm-sale booking is available) and does not provide detailed retrieval for farm-sale producers. Missing booking management tools for pending requests, creating a notable gap in the expected lifecycle.

Available Tools

5 tools
book_gardssalgRequest a gårdssalg booking (pending — email confirmation required)AInspect

Submit a booking REQUEST for a Norwegian gårdssalg (farm-sale) producer discovered via discover_gardssalg. Send inn en reservasjonsforespørsel for et gårdssalg-besøk. IMPORTANT: this NEVER creates a confirmed booking — it creates a PENDING request, exactly like the producer's own website form. The PRODUCER reviews the request and responds (confirms, proposes another time, or declines); guest_email only receives a read-only status link, never anything that can finalize the booking. No payment is involved (pickup/visit, pay on arrival, as today). Only producers with an active booking status (see discover_gardssalg's booking.live field) can be booked — a paused/not-yet-onboarded producer is rejected with a clear message, never a silent failure. VIKTIG: oppretter ALDRI en bekreftet booking — kun en avventende forespørsel; produsenten mottar forespørselen og svarer (bekrefter, foreslår nytt tidspunkt eller avslår). Required: provider_id (from discover_gardssalg), slot_at (requested date/time), party_size, guest_name, guest_email. Optional: experience_id, guest_phone, notes. Example: book a table for 4 at provider '3f1b2c4d-...' for '2026-08-15T13:00' for 'Kari Nordmann' kari@example.no.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoOptional free-text note to the producer (e.g. dietary needs, arrival details).
slot_atYesRequested visit date/time, local (Europe/Oslo), format 'YYYY-MM-DDTHH:MM'. Example: '2026-08-15T13:00'. This is a REQUEST — the producer may confirm, suggest another time, or decline.
guest_nameYesFull name of the person the reservation is for. Example: 'Kari Nordmann'
party_sizeYesNumber of people in the group (1-50). Example: 4
guest_emailYesGuest's email address — REQUIRED. Receives a confirmation-of-request email plus a read-only status link; the booking stays pending until the PRODUCER responds (confirms, proposes another time, or declines) — the guest's link cannot finalize anything. Example: 'kari@example.no'
guest_phoneNoOptional guest phone number.
provider_idYesThe gårdssalg producer's id, from a discover_gardssalg result (NOT the profile slug). Example: '3f1b2c4d-...'
experience_idNoOptional experience UUID if this booking is for a specific listed experience rather than a general gårdssalg visit.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral context beyond annotations: it creates a pending request only, producer reviews and responds, guest email receives a read-only status link, no payment involved, and non-bookable producers are rejected with a clear message. Annotations (readOnlyHint=false, destructiveHint=false) are consistent with this behavior. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured, starting with the core purpose in English and Norwegian, then key behavioral notes, then listing required/optional parameters, and ending with an example. Every sentence provides useful information with minimal redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the workflow, constraints, and parameter meanings well, but it does not describe the tool's return value or response structure. Since there is no output schema, the description should ideally mention what the tool returns (e.g., a request ID or status). This omission reduces completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, but the description adds additional context for several parameters: provider_id must come from discover_gardssalg, slot_at is a request (not a confirmation), guest_email only gets a status link, etc. This adds value beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool submits a booking request for a Norwegian gårdssalg producer discovered via discover_gardssalg. It uses specific verbs ('submit a booking REQUEST') and distinguishes from sibling tools (discovery and retrieval tools).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use: after discovering a producer via discover_gardssalg and only for those with active booking status. It explains what the tool does NOT do (never creates a confirmed booking) and includes exclusions (paused/not-onboarded producers). It does not provide an explicit alternative tool, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discover_experiencesDiscover Norwegian experiencesA
Read-onlyIdempotent
Inspect

Search the opplevagent.no curated marketplace of Norwegian experiences and activities. Filtrer på fylke (county), kategori, vær, sesong, innendørs/utendørs, gruppestørrelse, pris og varighet. / Filter by county, category, weather, season, indoor/outdoor, group size, price, and duration. Also supports near-me search via lat/lng (+ optional radius_km): when given, results include a rounded distance_km and a geo_precision flag ('address' = exact, 'kommune' = approximate municipality centroid) and are sorted nearest-first. Returns title, category, location (fylke/kommune), description, and booking URL if available. Only verified experiences from active providers (Brreg-checked) are returned. Examples: 'hva kan vi finne på i Troms om vinteren?', 'outdoor activities in Oslo for 4 people', 'experiences within 50km of lat 69.65 / lng 18.95'.

ParametersJSON Schema
NameRequiredDescriptionDefault
ageNoAge of the youngest participant. Filters out experiences with a minimum-age requirement above this. Example: 8
latNoOrigin latitude for a near-me search (decimal degrees). Must be given together with lng. Example: 69.65 (Tromsø)
lngNoOrigin longitude for a near-me search (decimal degrees). Must be given together with lat. Example: 18.95 (Tromsø)
sortNo'distance' — sort results ascending by distance from lat/lng. Already the default whenever lat/lng are given; this makes the request explicit.
fylkeNoNorwegian county (fylke). Examples: 'Oslo', 'Vestland', 'Troms', 'Rogaland'
limitNoMax results (default 20, max 50)
seasonNoSeason filter. Examples: 'summer', 'winter', 'spring', 'autumn'
kommuneNoNorwegian municipality (kommune). Examples: 'Tromsø', 'Bergen', 'Stavanger'
weatherNoWeather suitability filter. 'rain'/'snow' prefers indoor + weather-independent experiences. Examples: 'rain', 'clear'
categoryNoExperience category slug. Examples: 'natur_friluft', 'dyreliv_safari', 'mat_drikke', 'vinter'
languageNoRequired language for the experience. Examples: 'no', 'en'
max_priceNoMaximum price per person in Norwegian kroner (NOK). Example: 500
radius_kmNoMax distance from lat/lng in kilometers. Only applies when lat/lng are given. Example: 50
group_sizeNoNumber of people in the group. Used to filter experiences by min/max group capacity. Example: 4
duration_maxNoMaximum duration in minutes. Example: 120 (2 hours)
indoor_outdoorNoIndoor/outdoor preference. Examples: 'indoor', 'outdoor', 'both'
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds valuable behavioral details: results are verified (Brreg-checked), geo-precision flag, sorted nearest-first with lat/lng, and return fields. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise and well-structured: purpose, filters, geo-features, return info, examples. The bilingual text adds length but is justified. Could be slightly tighter without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description covers return fields (title, category, location, description, booking URL) and geo details. Missing pagination or error handling, but for a 16-parameter search tool it is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good descriptions for each parameter. The description adds little beyond summarizing filters and repeating constraints (e.g., radius_km applies only with lat/lng). Baseline 3 is appropriate as the description does not compensate for a coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it searches the opplevagent.no marketplace, distinguishing it from siblings like get_experience (single item) and list_experience_categories (categories). The verb 'search' and resource are specific, and examples solidify purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (searching experiences with various filters) but does not explicitly state when not to use or point to specific alternatives like get_experience or list_experience_categories. However, the context is clear enough for inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discover_gardssalgDiscover Norwegian farm-sale drink producers (gårdssalg)A
Read-onlyIdempotent
Inspect

Search opplevagent.no's gårdssalg (farm-sale) vertical — Brreg-registered Norwegian drink producers (bryggeri/cideri/vingård/destilleri/mjøderi/seltzeri) selling directly from the farm. Finn norske gårdssalg-produsenter (drikkeprodusenter som selger direkte fra gården) etter fylke, kommune og produsenttype. / Filter by county (fylke), municipality (kommune), and producer type. Also supports near-me search via lat/lng (+ optional radius_km): when given, results include a rounded distance_km and are sorted nearest-first, and rows with no geocoded location are excluded (never a fabricated distance). Returns name, location, producer type, and an honest booking status (live direct booking vs. a dark-launch 'coming soon' note — never overclaims booking availability). Examples: 'gårdssalg i Vestland', 'cideri near lat 60.4 / lng 5.3', 'bryggeri med booking'.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoOrigin latitude for a near-me search (decimal degrees). Must be given together with lng. Example: 69.65 (Tromsø)
lngNoOrigin longitude for a near-me search (decimal degrees). Must be given together with lat. Example: 18.95 (Tromsø)
fylkeNoNorwegian county (fylke) of the producer. Examples: 'Oslo', 'Vestland', 'Troms', 'Rogaland'
limitNoMax results (default 20, max 50)
kommuneNoNorwegian municipality (kommune) of the producer. Examples: 'Tromsø', 'Bergen', 'Stavanger'
radius_kmNoMax distance from lat/lng in kilometers. Only applies when lat/lng are given. Example: 50
booking_liveNoWhen true, only return producers that currently accept direct bookings. Omit to include producers regardless of booking status.
producer_typeNoType of drink producer. Examples: 'bryggeri' (brewery), 'cideri' (cidery), 'vingård' (vineyard), 'destilleri' (distillery), 'mjøderi' (meadery), 'seltzeri'
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds significant behavioral details: near-me search sorts by distance, excludes non-geocoded rows, returns rounded distance_km; and booking status is honest (live vs. dark-launch). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is informative and well-structured, starting with the main purpose, then providing examples and details. It is somewhat lengthy but efficient, with no wasted sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 8 optional parameters and no output schema, the description covers all necessary aspects: how to filter, how near-me search works, booking status, and examples. It is complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter. The description adds value by explaining the combination of lat/lng with radius_km and the behavior of booking_live, but does not add much beyond the schema's examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: searching for Norwegian farm-sale drink producers from opplevagent.no's gårdssalg vertical. It specifies the resource (Brreg-registered drink producers) and distinguishes from sibling tools like book_gardssalg and discover_experiences.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides examples of when to use the tool (e.g., 'gårdssalg i Vestland', 'cideri near lat 60.4 / lng 5.3', 'bryggeri med booking') and explains the near-me search feature and filtering by county, municipality, and producer type. However, it does not explicitly state when not to use this tool over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_experienceGet full details for a Norwegian experienceA
Read-onlyIdempotent
Inspect

Fetch complete details for a single experience from opplevagent.no by its UUID. Henter fullstendig informasjon om en opplevelse via UUID. Returns title, full description, category, location (fylke/kommune/meeting point), indoor/outdoor, season, weather suitability, group size limits, age suitability, price, duration, languages, booking URL, and booking type. Obtain the UUID from discover_experiences results. Example: id 'a1b2c3d4-e5f6-7890-abcd-ef1234567890'.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUUID of the experience to fetch. Example: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890'
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds the source (opplevagent.no) and lists returned fields, but does not disclose additional behavioral traits like rate limits or auth needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is front-loaded with purpose and includes bilingual content which may be unnecessary for an AI agent but is not overly verbose. Could be slightly more concise but still effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description provides a detailed list of returned fields (title, description, category, location, etc.) and usage instruction (UUID from discover_experiences). This compensates well for the lack of output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with UUID format and description. Description provides an example UUID, reinforcing the schema but adding no new semantic information. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Fetch complete details for a single experience' and enumerates the returned fields, making the purpose specific and unambiguous. It implicitly distinguishes from sibling 'discover_experiences' which lists experiences.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly mentions obtaining UUID from discover_experiences results, guiding the agent on prerequisite. Clear that this tool is for fetching one experience, not listing or booking, but no explicit when-not statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_experience_categoriesList Norwegian experience categoriesA
Read-onlyIdempotent
Inspect

List all experience categories available on opplevagent.no, along with the number of verified experiences in each category. Henter alle kategorier med antall verifiserte opplevelser. Use this to understand what kinds of experiences are available before calling discover_experiences with a specific category filter. Example question: 'hvilke typer opplevelser finnes i Norge?', 'what categories are available?'.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it returns counts of verified experiences, which is useful behavioral context beyond the safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise with two sentences in English and Norwegian, but the bilingual content is slightly redundant. Front-loaded with main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, no output schema, and adequate annotations, the description provides sufficient information: what it does, when to use, and what it returns (categories with counts).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so baseline is 4. No additional parameter meaning needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all experience categories with counts, specifying the resource (categories on opplevagent.no) and action (list with number of verified experiences). This distinguishes it from siblings like discover_experiences.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises use before discover_experiences for category filter, with example questions like 'hvilke typer opplevelser finnes i Norge?'. This provides clear when-to-use context and differentiates from similar tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    MCP server providing typed tools for Norwegian public data sources, enabling natural language queries to official datasets like SSB, Brønnøysund, MET, Kartverket, Entur, and more, without requiring API keys.
    27
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    Provides LLM-friendly weather tools and Norwegian place name resolution via MCP, enabling weather forecasts, air quality, marine conditions, and activity planning.
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Search 1000+ local food producers in Norway. Natural language, Norwegian & English. Tools: lokal_search, lokal_discover, lokal_info, lokal_stats
    4
    45
    1
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.