mcp-ssb
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
The six tools map to distinct stages in the workflow: discovery (search), schema lookup (table), explicit queries (data), quick latest values (latest), and catalog maintenance/status (status/sync). Even though data and latest both return numbers, latest is clearly framed as a convenience shortcut, so an agent should not confuse them.
Naming Consistency4/5All names are lowercase single words, so the style is uniform and there is no case or convention mixing. The semantic pattern is less regular, however: some are verbs (search, sync), some are nouns (table, data, status), and latest is an adjective, and none follow a verb_noun shape.
Tool Count5/5Six tools is appropriate for a read-only statistics API: discovery, metadata, query, convenience access, and catalog health/maintenance are each represented without redundancy. The count feels well-scoped for the server's purpose.
Completeness4/5The core workflow is complete: search finds a table, table exposes dimensions and codes, data fetches specific selections, and latest covers a common shortcut; status and sync handle catalog freshness. The only minor gap is a lack of any browse/list-all-tables capability, but search is clearly designed to cover discovery.
Average 4.3/5 across 6 of 6 tools scored. Lowest: 3.5/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 1 commit in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
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.
Add a glama.json file to provide metadata about your server.
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
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It does reveal the core output: catalog freshness and table count. However, it does not state whether calling status has side effects, whether it can trigger a refresh (especially relevant given the 'sync' sibling), or what format the timestamp/count will take.
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 concise sentence that directly states the two key pieces of information the tool returns. There is no filler, repetition, or unnecessary context; every word earns its place.
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 simple parameterless status tool, the description is nearly complete: it specifies the two outputs an agent would care about. It could add a brief note that it merely reports status and does not invoke a sync, but the title and sibling context make this mostly inferable.
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 the schema confirms this with an empty properties object. No parameter documentation is needed, so the description does not need to compensate for any schema gaps. Baseline 4 is appropriate 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 what information the tool reports: when the table catalog was last fetched and how many tables it contains. This goes beyond the generic title 'status' and distinguishes it from data/search/sync siblings by indicating it is a status/inspection tool. It lacks an explicit verb, but the reporting function is unambiguous.
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?
No guidance is given about when to choose this tool over its siblings such as 'sync', 'latest', or 'data'. The description only says what information is shown, not when it should be used or when an alternative would be more appropriate.
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, the description must carry behavioral disclosure. It reveals that omitted dimensions are summed when possible and otherwise cause SSB to reject the query, and that `latestPeriods` is a shortcut. However, it does not describe the output format, error handling, or potential side effects, leaving gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: purpose, prerequisite with selection semantics, and a parameter shortcut. Each sentence earns its place and is front-loaded with the main purpose, though it is slightly dense.
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?
The tool has a nested object and 4 parameters; the description explains the complex `selections` and `latestPeriods` well, but omits any mention of the return format or error behavior. With no output schema, this is a notable gap for a data-fetch tool.
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 schema covers 50% of parameters; the description compensates by explaining the `selections` object structure, the wildcard `["*"]`, and the omission behavior, plus the meaning of `latestPeriods`. `maxRows` and `tableId` are self-explanatory from schema constraints, so the added value is solid.
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 fetches numbers from a table with explicit per-dimension selections, which is a specific verb and resource. It also references running `table` first to get valid codes, implying a clear distinction from the metadata sibling.
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?
It explicitly instructs to run `table` first to see valid codes, and explains how to use `selections` and `latestPeriods` with concrete semantics. It does not mention alternatives for data fetching beyond `latestPeriods`, but the prerequisite and parameter usage guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It adds non-obvious domain behavior: dimensions marked `kanUtelates` are summed by SSB if omitted, giving totals instead of a breakdown, and it warns that code sets differ per table. These are useful behavioral hints beyond the schema. It does not explicitly address side effects, but the tool is clearly ametadata lookup, so the gap is minor.
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?
Three compact, purposeful sentences. The purpose is front-loaded, followed by explicit usage guidance and then a key domain caveat. Every sentence contributes value; there is no fluff or repetition of schema content.
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 two-parameter metadata retrieval tool with no output schema and no annotations, the description adequately covers purpose, when to use it, and a subtle behavioral detail about totals. It doesn't explicitly describe the exact response format, but the statement of what it returns ('dimensions... and codes') is sufficiently clear for correct invocation.
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%, with meaningful descriptions for both `tableId` and `maxValues`. The tool description does not add new parameter-level meaning beyond the schema, so the baseline of 3 applies. The mention of 'koder' loosely ties to `tableId` but does not enrich it further.
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 what the tool does: it shows which dimensions a table has and which codes each dimension accepts. The title 'Vis dimensjonene i en tabell' reinforces the action, and the content distinguishes it from the `data` sibling by framing it as a pre-query inspection step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs 'Bruk dette før `data`', giving a clear when-to-use rule supported by the rationale that each table has its own code set, without which the query becomes guesswork. This points directly to the relevant sibling and explains why the tool is needed first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the full-catalog download, index rebuild, approximate duration, and the weekly automatic trigger. It does not mention potential side effects such as index availability during rebuild, but it is far more transparent than a minimal one-word description.
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 two concise sentences, with the core action front-loaded and the additional timing/automation context placed after. No word is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter operation with no output schema, this description is complete enough: it says what happens, how long it takes, and that it is normally handled automatically. An agent can decide to invoke it based on this information.
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, so the description does not need to explain parameter meaning. Per the baseline for an empty parameter set, a score of 4 is appropriate.
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 states a specific action ('Laster ned hele SSBs tabellkatalog og bygger indeksen om') with a clear resource and scope. It is distinct from sibling tools like search, table, data, latest, and status, leaving no ambiguity about what sync does.
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?
It implicitly communicates when manual use is needed by noting that a systemd timer runs the same task weekly. This gives useful context about the tool's role, though it does not explicitly name alternatives or say 'use this only when you need immediate freshness'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It discloses that omitted dimensions are summed, required dimensions get their first value, and the returned `fastsatteDimensjoner` field reveals what was measured. This is substantive, though it does not address errors, limits, or response structure.
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?
Four concise sentences, front-loaded with the shortcut purpose, then behavior, then routing. No redundant or filler wording; every sentence earns its place.
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?
The description is enough to select and invoke the tool: it identifies the table context, parameters, behavior, and the response signal. It lacks a concrete example or output shape, but for a simple shortcut with no output schema this is a minor gap.
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?
With schema coverage at 33%, the description compensates by explaining `periods` as the last N periods and `contents` as the first statistical variable unless another code is given. `tableId` remains implicit but is inferable from the title and the required field's purpose.
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 states a clear purpose: a shortcut for the current number from a table, selecting the first statistical variable and the latest N periods. It explicitly contrasts with the table and data siblings, making the tool's scope identifiable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit usage context: use this when you want the current figure, and if you need anything else, use `table` and `data`. This directly names alternatives and conditions, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It explains Norwegian colloquial-term expansion, the escalation through exact/prefix/stem matching, and the meaning of the `strategi` field — including a warning that 'delvis' results should be read skeptically. This is rich, non-obvious behavior that an agent would otherwise not know.
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 dense but every sentence earns its place: scope, language behavior, match-strategy caveat, and routing to sibling tools. It is front-loaded with the core purpose and uses paragraph breaks to separate distinct ideas without padding.
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?
Given there is no output schema and no annotations, the description does a good job of setting expectations: it mentions the `strategi` result field, explains how to interpret match quality, and tells the agent how to retrieve data from the found table. It does not describe pagination or potential error cases, which are minor omissions for a search tool where the core usage is already clear.
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?
Schema description coverage is only 33%, so the description must compensate. It does this for the key parameter `query` by giving two concrete examples ('konsumprisindeks', 'sykefravær') and explaining how the search interprets natural-language input. `limit` and `offset` are not described beyond their schema constraints, but their semantics are conventional and structurally annotated with defaults, min, and max.
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 opens with a specific verb and resource: 'Søk i SSBs 3 898 tabeller' and names the exact searchable fields (title, description, dimension names). It also distinguishes itself from siblings by explicitly directing the agent to use `latest` or `data` with a table ID to get actual numbers.
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 clearly tells the agent what to do after searching: 'Bruk `latest` eller `data` med tabell-IDen for å få selve tallene.' This gives a concrete usage boundary. It does not explicitly exclude all sibling tools like `table`, `status`, or `sync`, so it falls just short of a 5.
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/synjan/mcp-ssb'
If you have feedback or need assistance with the MCP directory API, please join our Discord server