mcp-server-splitmygear
Enables AI agents to interact with the SplitMyGear outdoor gear rental marketplace, providing tools for searching gear, checking availability, managing bookings, browsing experiences, and generating content.
README
mcp-server-splitmygear
MCP (Model Context Protocol) server for SplitMyGear — an outdoor gear rental marketplace. Lets AI agents (Claude, Cursor, Windsurf, etc.) search gear, check availability, manage bookings, browse experiences, and more.
18 tools across search, booking, pricing, content generation, experiences, and messaging.
Independent project — not affiliated with any third party.
Quick Start
Claude Desktop
Authentication is required. Every request must present either an API key (
x-api-key) or a user JWT (Authorization: Bearer …). There is no public tier — the server wields privileged credentials, so unauthenticated requests are rejected with 401.
Add to your claude_desktop_config.json (API key required):
{
"mcpServers": {
"splitmygear": {
"url": "https://mcp-server-splitmygear.vercel.app/api/mcp",
"headers": {
"x-api-key": "your-splitmygear-api-key"
}
}
}
}
Cursor / Windsurf / mcp.json
{
"mcpServers": {
"splitmygear": {
"url": "https://mcp-server-splitmygear.vercel.app/api/mcp",
"headers": {
"x-api-key": "your-splitmygear-api-key"
}
}
}
}
Claude Desktop Extension (DXT)
Install manifest.json through Claude Desktop's Extension Manager (Claude Desktop v0.10.0+). The UI exposes the required API key field.
HTTP (direct)
curl -X POST https://mcp-server-splitmygear.vercel.app/api/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_listings",
"arguments": { "query": "tent for a family camping trip this weekend" }
}
}'
Authentication
All access requires authentication — the server holds privileged platform credentials, so there is no public/anonymous tier. Present either:
- an operator API key via the
x-api-keyheader (unlocks read/search, pricing, and content tools), or - a user JWT via
Authorization: Bearer <token>(additionally unlocks user-scoped tools — booking, messaging, personalized recommendations — which act as the authenticated user; they never accept a caller-supplied user id).
Unauthenticated requests are rejected with 401. The two tiers below mean
"works with an API key" (Auth) vs "requires a user JWT" (User).
Available Tools (18)
Search & Listings
| Tool | Auth | Description |
|---|---|---|
search_listings |
Auth | Search gear by filters or natural language |
get_listing_details |
Auth | Full details for a listing |
check_availability |
Auth | Check if a listing is available for dates |
get_similar_listings |
Auth | Semantically similar gear |
get_personalized_recommendations |
User | Recommendations based on booking history |
Bookings
| Tool | Auth | Description |
|---|---|---|
create_booking |
User | Create a rental booking (Stripe payment) |
cancel_booking |
User | Cancel a booking with optional refund |
get_booking_status |
User | Status of YOUR booking (owner-checked) |
Pricing & Business Intelligence
| Tool | Auth | Description |
|---|---|---|
suggest_listing_price |
Auth | AI-powered price suggestion for a gear category |
analyze_competitor_pricing |
Auth | Compare a listing against local competitors |
Content Generation
| Tool | Auth | Description |
|---|---|---|
generate_listing_description |
Auth | AI description from name + keywords |
improve_listing_title |
Auth | SEO-optimized title suggestions |
Experiences
| Tool | Auth | Description |
|---|---|---|
search_experiences |
Auth | Browse outdoor adventures and tours |
get_experience_details |
Auth | Full info and available schedules |
book_experience |
User | Book spots on a scheduled experience |
Messaging
| Tool | Auth | Description |
|---|---|---|
send_message |
User | Send a message to a renter or vendor |
get_conversations |
User | List your active conversations |
generate_ai_message_draft |
Auth | AI-drafted professional message |
Natural Language Search
The search_listings query parameter accepts plain English. The server parses it into structured filters automatically:
"lightweight tent for solo backpacking next weekend under $40/day"
"water sports gear for 3 people in Seattle"
"climbing harness and helmet for a beginner"
Resources
| Resource URI | Description |
|---|---|
splitmygear://categories |
List of all 8 gear categories |
Running Locally
Prerequisites
- Node.js 18+
- An operator
MCP_API_KEY(and, for user-scoped tools, a backend JWT) - Access to the SplitMyGear backend REST API (defaults to production; override with
BACKEND_API_URL) - (optional) An AI provider key (OpenCode Zen / OpenRouter / OpenAI) for the two content tools and the AI message draft
This server holds no Supabase or Stripe credentials — every action goes through the backend REST API, which is the single authority for auth, data, pricing and payments (SPLIT-226).
Setup
git clone https://github.com/SplitMyGear/mcp-server-splitmygear
cd mcp-server-splitmygear
npm install
cp .env.example .env.local
# Fill in your env vars
npm run dev
Your local server will be at http://localhost:3000/api/mcp.
Environment Variables
MCP_API_KEY= # REQUIRED — operator key clients send via x-api-key
BACKEND_API_URL= # optional — defaults to the production backend /api/v1
MCP_BACKEND_JWT_SECRET= # optional — verify forwarded JWT signatures locally (defense in depth)
# AI provider for the content/draft tools (first key present wins): OPENCODE → OPENROUTER → OPENAI
OPENCODE_API_KEY= # https://opencode.ai/zen — free tier
OPENROUTER_API_KEY= # https://openrouter.ai — free tier
AI_CHAT_MODEL= # optional override
AI_EMBEDDING_MODEL= # optional override
MCP_RATE_LIMIT_TIER=public # internal | beta | public | default
Without
MCP_API_KEYthe server fails closed (every request 401s). Without an AI provider key the three AI content tools degrade gracefully (they return a "disabled" notice); every other tool is unaffected.
Tests
npm test
Deployment (Vercel)
This server is optimized for Vercel Serverless Functions. Push to the connected GitHub repo to trigger a deploy:
git push origin main
Rate Limits
| Tier | Requests/min | Tool calls/min |
|---|---|---|
public |
20 | 200 |
beta |
50 | 500 |
internal |
100 | 1000 |
Set MCP_RATE_LIMIT_TIER in your environment to control the limit.
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。