Skip to main content
Glama

seek_position

Jump to a specific timestamp in the currently playing Spotify track by specifying the position in milliseconds.

Instructions

Seek to position in current track
Args:
    position_ms: Position in milliseconds

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
position_msYes

Implementation Reference

  • main.py:56-63 (handler)
    The main handler function for the 'seek_position' tool, decorated with @mcp.tool() which registers it and defines the input schema from the signature. It delegates to SpotifyClient.seek_track(position_ms).
    @mcp.tool()
    async def seek_position(position_ms: int) -> str:
        """
        Seek to position in current track
        Args:
            position_ms: Position in milliseconds
        """
        return await client.seek_track(position_ms)
  • Supporting helper method in SpotifyClient class that performs the actual Spotify API seek operation using the spotipy client (self.sp.seek_track). This is invoked by the tool handler.
    async def seek_track(self, position_ms: int) -> str:
        """
        Seek to position in currently playing track.
        - position_ms: Position in milliseconds
        """
        try:
            self.sp.seek_track(position_ms=position_ms)
            return f"Seeked to position {position_ms}ms"
        except Exception as e:
            return f"Error seeking: {str(e)}"
Behavior2/5

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

With no annotations, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits such as whether this requires playback to be active, if it's destructive to the current playback state, potential rate limits, or what happens on success/failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the main purpose. The two-sentence structure is efficient, though the 'Args:' section could be integrated more smoothly, and it avoids unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a playback control tool with no annotations or output schema, the description is incomplete. It lacks details on behavioral context, error conditions, and interaction with sibling tools, leaving significant gaps for an agent to use it correctly.

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 description adds meaning beyond the schema by explaining that 'position_ms' is the 'Position in milliseconds', which clarifies the unit and purpose. With 0% schema description coverage and only 1 parameter, this adequately compensates, though it could specify valid ranges or constraints.

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

Purpose3/5

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

The description states the action ('Seek to position') and resource ('in current track'), which clarifies the basic purpose. However, it doesn't differentiate from sibling tools like 'start_playback' or 'skip_tracks' that also affect playback position, leaving the scope somewhat vague.

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?

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., requires active playback), exclusions, or how it differs from similar tools like 'skip_tracks' or 'start_playback' for positioning.

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

Install Server

Other Tools

Latest Blog Posts

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/ashwanth1109/mcp-spotify'

If you have feedback or need assistance with the MCP directory API, please join our Discord server