juanhuttemann/pike13-mcp-server
If you are the rightful owner of pike13-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Pike13 MCP Server facilitates integration with the Pike13 API, enabling seamless communication and data exchange between client applications and the Pike13 platform.
Pike13 MCP Server
MCP server for Pike13 API integration with stdio transport for Claude Desktop.
Features
- 186 Pike13 API tools across Front (Client), Desk (Staff), Account, and Reporting APIs
- 1 Prompt for common workflows
- Stdio transport for direct Claude Desktop integration
- Docker-based deployment with minimal dependencies
- Tool filtering via environment variable - load only the tool groups you need
- Support for all Pike13 API operations
Installation
Using Pre-built Image (Recommended)
docker pull juanhuttemann/pike13-mcp:latest
Building from Source
# Clone the repository
git clone https://github.com/juanhuttemann/pike13-mcp-server.git
cd pike13-mcp-server
# Build the image
docker build -t pike13-mcp .
Usage
Claude Desktop Configuration
Add to your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"pike13": {
"command": "docker",
"args": [
"run",
"-i",
"-a",
"stdin",
"-a",
"stdout",
"--rm",
"--name",
"pike13-mcp-stdio",
"-e",
"PIKE13_ACCESS_TOKEN=your_access_token_here",
"-e",
"PIKE13_BASE_URL=https://yourbusiness.pike13.com",
"-e",
"TOOLS_ENABLED=front,desk,reporting",
"juanhuttemann/pike13-mcp:latest"
]
}
}
}
Environment Variables:
PIKE13_ACCESS_TOKEN: Your Pike13 API access tokenPIKE13_BASE_URL: Your Pike13 business URL (e.g.,https://yourbusiness.pike13.com)TOOLS_ENABLED: Comma-separated list of tool groups to load (optional, defaults to 'all')
Tool Groups:
Control which Pike13 API tools are available by setting the TOOLS_ENABLED environment variable:
account- Account-level operations (6 tools)desk- Staff/admin operations (103 tools)front- Customer-facing operations (25 tools)reporting- Analytics and reporting (12 tools)
Examples:
# Load only Front and Reporting tools (37 tools total)
TOOLS_ENABLED=front,reporting
# Load only Desk tools (103 tools)
TOOLS_ENABLED=desk
# Load all tools (186 tools) - this is the default
TOOLS_ENABLED=all
After updating the config, restart Claude Desktop to activate the MCP server.
Using with Local Build
If you built the image locally, change the last argument from juanhuttemann/pike13-mcp:latest to pike13-mcp:
"args": [
"run",
"-i",
"-a",
"stdin",
"-a",
"stdout",
"--rm",
"--name",
"pike13-mcp-stdio",
"-e",
"PIKE13_ACCESS_TOKEN=your_access_token_here",
"-e",
"PIKE13_BASE_URL=https://yourbusiness.pike13.com",
"-e",
"TOOLS_ENABLED=front,desk,reporting",
"pike13-mcp"
]
Available Tools
The server provides 186 tools organized by Pike13 API:
Front API (Client) - 65 tools
Tools prefixed with Front - for customer/public operations:
- Business: Get business info, branding, locations, franchisees
- Profile: Get current user profile
- Events: List events, event occurrences, availability, enrollment eligibilities
- Visits: List, get, create, update, delete visits
- Services: List services, enrollment eligibilities
- Plans: List plan products, plan terms
- Invoices: List, get, create, update invoices and items
- Payments: Create payments, get payment configuration
- Staff: List staff members, get staff details
- Waitlist: Manage waitlist entries
- Bookings: Full booking and booking lease management
- Forms of Payment: Manage payment methods
- Notes: List and get notes
- Waivers: List person waivers
Desk API (Staff) - 103 tools
Tools prefixed with Desk - for staff/admin operations:
- People: List, search, get, create, update, delete people
- Business: Get business details, franchisees
- Events: Complete event and occurrence management
- Visits: Full visit CRUD operations
- Services: Service and enrollment management
- Plans: List plans, manage end dates, plan products
- Punches: Create, get, update, delete punches
- Packs: Manage packs and pack products
- Invoices: Full invoice management including items, discounts, prorates
- Payments: Process payments, void payments, payment configuration
- Refunds: Create and void refunds
- Revenue Categories: List and get revenue categories
- Sales Taxes: List and get sales taxes
- Custom Fields: List custom fields
- Waitlist: Full waitlist CRUD operations
- Staff: Staff member management
- Locations: List and get locations
- Notes: Full note CRUD operations
- Forms of Payment: Manage payment methods
- Appointments: Find available slots, get availability summary
- Makeups: Generate and get makeup credits
Account API - 6 tools
Tools prefixed with Account - for account-level operations:
- Businesses: List all businesses in account
- User: Get account user info
- People: List all people across businesses
- Password Reset: Create password reset
Reporting API - 12 tools
Tools prefixed with Reporting - for analytics and reporting operations:
- Monthly Business Metrics: Get business performance metrics
- Event Occurrences: Get event occurrence reports
- Event Occurrence Staff Members: Get staff assignment reports
- Enrollments: Get enrollment reports
- Clients: Get client reports
- Staff Members: Get staff reports
- Invoices: Get invoice reports
- Invoice Items: Get invoice item reports
- Invoice Item Transactions: Get transaction reports
- Pays: Get payment reports
- Person Plans: Get membership/plan reports
- Transactions: Get financial transaction reports
- Confirmation: Create confirmation
Available Prompts
search_client
Search for a client by name, email, or phone using DeskSearchPeople.
Usage in Claude Desktop:
- Type
/search_client - Enter the client name, email, or phone
- Claude will search and show the results
How It Works
The Pike13 MCP Server uses a stdio transport architecture:
- Ruby MCP Server: Processes JSON-RPC requests via stdin/stdout
- Pike13 SDK: Makes API calls to your Pike13 instance
- Direct Communication: No HTTP or SSE - clean stdio-based protocol
This provides the simplest and most efficient integration with Claude Desktop.
Project Structure
├── config/
│ └── pike13_client.rb # Pike13 client configuration
├── tools/
│ ├── base_tool.rb # Base tool with auto error handling
│ └── *_tools.rb # Resource-specific tools (35 files, 186 tools)
├── prompts/
│ └── search_client_prompt.rb # Example prompt
├── server.rb # Ruby MCP server (stdio transport)
├── Dockerfile # Minimal Alpine-based build
└── Gemfile # Only 2 gems: mcp, pike13
Troubleshooting
Claude Desktop shows "Server disconnected"
- Ensure Docker is running
- Verify environment variables are set correctly in the config
- Check that your Pike13 access token is valid
- Check Claude Desktop logs:
- macOS:
~/Library/Logs/Claude/mcp-server-pike13.log - Windows:
%APPDATA%\Claude\logs\mcp-server-pike13.log
- macOS:
Testing the server manually
Test that the server works with an initialize request:
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | \
docker run -i --rm \
-e PIKE13_ACCESS_TOKEN=your_token \
-e PIKE13_BASE_URL=https://yourbusiness.pike13.com \
-e TOOLS_ENABLED=front,desk,reporting \
juanhuttemann/pike13-mcp:latest
You should see a JSON response with server info and the enabled tools (e.g., 140 tools for front+desk+reporting).
Test listing all tools:
echo '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' | \
docker run -i --rm \
-e PIKE13_ACCESS_TOKEN=your_token \
-e PIKE13_BASE_URL=https://yourbusiness.pike13.com \
-e TOOLS_ENABLED=front,desk,reporting \
juanhuttemann/pike13-mcp:latest
Getting Pike13 API Credentials
- Log into your Pike13 account
- Go to Settings → Integrations → API Access
- Generate a new API access token
- Copy your access token and business URL
Development
Running locally without Docker
bundle install
export PIKE13_ACCESS_TOKEN=your_token
export PIKE13_BASE_URL=https://yourbusiness.pike13.com
export TOOLS_ENABLED=front,desk,reporting # Optional: control which tool groups to load
ruby server.rb
Adding new tools
- Create a new file in
tools/following the pattern:
class MyNewTool < Pike13BaseTool
description "What this tool does"
input_schema(
properties: {
param_name: { type: 'string', description: 'Parameter description' }
},
required: ['param_name']
)
class << self
def call(param_name:, server_context:)
# Your implementation using Pike13 SDK
Pike13::SomeResource.some_method(param_name).to_json
end
end
end
- Rebuild the Docker image
- Restart Claude Desktop
Adding new prompts
- Create a new file in
prompts/:
class MyPrompt < MCP::Prompt
prompt_name 'my_prompt'
description 'What this prompt does'
arguments [
MCP::Prompt::Argument.new(
name: 'param',
description: 'Parameter description',
required: true
)
]
class << self
def template(args, server_context:)
MCP::Prompt::Result.new(
description: "Description",
messages: [
MCP::Prompt::Message.new(
role: 'user',
content: MCP::Content::Text.new("Your instruction to Claude using #{args[:param]}")
)
]
)
end
end
end
- Rebuild and restart
License
MIT