Robskan
Server Details
Read-only product MCP for robskan.nl — public profile and Spotify listening APIs.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool targets a clearly different operation: year progress, listening rollups, project lookup, now-playing snapshot, and HTTP route verification. The only mild overlap is between create_listening_summary and pull_now_playing_snapshot, both touching music data, but one aggregates and the other fetches live, so they remain distinguishable.
All five tools follow a consistent verb_noun snake_case pattern (compute_..., create_..., lookup_..., pull_..., verify_...). No mixed conventions or camelCase deviations.
Five tools sit comfortably in the well-scoped 3-15 range. Each tool earns its place as a distinct capability with no redundant entries.
The set is a heterogeneous grab-bag of one-off utilities (calendar metric, music rollup, project lookup, route verification) with no coherent domain or CRUD lifecycle to cover. There are obvious dead ends—no way to update, delete, or list beyond the single operations offered—so an agent could hit gaps quickly.
Available Tools
5 toolscompute_year_progressBInspect
Compute calendar year progress for a timezone (live product metric).
| Name | Required | Description | Default |
|---|---|---|---|
| timezone | Yes | IANA timezone, e.g. Europe/Amsterdam or UTC. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations give destructiveHint=false and openWorldHint=false, so the safety profile is partly covered, and the parenthetical '(live product metric)' adds that the value is computed live rather than cached. However, readOnlyHint=false is left unexplained for what reads as a pure computation, and the description does not clarify this tension or the return shape.
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 front-loaded sentence with no waste. The trailing parenthetical is slightly vague but short enough to earn its place as a liveness hint.
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 output schema, the description should say what is returned (e.g., a fraction or percentage of the year elapsed), but it never does. An agent can call it with the required timezone but cannot predict the response.
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?
There is only one parameter and schema coverage is 100%, with an IANA timezone example already documented in the schema. The description adds only that the timezone scopes the computation, which is the baseline expectation.
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?
States a specific verb+resource ('Compute calendar year progress') scoped to a timezone, which no sibling tool covers. Clear to an agent, though the exact output measure (percentage elapsed versus days remaining) is not specified.
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?
No guidance on when to call this versus alternatives, nor any prerequisites or exclusions. The sibling list contains nothing similar, but the description never states the use case or trigger condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_listening_summaryBInspect
Create a listening summary rollup for day or week from recent plays.
| Name | Required | Description | Default |
|---|---|---|---|
| range | Yes | Aggregation window: day (24h plays) or week (7d plays). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the mutation/closed-world profile is covered externally. The description adds only that the input is 'recent plays', and says nothing about whether an existing rollup for the same range is overwritten, whether the call is idempotent, or what permissions are needed - relevant for a write tool.
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 front-loaded sentence with no filler; the scope constraint appears before the qualifier. It is terse to the point of omitting useful behavior detail, but there is no wasted text.
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 low-complexity single-parameter tool with no output schema, the essentials to select and invoke it are present. What is missing is what the call produces and how it interacts with pre-existing summaries - information the annotations and schema do not supply.
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% and the single 'range' parameter has an enum with documented meanings (day = 24h plays, week = 7d plays), so the description restating 'day or week' adds almost nothing beyond the schema. Baseline 3 applies.
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?
States a specific verb ('Create') and a specific resource ('listening summary rollup') plus scope ('day or week from recent plays'), so the operation is unambiguous. It does not, however, differentiate itself from any named sibling, so it falls short of a 5.
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?
Usage is only implied by the phrase 'from recent plays' and the day/week scope; there is no explicit when-to-use, when-not-to-use, or named alternative among the siblings (compute_year_progress, pull_now_playing_snapshot, etc.). Adequate but with a clear guidance gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_project_statusARead-onlyInspect
Look up Meridian or Dock product availability and links.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Product identifier: meridian or dock. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that the result includes availability plus links, but says nothing about freshness of the data, whether lookups can fail for unknown projects, or the shape of the response.
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 short sentence with no filler, and the resource being looked up is front-loaded. Nothing in it is wasted or redundant.
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 one-parameter read tool with no output schema, the description is nearly sufficient, but since there is no output schema it should say more about what "availability" and "links" actually are so an agent can interpret the result.
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% with a single enum-constrained parameter, so the schema already fully documents the accepted values. The description restates the valid values (Meridian, Dock) but adds no semantic meaning such as case sensitivity or behavior for missing products, so the baseline 3 applies.
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?
States a specific verb ("look up") and resource ("Meridian or Dock product availability and links"), so an agent can tell what it retrieves. The sibling tools are entirely unrelated, so no differentiation is needed, but the description leaves "availability and links" somewhat abstract relative to the tool name's "status".
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?
Usage is only implied: the reader infers you call this when you need status for one of the two named products. There is no explicit when-to-use, when-not-to-use, or prerequisite statement, though the absence of any overlapping sibling lowers the cost of that gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pull_now_playing_snapshotBRead-onlyInspect
Load the live Spotify now-playing snapshot from the music product API.
| Name | Required | Description | Default |
|---|---|---|---|
| format | Yes | full returns track item; minimal returns playing flag only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds only that the data is 'live' (real-time freshness) and a point-in-time 'snapshot', but says nothing about auth needs, polling/rate behavior, or what happens when nothing is playing.
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 front-loaded sentence with no redundancy. The trailing 'from the music product API' is slightly vague filler that could be dropped without loss.
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 simple single-parameter read, annotations and the schema cover safety and input semantics. However, with no output schema, the description should say what a 'snapshot' contains and how the empty/nothing-playing case behaves, and it does not.
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% and the single 'format' enum is fully documented in the schema ('full returns track item; minimal returns playing flag only'). The description adds no meaning beyond that, so the baseline 3 applies.
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?
A specific verb ('Load') and resource ('live Spotify now-playing snapshot') tell the agent exactly what it retrieves. It does not distinguish itself from the domain-adjacent sibling create_listening_summary, leaving a small ambiguity about which music tool to reach for.
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 never says when to use this tool versus create_listening_summary or the other siblings, and gives no preconditions (e.g., user must have an active Spotify session). Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_http_routeBRead-onlyInspect
Verify an HTTP method and path against the Robskan product API allowlist.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | API path such as /api/v1/health or /api/v1/batch. | |
| method | Yes | HTTP method to validate (GET or POST). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds meaningful context by naming the allowlist as the authority, implying a closed, finite validation set. It does not disclose what a failed verification produces (exception vs. boolean vs. reason string), which is the main behavioral unknown.
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 front-loaded sentence with no filler; every clause (method, path, allowlist) earns its place. It is slightly under-specified rather than over-long, so conciseness itself is not the problem.
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 output schema, the description is the only place to learn what verification returns, and it is silent on that. For a two-parameter boolean-style check this is a real gap, though the narrow scope keeps it from being severe.
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 path example format and the GET/POST enum already documented in the schema. The description's method-and-path phrasing merely restates those parameters and adds no format, encoding, or edge-case detail beyond structured fields.
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 (Verify) and resource (HTTP method and path) plus the authoritative source (the Robskan product API allowlist), which is enough to understand the operation. It does not differentiate from siblings, but the sibling list (year progress, listening summary, project status, now playing) shares no surface area, so that omission costs little.
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?
Usage is only implied: an agent can infer this is a pre-flight check to run before calling an API route. There is no explicit statement of when to use it, when not to, or what to do with the result, and no named alternative to compare against.
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.
4 tool updates
- Removed
fetch_now_playing_track - Added
pull_now_playing_snapshot - Removed
validate_api_request - Added
verify_http_route
8 tool updates
- Added
compute_year_progress - Added
create_listening_summary - Added
fetch_now_playing_track - Removed
get_listening_history_summary - Removed
get_now_playing - Removed
get_profile - Added
lookup_project_status - Added
validate_api_request
3 tool updates
- Changed
get_listening_history_summary2 fields changed- added
Input schema / properties / limitAdded value: +{ + "description": "Max recent tracks to include (default 5).", + "maximum": 10, + "minimum": 1, + "type": "integer" +} - added
Input schema / requiredAdded value: +[]
- Changed
get_now_playing2 fields changed- added
Input schema / properties / forceRefreshAdded value: +{ + "description": "When true, bypass cache where supported.", + "type": "boolean" +} - added
Input schema / requiredAdded value: +[]
- Changed
get_profile2 fields changed- added
Input schema / properties / forceRefreshAdded value: +{ + "description": "When true, bypass cache where supported.", + "type": "boolean" +} - added
Input schema / requiredAdded value: +[]
3 tool updates
- First observed
get_listening_history_summary - First observed
get_now_playing - First observed
get_profile
Related MCP Connectors
Spotify MCP — Web API via client_credentials OAuth
Public read-only MCP for products, frameworks, guides, methodology, and blog metadata.
Mastodon MCP — public Mastodon data via mastodon.social (no auth required)
Read-only MCP server for Mark Siazon's professional profile: projects, FAQ, proof, availability.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA local, read-only MCP server that exposes verified profile, posts, corpus, and other identity data from robertdelanghe.dev's signed static API.35 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to sign in with OAuth 2.1 and read a user's WHOOP recovery, sleep, strain, and workout data through read-only tools, while also receiving and forwarding signed WHOOP webhooks to your endpoints.16 npmMIT
- FlicenseNot gradedqualityBmaintenanceRead-only MCP access to a personal Telegram account. Allows querying chats, reading and searching messages via Streamable HTTP.-
- AlicenseNot gradedqualityBmaintenanceEnables read-only access to Product Hunt data, including launches, post details, comments, topic search, and user profiles, through MCP tools over Streamable HTTP.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.