Skip to main content
Glama
Sidarau

nexwave-mcp-remote

by Sidarau

nexwave-mcp-remote — Sketchy Rides as an MCP plugin

Rent cars with your AI. Manage the fleet with your AI. Two streamable-HTTP MCP servers for the Sketchy Rides LA rental pilot (Nexwave platform), one Fly.io machine, scale-to-zero.

Surface

URL

Auth

Who

Renter / public

https://nexwave-mcp.fly.dev/mcp

none

anyone's agent

Operator

https://nexwave-mcp.fly.dev/ops/mcp

OAuth 2.1 login gate

fleet operator

Add it to your harness

Claude Code / Desktop

claude mcp add --transport http sketchyrides https://nexwave-mcp.fly.dev/mcp

Codex (~/.codex/config.toml)

[mcp_servers.sketchyrides]
url = "https://nexwave-mcp.fly.dev/mcp"

ChatGPT — Settings → Connectors → Developer mode → + → paste https://nexwave-mcp.fly.dev/mcp. Deep research works out of the box (search + fetch follow the compat schema).

Cursor — Settings → MCP → new server → the same URL.

Operators use /ops/mcp instead — your client will open a sign-in page; use your operator name + key.

Related MCP server: Relay

Tools

Public (read-only): fleet_list · availability_check · quote_trip (live rates, dates, exact checkout math) · search / fetch (every public page — fleet, terms, destination guides, blog).

Ops (ops:read): ops_overview, ops_bookings · (ops:write): ops_set_vehicle — narrow edits: daily rate, delist, description.

Ops tools call the platform's bearer-gated /api/v1/ops/* bridge (PR #4) and degrade cleanly until it deploys.

Develop

uv venv .venv --python 3.12 && uv pip install -p .venv/bin/python .
export NEXWAVE_API_KEY=…   # v1 API key (Vercel env / platform .env.local)
export NEXWAVE_OAUTH_PROFILES='{"alex":{"secret":"…","level":"owner"}}'
.venv/bin/nexwave-mcp --http --port 8378

.venv/bin/python scripts/verify_http.py http://127.0.0.1:8378
.venv/bin/python scripts/verify_oauth.py http://127.0.0.1:8378

stdio mode (local agents that prefer a spawned process): nexwave-mcp with no --http serves the public tools.

Deploy (Fly.io)

fly apps create nexwave-mcp
fly secrets set NEXWAVE_API_KEY=… NEXWAVE_BASE_URL=https://nexwave-mcp.fly.dev \
  'NEXWAVE_OAUTH_PROFILES={…}'   # generate fresh secrets, never the test ones
fly deploy

min_machines_running = 1 is deliberate: OAuth state is in-memory, and idle auto-stop would wipe DCR registrations mid-flow.

Registry (plugin-store discovery)

server.json is the official MCP registry manifest. Once the Fly deploy is live and verified, publish with the registry CLI (mcp-publisher, GitHub auth — the io.github.sidarau/* namespace is tied to the GitHub account):

mcp-publisher publish   # from this repo

— Enki · ZEUG-663

Available Tools

5 tools
availability_checkAvailability CheckA
Read-onlyIdempotent

Check whether a car is free for a date window.

car: car slug or 17-char VIN · start/end: YYYY-MM-DD (end = return day)

ParametersJSON Schema
NameRequiredDescriptionDefault
carYes
endYes
startYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, covering the safety and world-view. The description adds useful behavioral context beyond those: it specifies the input format (car slug or VIN, YYYY-MM-DD dates) and clarifies that 'end = return day'. This goes beyond what the schema or annotations provide, though it doesn't discuss edge cases like timezone or inclusivity of dates.

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

Conciseness5/5

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

The description is extremely concise—two sentences—and front-loads the core purpose. The parameter explanation is compactly packed into a single line using separators (·). Every sentence earns its place with no redundancy or filler.

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

Completeness4/5

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

For a simple availability check with an output schema, the description covers the essential semantics and parameter meanings. It might be improved by noting whether the result is a boolean or includes availability windows, but the output schema likely handles that. Minor gaps like timezone assumptions or inclusive/exclusive date boundaries are not addressed, but these are not critical for the tool's core function.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden of explaining parameters. It does so completely: 'car' is identified as a slug or 17-char VIN, and 'start'/'end' are YYYY-MM-DD dates with the note that 'end = return day'. Every parameter is explained with both format and meaning, fully compensating for the bare schema.

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

Purpose5/5

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

The description uses a specific verb ('Check') and clearly states the resource ('whether a car is free for a date window'). It distinguishes itself from siblings like fleet_list (listing) and quote_trip (pricing) by focusing on availability, so an agent can select it correctly without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies the use case (checking availability), but it does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites. The agent must infer that this is the go-to tool for availability checks based on the purpose alone.

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

fetchFetchA
Read-onlyIdempotent

Fetch the full text of one site page by its id (a URL from search).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds useful behavioral context beyond those: it returns the full text of exactly one page, and the id is a search-result URL. This is not contradictory with the annotations.

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

Conciseness5/5

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

A single, front-loaded sentence with no filler: action, resource, and input all appear immediately. Every word earns its place.

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

Completeness4/5

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

For a one-parameter, read-only tool with an output schema present, the description is nearly complete: it covers input provenance, scope, and result type. The only minor gap is an explicit statement about when to choose fetch over the sibling search tool, but the wording already implies that.

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 input schema gives only a bare string field with 0% description coverage, so the description must provide meaning. It does so by clarifying that 'id' is a URL from search, which tells the agent exactly what value to supply. It does not cover edge cases like URL encoding or invalid ids, but for a single input it is sufficiently contextual.

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

Purpose5/5

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

The description names a specific action ('Fetch'), a specific resource ('full text of one site page'), and a clear identifier ('its id (a URL from search)'). This distinguishes it from siblings like search (which discovers pages), fleet_list, availability_check, and quote_trip.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical '(a URL from search)' implies the natural usage context: call this after search when you have an id and need a page's full text. However, it does not explicitly state when not to use it or name alternatives, leaving routing partly to inference.

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

fleet_listFleet ListA
Read-onlyIdempotent

List the current published Sketchy Rides LA fleet: daily rates, mileage terms, photos, and booking URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds useful context about the contents of the list ('current published... daily rates, mileage terms, photos, booking URLs') but does not disclose behaviors like pagination or all-vs-partial listing beyond what the annotations imply.

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

Conciseness5/5

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

A single sentence leads with the verb and resource, then enumerates the relevant data fields. No filler or repetition; every phrase earns its place.

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

Completeness5/5

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

The tool is a simple zero-parameter list with a strong annotation set and an output schema present. The description fully covers what the agent needs to know to invoke it: what resource is listed and what data will be returned.

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 input schema has zero parameters, so there are no parameter semantics to document. The rubric sets a baseline of 4 for a zero-parameter tool, and the description's content coverage makes this appropriate.

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

Purpose5/5

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

Begins with the specific verb 'List' and identifies the exact resource, 'current published Sketchy Rides LA fleet,' plus the data included (daily rates, mileage terms, photos, booking URLs). This distinguishes it from sibling tools like quote_trip or availability_check, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case—call this when the agent needs the current published fleet listing—and the 'current published' wording sets scope. However, it does not explicitly state when to choose fleet_list over search, fetch, availability_check, or quote_trip, nor does it list exclusions.

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

quote_tripQuote TripA
Read-onlyIdempotent

Exact checkout quote in USD cents: daily rate + insurance plan + 11.5% CA tax + deposit hold. plan: full | liability | decline. Pilot runs a demo insurance fee — not issued coverage.

ParametersJSON Schema
NameRequiredDescriptionDefault
carYes
endYes
planNofull
startYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

The description discloses meaningful behavior beyond the annotations: the quote includes daily rate, insurance plan, 11.5% CA tax, and deposit hold, and the insurance fee is only a demo charge, not issued coverage. This complements the readOnlyHint and idempotentHint annotations without contradicting them.

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 compact and front-loads the formula and quote type before the plan options and caveat. The 'Pilot' typo is a minor readability issue, but the description remains focused with no wasted words.

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

Completeness4/5

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

With an output schema and readOnly/idempotent annotations present, the description covers the important behavioral specifics: cost formula, tax, deposit hold, and demo insurance. It does not address car/start/end parameter formats or compare explicitly to sibling tools, but it is still sufficiently complete for the agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It usefully documents the plan parameter's allowed values ('full | liability | decline') and clarifies how cost components fit together. However, it leaves car, start, and end semantics to inference, with no format or meaning beyond their identifiers.

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

Purpose5/5

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

It names a specific action ('exact checkout quote'), the exact resource being quoted, and the financial inputs that compose the quote. This clearly distinguishes it from sibling tools like availability_check or fleet_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the intended use clear: produce a precise checkout price in USD cents. It does not explicitly discuss alternatives or when not to use this tool, but the context is strong enough that an agent can infer the right scenario.

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.

  1. 5 tool updatesv0.1.0
    • First observedavailability_check
    • First observedfetch
    • First observedfleet_list
    • First observedquote_trip
    • First observedsearch

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clear, distinct purpose: listing the fleet, checking availability, generating a quote, searching site content, and fetching page text. There is no meaningful overlap between the tools, and the search/fetch pairing is explicitly linked rather than ambiguous.

Naming Consistency3/5

All names are readable and use snake_case, but the naming conventions are mixed: fleet_list and availability_check are object_verb-style, quote_trip is verb_object, and search/fetch are bare verbs. The names are not chaotic, but they do not follow one predictable pattern.

Tool Count5/5

Five tools is well-scoped for this read-only rental fleet, availability, quoting, and website content server. Each tool earns its place and there is no bloat or thinness.

Completeness4/5

The pre-booking workflow is well covered: list the fleet, check availability, get a quote, and search/fetch site content. The only notable gap is the lack of a direct booking/reservation tool, though fleet_list provides booking URLs as a workaround.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Agent-native MCP server for Carly, the AI scheduling assistant. Exposes 11 tools to read and manage booking pages, event types, calendars, bookings, and available slots. Allows you to manage and create booking pages from the command line.
    13
    5
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to access a unified catalog of tools from various APIs (OpenAPI, GraphQL, MCP, Google Discovery) through the MCP protocol.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Remote MCP server for the fleetstreet creator platform, enabling AI agents to register creative works, issue/revoke AI licences, access compliance evidence, and manage a creator business (catalog, merch, events) via 46 tools.
    12
    -