mcp-server-vanmoof
Provides tools for accessing VanMoof bike data including customer information, bike details, rider preferences, weekly ride statistics, and city/world ride summaries through the VanMoof API
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-server-vanmoofWhat's the color of my VanMoof bike?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π²VanMoof MCP Server
The VanMoof MCP Server implements the MCP specification to create a seamless connection between AI agents and key VanMoof services like VanMoof customer data, including bike details, VanMoof rider cities, rider preferences and weekly rides.
π― Overview
β¨ What can you do with the VanMoof MCP Server?
The VanMoof MCP Server supercharges your agents with VanMoof rider context. Here are some cool prompts you can try:
π Explore your customer data
"Give me my VanMoof bike details, please."
"What is the name of my VanMoof's bike?"
"What is the frame number of my VanMoof's bike?"
"What is the color of my VanMoof's bike?"
ποΈ Cities Rides
"In which cities in the world are VanMoof rides tracked?"
"Create a table of the cities in the Netherlands where VanMoof rides are tracked with longitude and latitude columns"
"Retrieves a list of cities in the Netherlands where VanMoof rides are tracked and formats them into a table with columns for longitude and latitude."
βοΈ Your rider preferences
"Get my VanMoof's rider preferences"
"Which city is configured in my VanMoof's rider preference?"
π² Explore your VanMoof's rides
"Give me my weekly ride stats for 2025-03-25 on my VanMoof"
"What was my top speed on my VanMoof's bike?"
"What was my longest ride on my VanMoof's bike?"
"What are the city statistics of today's week?"
"What are the world's bike statistics of today's week?"
"Compare the world statistics with the city statistics. What can you conclude?"
"Compare my weekly VanMoof ride statistics with the city and world bike statistics. Store the results in markdown table for the comparison."
Related MCP server: commercetools MCP Essentials
π οΈ Currently Supported Tools
get_customer_data: Retrieves customer data from the VanMoof autenticated user
get_vanmoof_cities: Retrieves a list of city data from the VanMoof API.
get_rider_preferences: Retrieves rider preferences from the VanMoof autenticated user.
get_rides_summary: Retrieves total rides summary from the VanMoof autenticated user.
get_rides_for_week(date_in_week: str = ""): Retrieves rides for a specific week from the VanMoof autenticated user.
get_city_rides_thisweek: Retrieves total city rides summary from VanMoof riders in this week.
get_world_rides_thisweek: Retrieves total world rides summary from VanMoof riders in this week.
π Getting Started
Install Python
The VanMoof MCP Server requires Python. If you have not it installed, follow the instructions here.
Install uv
Also install uv. This an extremely fast Python package and project manager, written in Rust. Follow the instruction here to install uv.
Clone MCP-SERVER-VANMOOF Github Repository.
run below command in your terminal:
git clone https://github.com/stefanstranger/mcp-server-vanmoofTest and debug VanMoof MCP Server
The MCP inspector is a developer tool for testing and debugging MCP servers.
Before local debugging and testing configure the .env file with your VanMoof credentials.
Rename the .env-example file to .env and configure your VanMoof credentials.
Run the following to test and debug the VanMoof MCP Server:
mcp dev c:\github\mcp-server-vanmoof\server.pyConfigure the following arguments:
run --with mcp[cli] --with requests --with tzlocal mcp run c://github//mcp-server-vanmoof//server.py
And the Environment Arguments for VANMOOF_USERNAME and VANMOOF_PASSWORD in the Webbrowser after you have started the MCP inspector.

Launching MCP Inspector
There are two ways to launch MCP Inspector:
Launch with MCP CLI
Launch with npx @modelcontextprotocol/inspector
If you install the SDK with the cli option like uv add "mcp[cli]", you can use the MCP CLI. To start MCP Inspector, run mcp dev.
If you want to use the npx to launch the MCP Inspector run, after you have started your Python environment in your host.:
npx @modelcontextprotocol/inspector uv run --with mcp[cli] --with requests --with tzlocal mcp run c://github//mcp-server-vanmoof//server.py -e VANMOOF_USERNAME=john.doe@outlook.com -e VANMOOF_PASSWORD=[very secret password]π§ Setup
Usage with Claude Desktop
Add the following to your claude_desktop_config.json file:
{
"mcpServers": {
"mcp-server-vanmoof": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli]",
"--with",
"requests",
"--with",
"tzlocal",
"mcp",
"run",
"C:\\Github\\mcp-server-vanmoof\\server.py"
],
"env": {
"VANMOOF_USERNAME": "john.doe@outlook.com",
"VANMOOF_PASSWORD": "[VanMoof user account password]"
}
}
}
}π‘οΈ Security Note
Your VanMoof credentials are stored as plain text in the MCP Client configurations. Don't share these with others!!
References
Available Tools
7 toolsget_city_rides_thisweekB
Retrieves total city rides summary from VanMoof riders.
Returns:
The a summary of the total rides of the VanMoof rider city if authentication is successful, otherwise None.
The following information is returned:
- City name
- Average distance in km
- Total Rides
- Average duration in minutes
- Location in latitude and longitude
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses authentication requirements and the return format (including specific data fields), which is valuable. However, it doesn't mention rate limits, error conditions beyond authentication failure, or whether this is a read-only operation (though 'retrieves' implies it).
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 reasonably structured with clear sections but has some redundancy ('The a summary') and could be more front-loaded. The authentication information is buried after the return format rather than being prioritized. Most sentences earn their place, but the flow could be improved.
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 tool with no parameters, no annotations, and no output schema, the description does a decent job explaining what it returns and authentication requirements. However, it doesn't clarify the scope ('thisweek' in the name vs 'total' in description) or how it differs from sibling tools, leaving some contextual gaps.
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 0 parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, focusing instead on return values and authentication requirements.
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 retrieves a total city rides summary from VanMoof riders, which is a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'get_rides_summary' or 'get_world_rides_thisweek' - the 'city' scope is implied but not contrasted with alternatives.
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 mentions authentication requirements but provides no guidance on when to use this tool versus similar siblings like 'get_rides_summary' or 'get_world_rides_thisweek'. There's no explicit when/when-not guidance or alternative tool recommendations for different use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_customer_dataB
Retrieves customer data from the vanMoof API.
Returns:
The rider vanMoof's customer data if authentication is successful, otherwise None.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 adds some context by mentioning authentication requirements and the return value (customer data or None), but lacks details on rate limits, error handling, data format, or other operational traits. This is a minimal but adequate disclosure for a simple retrieval 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?
The description is appropriately concise with two sentences: one stating the purpose and one detailing the return behavior. It's front-loaded with the core function and avoids redundancy, though the formatting includes extra whitespace that slightly detracts from structure.
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 simplicity (0 parameters, no output schema, no annotations), the description is complete enough for basic use. It covers the purpose and return conditions, but could benefit from more context on data scope or sibling differentiation to fully guide the agent in a server with multiple retrieval tools.
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 0 parameters, and the schema description coverage is 100%, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, earning a high baseline score for not adding unnecessary information.
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's purpose with a specific verb ('Retrieves') and resource ('customer data from the vanMoof API'), making it easy to understand what it does. However, it doesn't explicitly differentiate this tool from its siblings (like get_rider_preferences or get_rides_summary), which would require a more specific scope or comparison.
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 no guidance on when to use this tool versus alternatives. It mentions authentication success/failure, but doesn't specify contexts, prerequisites, or exclusions compared to sibling tools, leaving the agent to infer usage based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rider_preferencesB
Retrieves rider preferences from the vanMoof API.
Returns:
The rider preferences if authentication is successful, otherwise None.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that authentication is required and describes the return behavior (preferences if successful, None otherwise). However, it lacks details on error handling, rate limits, or side effects, which are important for a tool interacting with an external API.
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 brief and front-loaded, with the main purpose stated first and additional behavioral context in a second sentence. There's no wasted text, but the structure could be slightly improved by integrating the return information more seamlessly rather than as a separate 'Returns:' section.
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 no annotations, no output schema, and 0 parameters, the description covers the basic purpose and authentication behavior adequately. However, for an API tool, it lacks details on response format, error types, or integration context, which would help an agent use it more effectively in complex scenarios.
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 0 parameters with 100% schema description coverage, so the schema fully documents the inputs. The description doesn't need to add parameter details, and it correctly avoids redundancy. A baseline of 4 is appropriate as it focuses on the tool's purpose without unnecessary parameter explanations.
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 action ('Retrieves') and resource ('rider preferences'), and specifies the source ('from the vanMoof API'). It distinguishes from sibling tools that focus on rides, cities, or customer data. However, it doesn't explicitly contrast with specific alternatives, keeping it at 4 rather than 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?
The description provides no guidance on when to use this tool versus alternatives like 'get_customer_data' or other ride-related tools. It mentions authentication but doesn't specify prerequisites or contextual triggers for selecting this tool over siblings, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rides_for_weekA
Retrieves rides for a specific week from the vanMoof API.
Args:
date_in_week: Any date within the week in format "YYYY-MM-DD".
If None, uses the current date.
Returns:
The rides for the specified week if authentication is successful, otherwise None.
| Name | Required | Description | Default |
|---|---|---|---|
| date_in_week | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses authentication requirements and return behavior (returns rides if successful, otherwise None), which is valuable. However, it lacks details on rate limits, error handling, pagination, or data format, leaving behavioral gaps for a read operation.
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 appropriately sized with three sentences: purpose, parameter details, and return behavior. It's front-loaded with the core purpose and uses clear sections (Args, Returns). There's minimal waste, though the formatting with extra whitespace slightly reduces efficiency.
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 no annotations, no output schema, and a simple parameter (1 param with 0% schema coverage), the description is moderately complete. It covers purpose, parameter semantics, and authentication/return behavior, but lacks details on output format (e.g., structure of rides data), error cases beyond authentication, or performance constraints, which could be important for an API tool.
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 schema description coverage is 0%, so the description must compensate. It adds significant meaning: it explains the parameter 'date_in_week' as 'Any date within the week in format "YYYY-MM-DD"' with a default behavior ('If None, uses the current date'), which clarifies usage beyond the bare schema. This adequately covers the single parameter.
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 verb 'Retrieves' and resource 'rides for a specific week from the vanMoof API', making the purpose explicit. It distinguishes from siblings like 'get_rides_summary' by focusing on weekly data rather than summaries, but doesn't explicitly contrast with 'get_city_rides_thisweek' or 'get_world_rides_thisweek' which might have overlapping scope.
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 implies usage for retrieving weekly rides and mentions authentication requirements, but provides no explicit guidance on when to use this tool versus alternatives like 'get_city_rides_thisweek' or 'get_world_rides_thisweek'. The context is clear but lacks sibling differentiation or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rides_summaryA
Retrieves total rides summary for the VanMoof rider being authenticated.
Returns:
The a summary of the total rides of the VanMoof rider if authentication is successful, otherwise None.
The following information is returned:
- Average distance in km
- Total Rides
- Average duration in minutes
- Total distance in km
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 authentication dependency ('if authentication is successful, otherwise None'), which is useful context. However, it lacks details on rate limits, error handling, or data freshness, leaving gaps in behavioral understanding for a tool that likely involves user-specific data retrieval.
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 well-structured and concise, with a clear purpose statement followed by return details. It uses two paragraphs efficiently, though the 'Returns:' section could be slightly more streamlined. Overall, it avoids fluff and stays focused on essential information.
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 no annotations and no output schema, the description provides basic purpose and output details but lacks comprehensive context. It explains the return format (summary with specific metrics) and authentication dependency, which is helpful. However, for a tool that likely involves user data, more details on permissions, data sources, or limitations would improve completeness.
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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, focusing instead on the tool's purpose and output. This meets the baseline expectation for tools with no parameters, as it avoids unnecessary repetition.
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 'retrieves total rides summary for the VanMoof rider being authenticated,' specifying the verb (retrieves), resource (rides summary), and scope (for the authenticated rider). It distinguishes from siblings like 'get_rides_for_week' by focusing on summary totals rather than detailed or filtered ride data, though it could be more explicit about this differentiation.
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 implies usage context through 'for the VanMoof rider being authenticated,' suggesting it's for authenticated users, but it does not explicitly state when to use this tool versus alternatives like 'get_rides_for_week' or 'get_city_rides_thisweek.' No guidance on prerequisites, exclusions, or specific scenarios is provided, leaving usage somewhat ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vanmoof_citiesB
Retrieves a list of city data from the vanMoof API.
Returns:
The rider vanMoof's city data if authentication is successful, otherwise None.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 that authentication is required for successful data retrieval and that the return may be 'None' if authentication fails, adding useful behavioral context. However, it lacks details on rate limits, error handling, or data format, leaving gaps in transparency.
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 concise with two sentences that directly state the purpose and return behavior, with no wasted words. It is appropriately sized for a simple tool, though the structure could be slightly improved by front-loading key details more explicitly.
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 has no parameters, no annotations, and no output schema, the description provides basic purpose and authentication context, which is minimal but viable. However, it lacks details on output format, error cases beyond authentication, or how it fits with siblings, making it incomplete for full agent understanding.
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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description does not add parameter information, which is acceptable here, but it could have mentioned any implicit parameters or context. Baseline is 4 for zero parameters, as it adequately handles the lack of inputs.
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 verb ('Retrieves') and resource ('list of city data from the vanMoof API'), making the purpose specific and understandable. However, it does not explicitly differentiate this tool from sibling tools like 'get_city_rides_thisweek' or 'get_world_rides_thisweek', which might also involve city or ride data, so it misses full sibling differentiation.
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 no guidance on when to use this tool versus alternatives. It mentions authentication success affects the return value, but does not specify contexts, prerequisites, or comparisons to sibling tools like 'get_city_rides_thisweek' for ride-specific data or 'get_customer_data' for user information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_world_rides_thisweekB
Retrieves total world rides summary from VanMoof riders.
Returns:
The a summary of the total rides of the VanMoof rider city if authentication is successful, otherwise None.
The following information is returned:
- Average distance in km
- Total Rides
- Average duration in minutes
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 authentication is required for successful retrieval and specifies the return format (summary with average distance, total rides, average duration), which adds useful context. However, it doesn't cover other behavioral aspects like rate limits, error handling, or data freshness, leaving gaps in transparency.
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 appropriately sized and front-loaded, starting with the core purpose. The 'Returns' section is structured but includes a minor grammatical error ('The a summary'), which slightly affects clarity. Overall, it's efficient with minimal waste, though it could be more polished.
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 has no parameters, no annotations, and no output schema, the description provides basic information on purpose, authentication requirement, and return format. However, it lacks details on error cases (e.g., what 'otherwise None' entails), data scope limitations, or how it differs from sibling tools, making it adequate but with clear gaps for a retrieval tool.
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 input schema has 0 parameters with 100% coverage, so the schema fully documents the lack of inputs. The description adds no parameter information, which is appropriate here. Since there are no parameters, the baseline score is 4, as the description doesn't need to compensate for any gaps.
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 the tool 'Retrieves total world rides summary from VanMoof riders,' which provides a clear verb ('retrieves') and resource ('world rides summary'), but it doesn't distinguish this from sibling tools like 'get_rides_summary' or 'get_rides_for_week,' making the purpose somewhat vague in context. It specifies 'world' scope, which helps differentiate from city-level tools, but lacks explicit comparison to similar global tools.
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 no guidance on when to use this tool versus alternatives like 'get_rides_summary' or 'get_rides_for_week,' nor does it mention prerequisites or exclusions. It implies usage for authentication-based retrieval but doesn't clarify context or alternatives, leaving the agent with minimal direction.
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.
7 tool updates
v1.0.0- Changed
get_city_rides_thisweek1 field changed- added
Input schema / titleAdded value: +"get_city_rides_thisweekArguments"
- Changed
get_customer_data1 field changed- added
Input schema / titleAdded value: +"get_customer_dataArguments"
- Changed
get_rider_preferences1 field changed- added
Input schema / titleAdded value: +"get_rider_preferencesArguments"
- Changed
get_rides_for_week1 field changed- added
Input schema / titleAdded value: +"get_rides_for_weekArguments"
- Changed
get_rides_summary1 field changed- added
Input schema / titleAdded value: +"get_rides_summaryArguments"
- Changed
get_vanmoof_cities1 field changed- added
Input schema / titleAdded value: +"get_vanmoof_citiesArguments"
- Changed
get_world_rides_thisweek1 field changed- added
Input schema / titleAdded value: +"get_world_rides_thisweekArguments"
7 tool updates
- First observed
get_city_rides_thisweek - First observed
get_customer_data - First observed
get_rider_preferences - First observed
get_rides_for_week - First observed
get_rides_summary - First observed
get_vanmoof_cities - First observed
get_world_rides_thisweek
TDQS
Multiple tools have overlapping purposes that could cause confusion. get_city_rides_thisweek, get_rides_summary, and get_world_rides_thisweek all return similar ride summary data with only subtle differences in scope (city vs. world vs. general). get_rides_for_week also overlaps with these but adds a date parameter, creating ambiguity about when to use which summary tool.
All tools follow a consistent verb_noun pattern with 'get_' prefix and snake_case naming. The naming is perfectly predictable across all seven tools, making it easy to understand the pattern and anticipate tool names.
Seven tools is a reasonable number for a bike sharing/ride tracking API. While the count is appropriate, the tools feel slightly redundant rather than each earning its distinct place due to the overlapping summary tools.
The server provides good read operations for customer data, preferences, cities, and rides, but lacks any write/update capabilities. For a rider data API, there are notable gaps - no tools to update preferences, log new rides, or modify customer information, which limits agent workflows to read-only operations.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Related MCP Servers
AlicenseAqualityFmaintenanceMCP Server that connects AI agents to Chargebee Platform.24716MIT- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI agents to interact with the commercetools Composable Commerce platform. It provides tools for managing products, categories, orders, carts, and customer data through secure read and write operations.13MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that exposes Smartcar's vehicle API as tools, enabling AI agents to query vehicle telemetry and send commands using natural language.-
- AlicenseBqualityDmaintenanceMCP server for Plane integration, enabling AI agents to interact with Plane APIs and services for project management tasks.100MIT
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/stefanstranger/mcp-server-vanmoof'
If you have feedback or need assistance with the MCP directory API, please join our Discord server