SkyddsrumsKollen — Swedish Civil-Defence Shelters
Server Details
Find Sweden's nearest civil-defence shelters (skyddsrum): search, details, stats. Data: MSB.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
5 toolsfind_nearby_sheltersFind nearby sheltersARead-onlyIdempotentInspect
Find the nearest Swedish civil-defence shelters (skyddsrum) to a WGS84 position, sorted by distance. Returns up to 25 shelters (limit 1-25, default 10; fractions are floored and the effective limit is echoed) with address (street or Swedish property designation), capacity (number of people) and distance in km. The dataset has no separate municipality field — the address is the location identifier. Use search_location first if you only have a place name. Coverage is Sweden only (lat 55.0-69.5, lng 10.0-24.5 WGS84) — positions outside return status 'no_coverage' instead of results. Note: in Sweden you are not assigned to a specific shelter — in an emergency, use whichever shelter or protective space you can reach.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude, WGS84 decimal degrees. Coverage: 55.0-69.5 (Sweden). | |
| lng | Yes | Longitude, WGS84 decimal degrees. Coverage: 10.0-24.5 (Sweden). | |
| limit | No | Max number of shelters (default 10). Fractions are floored. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| info | No | |
| query | No | |
| status | No | |
| shelters | No | |
| attribution | No | |
| server_build | No | |
| server_version | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds substantial behavior beyond that: limit clamping (1-25, default 10, floors fractions, echoes effective limit), output fields (address, capacity, distance), the absence of a municipality field, and the no_coverage response for out-of-range coordinates. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph of about 120 words, with the core purpose front-loaded and each subsequent sentence providing necessary detail or a caveat. The closing emergency note is slightly tangential but still useful; the density is high but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich annotations and presence of an output schema, the description still adds all invocation-relevant information: parameter behavior, coverage bounds, no_coverage status, and an explicit alternative sibling. An agent can correctly select and call the tool without further clarification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description enriches the parameters by explaining the limit default and floor/echo behavior and by clarifying the effective coordinate bounds for lat/lng. It also adds semantic context that the address serves as the location identifier since there is no municipality field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Find the nearest Swedish civil-defence shelters (skyddsrum) to a WGS84 position, sorted by distance' — a specific verb, resource, and ordering. It also explicitly names search_location as an alternative for place-name input, distinguishing it from at least one sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs 'Use search_location first if you only have a place name', giving a clear when-to-use vs when-not-to-use condition. It also states Sweden-only coverage and the resulting 'no_coverage' status for out-of-range positions, which helps agents decide whether to call this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shelterGet shelter detailsARead-onlyIdempotentInspect
Get details for one Swedish civil-defence shelter by its SkyddsrumsKollen id (the UUID from a previous tool result or from a skyddsrumskollen.nu/skyddsrum/ URL). Returns found=true with address, capacity, coordinates and the shelter's page URL — or found=false (a successful response, not an error) when no shelter has that id; a malformed id is rejected as an INVALID_ARGUMENT error.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Shelter id (UUID) from find_nearby_shelters, search_shelters or a skyddsrumskollen.nu URL. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| info | No | |
| found | No | |
| shelter | No | |
| attribution | No | |
| server_build | No | |
| server_version | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is set. The description adds important behaviors beyond that: the found=true/false semantics, that found=false is a successful response, and that a malformed id triggers an INVALID_ARGUMENT error. This substantially enhances transparency beyond structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, information-dense sentence that front-loads the purpose and weaves in all critical details (id source, return fields, success and error cases) without any fluff. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though an output schema is not provided in the given definition, the description fully explains the return values (found flag, address, capacity, coordinates, page URL) and error behavior. For a simple one-parameter read-only tool, nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter fully documented: 'Shelter id (UUID) from find_nearby_shelters, search_shelters or a skyddsrumskollen.nu URL.' The description mostly reiterates this source information without adding new semantic value. Baseline 3 is appropriate because the schema does the heavy lifting and the description adds minimal extra meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get details') and a precise resource ('one Swedish civil-defence shelter') identified by its SkyddsrumsKollen id. It also distinguishes itself from sibling search tools by clarifying it is a direct fetch by id, and it enumerates the returned fields. This is unambiguous and differentiates it from find_nearby_shelters and search_shelters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly tells when to use this tool: when you already have a shelter id from a previous tool result or from a skyddsrumskollen.nu URL. It does not explicitly name sibling tools or exclude them, but the context is clear. A named alternative would push this to 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shelter_statsGet national shelter statisticsARead-onlyIdempotentInspect
Get national statistics for Sweden's civil-defence shelters: total number of registered shelters, total capacity (people), and when the dataset was last synced from MSB (the Swedish Civil Contingencies Agency).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| info | No | |
| attribution | No | |
| server_build | No | |
| data_age_days | No | |
| data_is_stale | No | |
| server_version | No | |
| total_capacity | No | |
| total_shelters | No | |
| data_last_synced | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, idempotent, non-destructive, and open-world. The description adds meaningful behavioral context by specifying what data is returned, notably the 'last synced from MSB' timestamp, which signals freshness and dynamic data. No hidden side effects or safety concerns remain undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence that front-loads the operation and scope, then adds three concrete data points. Every clause earns its place; there is no filler or repetition of the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, a complete output schema, and safety profile fully covered by annotations, the description provides all needed context. It even addresses dataset freshness, and the sibling list confirms the tool's niche as national aggregate stats.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter behavior the description must explain. Baseline for zero-parameter tools is 4, and the description appropriately focuses on the output rather than parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('national statistics for Sweden's civil-defence shelters'), and enumerates the exact returned values: total registered shelters, total capacity, and last sync time. This clearly distinguishes it from sibling tools like get_shelter or search_shelters, which target individual shelters or searches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'national statistics' wording makes it clear this is for aggregate overview rather than individual shelter lookup, providing usable context alongside the sibling tool names. It does not explicitly state when not to use it or name an alternative, but the scope is self-evident enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_locationSearch locationARead-onlyIdempotentInspect
Search for a Swedish place (city, town, street address) and return matching coordinates. Uses OpenStreetMap Nominatim limited to Sweden. Returns up to 5 candidates with name, lat and lon. Use the coordinates with find_nearby_shelters.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Place name or address to search for, e.g. 'Huddinge' or 'Drottninggatan 5, Stockholm'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| info | No | |
| results | No | |
| attribution | No | |
| server_build | No | |
| server_version | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds valuable behavioral details beyond annotations: it uses OpenStreetMap Nominatim, is limited to Sweden, and returns up to 5 candidates with name, lat, and lon. This gives the agent a realistic expectation of external dependency and result limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: purpose, external source and scope, result count and fields, and a direct downstream usage instruction. Every sentence earns its place and the key limitations are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool with full schema coverage, annotations, and an output schema, the description covers all necessary operational details: geographic scope, external service, result format, and a usage path. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already provides a clear description and examples for the query parameter. The tool description adds the context that query can be a city, town, or street address, but this mostly restates schema content rather than providing new semantic depth. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for a Swedish place and returns matching coordinates, with a specific verb and resource. It distinguishes itself from sibling tools like search_shelters by focusing on geographic locations, not shelters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it searches Swedish places and explicitly instructs to use the resulting coordinates with find_nearby_shelters. It does not explicitly exclude alternatives, but the downstream usage guidance is sufficient for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_sheltersSearch shelters by addressARead-onlyIdempotentInspect
Search Swedish civil-defence shelters by ADDRESS text — a street name or Swedish property designation (fastighetsbeteckning), e.g. 'Storgatan' or 'Jupiter Mindre 14'. Matches are verified accent-insensitive substring matches on the address field ('Sodra' matches 'Södra', but only addresses actually containing the text are returned). The dataset has NO municipality or city field, so this tool cannot list shelters in a town — for 'shelters in ' use search_location + find_nearby_shelters instead. Returns total_matches (with total_is_exact=false when the count is a lower bound) plus the largest shelters first (limit 1-25, default 10; fractions are floored and the effective limit is echoed).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max number of shelters returned (default 10). Fractions are floored. | |
| query | Yes | Address text: street name or property designation, e.g. 'Storgatan' or 'Norrmalm 2'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| info | No | |
| query | No | |
| shelters | No | |
| attribution | No | |
| server_build | No | |
| total_matches | No | |
| server_version | No | |
| total_is_exact | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive behavior, so the description adds valuable context beyond that: accent-insensitive substring matching, the fact that matches are verified as actual substrings, and the return behavior (total_matches, total_is_exact flag when count is a lower bound, ordering by largest shelters, limit flooring and echoing). No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: the core purpose is front-loaded, followed by matching semantics, a critical exclusion with alternatives, and return behavior. No filler or redundancy; it is as concise as needed for the information conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's modest complexity (2 params, output schema present, annotations covering safety), the description covers everything needed for correct invocation: input type, matching rules, dataset limitations, routing to alternatives, and what the response contains (total_matches, total_is_exact, ordering, limit behavior). The presence of an output schema covers return details, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%—both 'query' and 'limit' are well-described in the schema with examples and constraints. The description reinforces these but does not add significant new meaning beyond the schema; it merely restates the address nature of 'query' and the limit behavior already in the schema. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'Search(es) Swedish civil-defence shelters by ADDRESS text' with explicit examples of street names and property designations. It also explicitly distinguishes from siblings by noting it cannot list shelters in a town, which differentiates it from search_location and find_nearby_shelters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: it is for address-based lookups, and it explicitly says 'for shelters in <place> use search_location + find_nearby_shelters instead.' It also clarifies a dataset limitation (no municipality/city field) that prevents certain queries, leaving no ambiguity about alternatives.
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. Dates show when Glama detected each change.
5 tool updates
- First observed
find_nearby_shelters - First observed
get_shelter - First observed
get_shelter_stats - First observed
search_location - First observed
search_shelters
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Danish address & property lookup: BBR, Matriklen, DAR, CVR. A DAWA/Datafordeler-compatible source.
MCP server for Statistics Sweden (SCB) - 1200+ tables with population, economy, environment data
Compare parking in Sweden: real total cost incl. caps and free windows, rules, payment apps.
Norwegian transport (Entur) and geodata (Kartverket): trips, departures, addresses, elevation.
Related MCP Servers
- AlicenseAqualityDmaintenanceQuery Swedish public data from AI tools. Includes company data, SCB statistics, weather, transport, public agencies, and more through the Apiverket API.2572MIT
- AlicenseNot gradedqualityCmaintenanceProvides access to Sweden's comprehensive municipal and regional statistics database with semantic search capabilities. Enables natural language queries against thousands of Key Performance Indicators covering various aspects of Swedish public sector data.16Apache 2.0
- AlicenseAqualityDmaintenanceProvides access to 5,000+ Key Performance Indicators across 264 operating areas for all Swedish municipalities and regions, enabling statistical analysis, comparisons, and trend tracking of Swedish public sector data.215912MIT
- FlicenseNot gradedqualityDmaintenanceProvides access to geological data from Sveriges Geologiska Undersökning (SGU), including bedrock geology, soil types, and point queries.1-
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Tools are largely distinct: find_nearby_shelters is geospatial, search_shelters is address-text, and get_shelter is ID-based. The only mild ambiguity is search_location vs search_shelters, both taking text input, but the descriptions explicitly cross-reference the correct workflow, making misselection unlikely.
All five tools follow a consistent snake_case verb_noun pattern: find_nearby_shelters, get_shelter, get_shelter_stats, search_location, search_shelters. The verbs (find/get/search) align with the operation semantics, and the naming is uniform and predictable.
Five tools is well-scoped for a read-only geographical lookup service. Each tool covers a distinct need: geospatial search, ID lookup, statistics, geocoding, and address search, with no redundant or extraneous additions.
For a read-only dataset domain, the surface is complete: the full workflow from place name (search_location) to coordinates (find_nearby_shelters) to details (get_shelter) is covered, plus an alternative address-based entry point and national statistics. The descriptions proactively document dataset limitations (e.g., no municipality field) and provide workarounds, so no critical dead ends remain.