mcpbeat Sign in

Lokal MCP Server

answering

Lokal MCP is answering right now. Last checked 13 min ago. 106 installs a week from npm. It exposes 15 tools. Last commit 8 Nov 2026.

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

Installs per day peak 31 · avg 10 · -39% w/w
a month agotoday
Uptime history 21 days of history · worst day 99%
21 days agonow
100.0%
Uptime 24h
182 of 182 checks
15
Tools
read from the server
346 ms
Response time
average over 24h
106
Installs / week
npm and PyPI

What changed 11

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 23 October 2026. No other catalogue keeps this.

6 Nov 6 tool descriptions were rewritten lokal_find_offers, lokal_geocode, lokal_get_producer_affiliations and 3 more
6 Nov a tool changed the parameters it asks for lokal_discover
23 Oct 2 tools changed the parameters they ask for4 times that day lokal_discover, lokal_find_offers
and 2 more, back to 23 October 2026

What the code does

We read the source, 6 h ago · tools taken from the live server · rules 995398eba69f

Evidence

Things with no honest explanation: a promise that contradicts the code, code that runs at install time while hiding what it does, data leaving the machine.

Name looks like a popular package local-mcp
lokal-mcp похож на local-mcp
In the project's build, not in the package

Found in continuous integration, deployment or infrastructure files, or in a neighbouring package of the same monorepo. None of this is installed when you add the server: it describes how the project is built and released. We list it because a leaked key in a build pipeline is still a real problem, but it is not something this server does on your machine.

…if(this._events&&(n=this._events[t]))if(1===arguments.length){if(this._firingCount)for(o=0,s=n.length;o<s;o++)n[o].fn=u;delete this._events[t]}else"function"!=typeof e?console.warn("wrong listener type: "+typeof e):!1!==(e=this._listens(t,e,i))&&(i=n[e],this._firingCount&&(i.fn=u…
  const out = execFileSync(
  await page.screenshot({ path: path.join(DIR, name), fullPage: true });

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

We found things in this code

Code changes quietly between releases, and nobody reads the diff of a dependency. We do, on every release — watch Lokal MCP and you get told the day something new turns up.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 13 min ago.

run in your terminal
claude mcp add lokal-mcp --transport http https://rettfrabonden.com/mcp
Settings → Connectors → Add custom connector, then paste this address
https://rettfrabonden.com/mcp
~/.codex/config.toml
[mcp_servers.lokal-mcp]
url = "https://rettfrabonden.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "lokal-mcp": {
      "url": "https://rettfrabonden.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "lokal-mcp": {
      "type": "http",
      "url": "https://rettfrabonden.com/mcp"
    }
  }
}

This endpoint answered with an authorization challenge. The server is running, and it signs you in through your browser: there is no API key to paste.

This server publishes 1 more address. The block above uses the one we reach during checks; the full list is under Endpoints below, and the author may intend a particular one for your client.

Available tools 15

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

lokal
lokal_bm_next_markets
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.
lokal_cart_add_item
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.
lokal_cart_create
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).
lokal_cart_submit
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.
lokal_cart_view
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.
lokal_discover
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.
lokal_find_offers
Use when the user wants to buy one food item or a shopping list from Norwegian local producers and has a place or coordinates. Returns matching listed products from up to five nearby producers per item, nearest first, with contact info and whether an order can be placed through the platform (can_order). Broad alternatives do not confirm the requested product, stock or price. Read-only; creates no cart and contacts no producer.
lokal_geocode
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 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.
lokal_get_producer_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?' or 'which markets does <Producer Z> attend?'.
lokal_get_umbrella_members
List producers that are members of a specific umbrella organization (e.g. all farmers selling at Bondens marked, all Mathallen tenants). Returns producer names + cities + profile links. Useful when the user asks 'which farmers sell at Bondens marked?' or 'who is at Mathallen Oslo?'. A producer's Debio status comes from the Debio register and is shown in lokal_info.
lokal_info
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.
lokal_list_umbrellas
List all umbrella organizations on Lokal — markets-networks (Bondens marked, REKO), venues (Mathallen), industry orgs (Hanen), 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?'.
lokal_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.
lokal_search
Use when the user wants to find or buy food from Norwegian farms, farm shops or local producers, or asks about a named producer. Search listed products and public producer details in Norwegian or English. It returns the producer's listed products, with a price included when the producer has written one into the listing text (most producers do not list prices, so treat price as available, not guaranteed). It also covers general searches like 'vegetables near Oslo'. For proximity questions ('near me' / 'nær meg' / 'closest farm shop'): if you know the user's coordinates, pass lat + lng (and optionally radius_km) and results are filtered and ranked by real distance; `query` may then be empty to get everything nearby. Supports searching by producer name (e.g. 'Bjørndal Gård') or by product/location (e.g. 'honey Trondheim'). Drink venues are a first-class category: queries like 'bryggeri i Agder', 'drikkesteder', 'vingård' or 'cideri' work the same way and return breweries, cideries, wineries, distilleries, farm cafés and meaderies. Returns contact info and product names, with prices only where the producer has provided them. Read-only: it never contacts a producer on the user's behalf. 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.
lokal_stats
Get Lokal platform statistics — total agents, cities covered, interactions.

Endpoints

URLTransportStateLatencyChecked
https://rettfrabonden.com/mcp streamable-http answering 172 ms 13 min ago
https://server.smithery.ai/@slookisen/rettfrabonden streamable-http sign-in 341 ms 13 min ago

Alternatives to Lokal MCP

same job, measured the same way
Market Recap
by pipeworx-io

Market Recap MCP — a one-call 'what happened in markets' snapshot.

365 installs/wk 48 tools answering
aus-accounting-mcp
by ryanduguid

Reviews, 14 bounded tax and super worksheets, cited retrieval from your local Markdown. Not advice.

659 installs/wk local only
Prisjakten.no
by prisjakten

Product search, store prices and price history from Norwegian web shops. Read-only, no login.

4 tools answering
SnapRender
by user0856

Local stdio MCP server for SnapRender screenshots. Hosted version: com.snap-render.app/snap-render

78 installs/wk local only
Finn Tannlege MCP
by slookisen

Norwegian dental clinic MCP: more than 4,500 clinics with Helfo, specialty and emergency care data.

66 installs/wk 5 tools answering
Estaite MCP
by estaite-solutions

Current US rental market data for AI agents: 1,500+ submarkets, monthly rent + vacancy + trends.

answering
MCP Laya
by dockndevai

Safe-by-default MCP for Laya: fast, local, typed decisions (classify/score/yes-no), 100+ langs.

127 installs/wk local only
FeatureBoard
by featureboard

Local-first project board MCP: an AI agent plans, works, verifies, and ships tickets from markdown.

local only

Lokal MCP — questions

Answers built from our own checks of this server.

What can Lokal MCP do?
It exposes 15 tools, read directly from the server on our last check. Among them: lokal_bm_next_markets, lokal_cart_add_item, lokal_cart_create, lokal_cart_submit, lokal_cart_view, lokal_discover and 9 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Lokal MCP working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 182 of 182 checks got a reply (100.0%), average response time 346 ms. The bar chart above shows every period we have measured.
How do I connect Lokal MCP?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address. You sign in through your browser once and the client keeps the session: no key to copy, and it refuses anonymous clients.
How do you sign in to Lokal MCP?
No API key is involved. Lokal MCP answers our knock with an OAuth challenge, so you authorise it once in your browser and the client keeps the session. That is also why we see no tool list: it will not describe itself to an anonymous client, and that is the server working as intended, not a fault.
How fast is Lokal MCP?
It answers our handshake in 346 ms on average, which is faster than 40% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use Lokal MCP?
The npm package lokal-mcp was installed 106 times in the last week. Week over week that is -39%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is Lokal MCP open source?
The code is open source: it is published under the MIT licence, written in TypeScript and 2 stars on GitHub. The licence covers the code in the repository, not the hosted service at rettfrabonden.com, which runs on its operator's own terms.