Skip to main content
Glama
nickcosmo

Pedalpalooza MCP Server

by nickcosmo
README.md
# Pedalpalooza MCP Server

An MCP (Model Context Protocol) server that will fetch events from the [Pedalpalooza Calendar](https://www.shift2bikes.org/bike-summer-calendar/) and make them available to your LLM.

![demo.gif](demo.gif)

## What you can ask

- "What Pedalpalooza rides are happening today?"
- "What rides have a slow pace happening this week?"
- "Show me challenging, long Pedalpalooza rides"
- "What family-friendly rides are available this weekend?"

## Setup

### Prerequisites
- Node.js
- An MCP-compatible client (like Claude Desktop)

### Usage

This server can be run either locally on Standard Input/Output (stdio) or through the Streamable HTTP Protocol. After following the setup instructions, restart your MCP client.

#### STDIO

1. Clone this repository:
```bash
git clone https://github.com/nickcosmo/pedalpalooza-mcp-server
cd pedalpalooza-mcp-server
echo "TRANSPORT=STDIO" > .env
```

2. Install dependencies: `npm install`

3. Build the project: `npm run build`

4. Add to your MCP client configuration:
For Claude Desktop, add this to your claude_desktop_config.json:
```json
{
  "mcpServers": {
    "pedalpalooza": {
      "command": "node",
      "args": ["/absolute/path/to/your/index.js"]
    }
  }
}
```

#### Streamable HTTP

1. Add to your MCP client configuration:
For Claude Desktop, add this to your claude_desktop_config.json:
```json
{
  "mcpServers": {
    "pedalpalooza": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://pedalpalooza-mcp-image-464302291453.us-west1.run.app/mcp"
      ]
    },
  }
}
```

**NOTE**: If you are using `nvm` there is a possibility that you will run into node versioning issues which can lead to undesired behavior. More info can be found in [this article](https://medium.com/@jonigl/mcp-filesystem-server-disconnected-750e00917eec).

## Available Tools

### `pedalpalooza-schedule`

Fetch bike ride events for a specified date range from the Pedalpalooza calendar.

**Parameters:**

- `startDate` (string): Start date in format YYYY-MM-DD
- `endDate` (string): End date in format YYYY-MM-DD

**Example:** Fetch ride info from July 14, 2025 to July 15, 2025

```json
{
  "startDate": "2025-07-14",
  "endDate": "2025-07-15"
}
```