lokal
Server Quality Checklist
Latest release: v0.3.1
- 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/5All 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/5With 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/5The 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.
Average 3.6/5 across 4 of 4 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- 1 of 1 community issues answered or closed in the last 6 months
- 821 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
This repository includes a glama.json configuration file.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- Behavior3/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 effectively describes key behaviors: natural language processing, bilingual support (Norwegian/English), ranked results, and vCard functionality. However, it doesn't mention important operational aspects like rate limits, authentication requirements, error conditions, or pagination behavior beyond the 'limit' parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise and well-structured: the first sentence establishes core functionality, the second adds important behavioral details, and the third provides concrete examples. Every sentence earns its place with no wasted words, and key information is front-loaded appropriately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 2 parameters, 100% schema coverage, but no annotations or output schema, the description provides adequate context about what the tool does and how to use it. However, it lacks details about the return format (beyond mentioning vCard links), error handling, or performance characteristics that would be helpful given the absence of structured output documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents both parameters thoroughly. The description adds minimal value beyond the schema - it mentions natural language queries in Norwegian/English (implied by the schema's description) and provides query examples, but doesn't explain parameter interactions or provide additional semantic context. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('search for local food producers') and resources ('in Norway'), distinguishing it from siblings by focusing on natural language search rather than discovery, info, or stats. It explicitly mentions the target domain (food producers) and geographic scope (Norway).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (searching for food producers with natural language queries in Norwegian or English) and includes helpful examples. However, it doesn't explicitly state when NOT to use it or mention alternatives among the sibling tools (lokal_discover, lokal_info, lokal_stats), leaving some ambiguity about tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/slookisen/lokal'
If you have feedback or need assistance with the MCP directory API, please join our Discord server