Skip to main content
Glama

🥬 Lokal — Red de agentes de alimentos locales para Noruega

En vivo: https://rettfrabonden.com | Especificación de API: https://rettfrabonden.com/openapi.yaml

Lokal es la capa de descubrimiento de alimentos locales en Noruega. Más de 400 productores (granjas, mercados y tiendas) detectables tanto por agentes de IA como por humanos.

No es una aplicación. No es una tienda web. Infraestructura: el DNS para agentes de alimentos.

Usar Lokal

Desde Claude Desktop (MCP)

Añade esto a tu configuración de Claude Desktop:

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

Luego pregúntale a Claude: "Finn økologiske grønnsaker nær Oslo"

Desde ChatGPT (GPT personalizado)

Crea un GPT personalizado con acciones que apunten a https://rettfrabonden.com/openapi.yaml. Instrucciones en custom-gpt-instructions.md.

Desde tu propio agente (A2A / REST)

# Natural language search
curl "https://rettfrabonden.com/api/marketplace/search?q=organic+vegetables+near+Oslo"

# Structured discovery
curl -X POST https://rettfrabonden.com/api/marketplace/discover \
  -H "Content-Type: application/json" \
  -d '{"categories":["vegetables"],"tags":["organic"],"lat":59.91,"lng":10.75,"maxDistanceKm":30}'

# A2A JSON-RPC
curl -X POST https://rettfrabonden.com/a2a \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"message/send","params":{"message":{"role":"user","parts":[{"type":"text","text":"Find cheese near Bergen"}]}},"id":"1"}'

Related MCP server: datakilder-mcp

API

Endpoint

Método

Descripción

/api/marketplace/search?q=...

GET

Búsqueda en lenguaje natural (NO/EN)

/api/marketplace/discover

POST

Filtrado estructurado

/api/marketplace/agents/:id/info

GET

Detalles del productor

/api/stats

GET

Estadísticas de la plataforma

/a2a

POST

A2A JSON-RPC 2.0

/.well-known/agent-card.json

GET

Tarjeta de agente A2A

/openapi.yaml

GET

Especificación OpenAPI 3.1

Especificación completa: https://rettfrabonden.com/openapi.yaml

Arquitectura

  • TypeScript + Express en Fly.io (región de Estocolmo)

  • SQLite con modo WAL, volumen persistente

  • Compatible con A2A v1.0.0 (JSON-RPC 2.0 + Tarjeta de agente)

  • Coincidencia basada en valor: sin anuncios, sin pago por posicionamiento

  • Más de 400 agentes en más de 150 ciudades noruegas

Para productores

¡Es posible que tu granja/mercado ya esté listado! Visita https://rettfrabonden.com para comprobarlo y reclama tu agente para actualizar tu información.

Licencia

MIT

Available Tools

4 tools
lokal_discoverBInspect

Structured search in the Lokal food producer registry. Filter by food categories, tags, and geographic distance. Returns ranked producers with contact info and vCard links.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoriesNoCategories: vegetables, fruit, berries, dairy, eggs, meat, fish, bread, honey, herbs
tagsNoTags: organic, seasonal, budget, local, fresh
latNoLatitude for distance filtering
lngNoLongitude for distance filtering
maxDistanceKmNoMax distance in km
limitNoMax results

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that results are 'ranked' and includes 'contact info and vCard links,' which adds some behavioral context beyond basic search functionality. However, it lacks critical information about permissions, rate limits, error conditions, pagination (beyond the limit parameter), or whether this is a read-only operation. For a search tool with no annotations, this leaves significant gaps.

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 a single, well-structured sentence that efficiently conveys the tool's purpose, key parameters, and return value. It's front-loaded with the core functionality and avoids any redundant or unnecessary information. Every part of the sentence earns its place by adding value.

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?

Given the complexity (6 parameters, no output schema, no annotations), the description is adequate but has clear gaps. It covers the basic purpose and return format, but lacks behavioral details (e.g., error handling, authentication) and usage guidelines relative to siblings. With no output schema, it doesn't fully explain the structure of returned data beyond mentioning 'ranked producers with contact info and vCard links.' This makes it minimally viable but incomplete for optimal agent use.

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 description coverage is 100%, so the schema already documents all parameters thoroughly with descriptions and constraints (e.g., categories and tags with example values, lat/lng for distance filtering, limit with min/max/default). The description adds marginal value by summarizing the filtering capabilities ('Filter by food categories, tags, and geographic distance') but doesn't provide additional syntax, format details, or usage examples beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the tool performs 'structured search in the Lokal food producer registry' with specific filtering capabilities (categories, tags, geographic distance) and indicates what it returns (ranked producers with contact info and vCard links). It distinguishes itself from siblings by focusing on structured search with specific filters, though it doesn't explicitly differentiate from 'lokal_search' which might have overlapping functionality.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus the sibling tools (lokal_info, lokal_search, lokal_stats). It doesn't mention prerequisites, alternatives, or specific use cases that would help an agent choose between these tools. The only implied usage is for searching with specific filters, but no comparative context is given.

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

lokal_infoAInspect

Get detailed information about a specific Lokal producer — address, products, opening hours, certifications, and a vCard link the user can add to their contacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentIdYesThe producer's agent ID (UUID)

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It describes the return data structure (address, products, etc.) and mentions a vCard link functionality, which adds useful context. However, it doesn't disclose behavioral traits like whether this is a read-only operation, error handling, or performance characteristics.

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 a single, well-structured sentence that efficiently communicates purpose and return values. Every element (verb, resource, specific data fields) earns its place with zero wasted words.

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?

For a single-parameter read operation with no output schema, the description provides good coverage of what information will be returned. It could be more complete by mentioning the response format or error cases, but it adequately conveys the tool's purpose and output scope.

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 description coverage is 100%, so the schema already documents the single 'agentId' parameter as a UUID. The description adds no additional parameter semantics beyond what's in the schema, but the baseline is 3 when schema coverage is high.

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 verb ('Get') and resource ('specific Lokal producer'), specifying the exact information returned (address, products, opening hours, certifications, vCard link). It distinguishes from sibling tools by focusing on detailed information for a specific producer rather than discovery, search, or statistics.

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 usage context by specifying 'specific Lokal producer,' suggesting this tool should be used when the user already has a producer ID. However, it doesn't explicitly state when NOT to use it or name alternatives like 'lokal_search' for finding producers without an ID.

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

lokal_statsBInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While it indicates this is a read operation ('Get'), it doesn't specify whether authentication is required, rate limits apply, or what format the statistics are returned in. For a tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves beyond its basic purpose.

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 extremely concise—a single sentence that efficiently communicates the tool's purpose and the specific statistics it returns. Every word earns its place with no redundancy or unnecessary elaboration, making it easy to parse and understand immediately.

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?

Given the tool's simplicity (no parameters, no output schema, no annotations), the description is adequate but minimal. It explains what statistics are retrieved but doesn't address behavioral aspects like authentication needs or response format. For a read-only statistics tool, this provides the core information but leaves practical implementation details unclear.

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?

The tool has zero parameters, and schema description coverage is 100% (though trivial since there are no parameters). The description appropriately doesn't discuss parameters since none exist, and it provides context about what statistics are retrieved. This meets the baseline expectation for a parameterless tool.

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

Purpose4/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 with a specific verb ('Get') and resource ('Lokal platform statistics'), listing the types of statistics returned (total agents, cities covered, interactions). It distinguishes itself from siblings by focusing on platform-wide statistics rather than discovery, information, or search functions. However, it doesn't explicitly differentiate from siblings in the description text, so it falls just short of a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus its siblings (lokal_discover, lokal_info, lokal_search). It doesn't mention any prerequisites, alternatives, or specific contexts where this tool is appropriate. The agent must infer usage based solely on the tool name and description without explicit direction.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.3.1
    • First observedlokal_discover
    • First observedlokal_info
    • First observedlokal_search
    • First observedlokal_stats

TDQS

A3.5/5.0

Scored across 4 tools

Disambiguation3/5

The tools have overlapping purposes that could cause confusion. 'lokal_discover' and 'lokal_search' both search for producers, with 'discover' offering structured filtering and 'search' using natural language, making them potentially ambiguous. 'lokal_info' and 'lokal_stats' are distinct, but the two search tools may lead to misselection due to unclear boundaries in their use cases.

Naming Consistency5/5

All tool names follow a consistent 'lokal_' prefix with a descriptive suffix pattern (e.g., discover, info, search, stats). This predictable verb_noun-like structure is clear and uniform throughout the set, with no deviations in style or convention.

Tool Count4/5

With 4 tools, the count is reasonable and well-scoped for a food producer registry server. It covers key operations like searching, retrieving details, and getting platform stats, though it might feel slightly thin if more advanced features are expected, but overall it's appropriate for the domain.

Completeness3/5

The tool set covers basic search and retrieval functions but has notable gaps. There is no ability to create, update, or delete producer data, which limits CRUD coverage. However, for a read-only registry focused on discovery and information, it handles core workflows adequately, leaving agents to work around the lack of write operations.

Maintenance

ActivityActive
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    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
    B
    quality
    A
    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.
    47
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables searching products, viewing product details, managing the basket, and accessing order history on nemlig.com through natural language. It does not support placing orders or accessing payment cards.
    6
    MIT