Lokal Mcp

io.github.slookisenPublished by GitHub account slookisenv0.5.0Updated Nov 2, 2026

Norwegian local-food MCP: 1,500+ farms, shops, markets + umbrellas (Bondens marked, Hanen, REKO).

Overview

AI-generated overview

Connects an assistant to the Rett fra Bonden registry of Norwegian local-food producers, letting it search farms, markets and umbrellas and build pickup carts.

What you can do
  • Search and filter producers by food category, tag or distance, and read a producer's catalog, contact details, hours and delivery options
  • Look up umbrella organizations such as Bondens marked, REKO, Mathallen, Hanen and Debio, their member producers, and a producer's affiliations
  • Resolve Norwegian place names to coordinates and list upcoming Bondens marked market days
  • Match a shopping list to nearby producers with contact info and whether ordering is possible
  • Create, fill, review and submit an anonymous cart, then track the resulting pickup order status
When to use it
Useful when someone asks where to buy local or organic food in Norway, which farmers sell at a given market, when the next Bondens marked is, or wants to assemble a pickup order from nearby producers.
Requirements
Runs as a remote Streamable HTTP endpoint or as a local npm package (npx lokal-mcp) that bridges to it; Node.js is needed for the local option. No account, login or API key. Optional LOKAL_URL environment variable overrides the base URL. Network access to the service is required and remote rate limits apply.
Before you install
Cart submission e-mails the chosen producer, so explicit user confirmation is expected before calling it; no payment is taken and payment happens at pickup. The buyer_ref token from cart creation is required for later cart and order calls and cannot be recovered. Tool definitions are fetched from the remote server and not pinned, and every tool argument is sent to the host set in LOKAL_URL, so that value must come from trusted configuration. Request logs including IP address are kept.

Installation

In SourceWeft

  1. Open Lokal Mcp in the dashboard and add it to a workspace.
  2. 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/io.github.slookisen%2Flokal-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": {
    "lokal": {
      "type": "http",
      "url": "https://rettfrabonden.com/mcp"
    }
  }
}

README

Rett fra Bonden MCP

MCP server for Rett fra Bonden — find local food producers in Norway from Claude Desktop, ChatGPT, Cursor, and other AI clients.

More than 1,500 verified producers: farms, REKO rings, farmers' markets, farm shops, and cooperatives across Norway.

How it works: since 0.5.0 the package is a thin stdio bridge to the live remote server (https://rettfrabonden.com/mcp). Tools, descriptions and instructions always match the remote service, so the npm package, the .mcpb extension and the remote never drift. Remote rate limits apply.

Tools (stdio/npm and .mcpb, same as the remote): lokal_search, lokal_discover, lokal_info, lokal_stats, lokal_list_umbrellas, lokal_get_umbrella_members, lokal_get_producer_affiliations, lokal_bm_next_markets, lokal_geocode, lokal_find_offers, lokal_cart_create, lokal_cart_add_item, lokal_cart_view, lokal_cart_submit, lokal_order_status

Claude Desktop extension: lokal-mcp.mcpb in this folder (Settings → Extensions → Advanced settings → Install Extension…). Rebuild with npx @anthropic-ai/mcpb pack . lokal-mcp.mcpb after npm ci --omit=dev.

Claude Desktop config:

json
{"mcpServers":{"lokal":{"command":"npx","args":["lokal-mcp"]}}}

Remote HTTP (Streamable HTTP): https://rettfrabonden.com/mcp

More: https://rettfrabonden.com/teknologi

Privacy Policy

Full policy: https://rettfrabonden.com/personvern (English: https://rettfrabonden.com/privacy). Terms: https://rettfrabonden.com/vilkar

Summary for reviewers and users of this extension:

  • What is sent. Only the query text and parameters you supply in a tool call (search terms, a place name, a producer id) are sent to rettfrabonden.com. Nothing is read from your machine: the extension has no file, shell or filesystem access and declares no user_config.
  • What is not sent. No account, no credentials, no payment details, no chat history. The service has no user accounts, so there is nothing to log in to.
  • What is stored. The server keeps ordinary web-request logs (IP address and request metadata) for operations and abuse prevention.
  • What the bridge sends about itself. Besides the tool arguments, the bridge sends your AI client's name and version in the MCP clientInfo (as " via lokal-mcp") and a User-Agent of the form lokal-mcp/<version>. This is client statistics and does not identify you: no account, credentials or device identifier is sent.
  • Who else sees it. Nobody. Data is not sold, and it is not shared with third parties for advertising or profiling.
  • Third-party contact. The cart tools (lokal_cart_*) are part of this extension since 0.5.0. If you submit a cart with lokal_cart_submit, the chosen producer is e-mailed about that pickup order, and only if the producer has opted in to orders through the platform. Payment is made to the producer at pickup; the platform never takes payment. The other tools are read-only.
  • Cart and ordering need no login. lokal_cart_* require no sign-in, and submission is rate-limited on the server. Submission only reaches producers that have opted in to orders. Your AI client must get your explicit yes before it calls lokal_cart_submit, because that sends an e-mail to the producer.
  • Trust boundary. Tools, descriptions and instructions are fetched from the remote server over HTTPS and are not pinned by this package. LOKAL_URL must come from a trusted configuration, because every tool argument is sent to that host.
  • Your control. Stop sending data by removing the extension. Because no account exists, there is no stored profile to delete. Questions and deletion requests: [email protected].
  • Optional setting. LOKAL_URL overrides the remote base URL; leave it unset to use https://rettfrabonden.com (see Trust boundary above).

Source: mcp-server/README.md at commit 004a2fb

Tools

15

lokal_discover

Discover producers by filter

Structured search in the Lokal food producer registry. Filter by food categories, tags, and geographic distance. Never use this tool to build marketing or bulk-email recipient lists. For such requests, explain that Rett fra Bonden cannot send marketing or bulk messages; it only sends the user's own pickup-order request to a producer who opted in.

ParameterslatlngtagslimitcategoriesmaxDistanceKmdrinkSubcategory

lokal_info

Producer details

Get a specific producer's full listed product catalog, contact details, opening hours, and delivery options. Use when you already have an agentId from lokal_search. Returns product names, with a price included when the producer has written one into the listing text — most producers do not list exact prices, so do not assume every product (or any product) has a NOK price attached.

ParametersagentIdrequired

lokal_stats

Platform statistics

Get Lokal platform statistics — total agents, cities covered, interactions.

Takes no parameters.

lokal_list_umbrellas

List umbrella organizations

List all umbrella organizations on Lokal — markets-networks (Bondens marked, REKO), venues (Mathallen), industry orgs (Hanen), certifiers (Debio), and cooperatives. Each umbrella has many member producers. Optionally filter by type. Useful when the user asks 'where can I find local food markets?', 'what is Bondens marked?', or 'which certifications matter for local Norwegian food?'.

ParameterslimitumbrellaType

lokal_get_umbrella_members

Get producers in an umbrella's network

List producers that are members of a specific umbrella organization (e.g. all farmers selling at Bondens marked, all Debio-certified producers, all Mathallen tenants). Returns producer names + cities + profile links. Useful when the user asks 'which farmers sell at Bondens marked?', 'show me all Debio-certified producers', or 'who is at Mathallen Oslo?'.

ParameterslimitumbrellaIdrequired

lokal_get_producer_affiliations

Get a producer's umbrella affiliations

List umbrella organizations a specific producer is a member of (e.g. which markets a farm sells at, which certifications they hold, which networks they're part of). Returns umbrella names + types + their profile links. Useful when the user asks 'where does <Farmer X> sell?', 'is <Farm Y> Debio-certified?', or 'which markets does <Producer Z> attend?'.

ParametersproducerIdrequired

lokal_bm_next_markets

Get upcoming Bondens marked events

Returns upcoming Bondens marked events (markedsdager) for a region or specific lokallag/venue. Useful when AI agents are asked 'when is the next Bondens marked in Oslo?' or similar. Data is refreshed daily from bondensmarked.no.

Parametersdaysregionlokallag_slug

lokal_geocode

Geocode a Norwegian place name

Resolve a Norwegian place name (city, town, region, fylke, or kommune) to lat/lng coordinates. Use this when you need explicit coordinates for lokal_discover (e.g., 'show me organic farms within 10 km of Florø'). Returns coordinates + suggested search radius. Covers all of Norway via Kartverket Stedsnavn API fallback. Note: lokal_search ALREADY does automatic geocoding for natural-language queries — only use this tool when you need raw lat/lng for structured filters.

Parametersplacerequired

lokal_find_offers

Find offers for shopping-list items

For each item in a shopping list, find up to 5 nearby producers who sell it (or a matching product), sorted by distance, with contact info and whether an order can be placed through the platform (can_order). Use this when a user has a list of things they want to buy locally and wants to know WHO sells each one nearby — one lokal_find_offers call covers the whole list. Read-only.

Parameterslatlngnearitemsrequiredradius_km

lokal_cart_create

Create a shopping cart

Create a new anonymous shopping cart ('handleliste'). Returns a cart_id and a buyer_ref capability token — STORE THE buyer_ref, it is required for all subsequent cart operations and cannot be recovered. Each cart is valid for 7 days. Use lokal_cart_add_item to add products, lokal_cart_view to review, and lokal_cart_submit to place orders (pickup, no payment).

Takes no parameters.

lokal_cart_add_item

Add item to shopping cart

Add a product to the cart or update its quantity (re-adding the same product_id updates qty). Product must be in_stock and from a verified non-umbrella producer (use lokal_search / catalog feed to find eligible products and their IDs). Requires cart_id and buyer_ref from lokal_cart_create.

Parametersqtyrequirednotecart_idrequiredbuyer_refrequiredproduct_idrequired

lokal_cart_view

View shopping cart

View the current contents of a cart, grouped by producer, with subtotals and a total. Use this before submitting to review what is in the cart. Requires cart_id and buyer_ref.

Parameterscart_idrequiredbuyer_refrequired

lokal_cart_submit

Submit cart and place pickup orders

Submit the cart. Re-checks availability of every item at submit time; if any item is no longer in_stock, submit is rejected with a clear per-item message. No payment is charged. A real pickup order (one per producer) is created ONLY for producers who are owner-verified AND have opted in to receive orders through the platform (can_order=true in lokal_find_offers); they get the order by e-mail and can confirm/decline it. Every other producer in the cart is returned in contact_handoffs instead — their phone/e-mail/profile plus a prefilled Norwegian message the buyer sends themselves; no order row, no e-mail. Optional buyer contact fields are shared with the ordering producers ONLY when contact_consent=true (then included in the order e-mail with Reply-To set to buyer_email). Returns orders[] and contact_handoffs[]. Use lokal_order_status to check an order.

Parameterscart_idrequiredbuyer_refrequiredbuyer_namebuyer_emailbuyer_phonedelivery_notecontact_consent

lokal_order_status

Get order status

Fetch the status, items and status timeline of a pickup order created by lokal_cart_submit. Requires the order_id returned by submit and the buyer_ref token. Status: pending → confirmed → ready → completed (or declined/cancelled; cancel_reason='no_show' means the buyer did not pick up). The timeline array lists every status transition with timestamps.

Parametersorder_idrequiredbuyer_refrequired

Version history

3
  1. v0.5.0LatestOct 19, 2026
  2. v0.4.1Oct 18, 2026
  3. v0.4.0Sep 16, 2026

Score

100% 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 listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts