JensS/film-equipment-rental-mcp
If you are the rightful owner of film-equipment-rental-mcp 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.
A Model Context Protocol (MCP) server that provides AI assistants with tools to interact with the Film Equipment Rental WordPress plugin API.
Film Equipment Rental MCP Server
A Model Context Protocol (MCP) server that provides AI assistants with tools to interact with the Film Equipment Rental WordPress plugin API.
Overview
This MCP server exposes comprehensive tools for managing film equipment inventory, clients, rental sessions, and statistics through the Film Equipment Rental WordPress plugin's REST API.
Features
Equipment Management
list_equipment- List all equipment with optional filteringget_equipment- Get detailed equipment info including rental historycreate_equipment- Add new equipment to inventoryupdate_equipment- Update equipment detailsdelete_equipment- Remove equipment from inventory
Client Management
list_clients- List all clients with rental statisticsget_client- Get detailed client info with rental historycreate_client- Add new clientupdate_client- Update client informationdelete_client- Remove client
Rental Management
list_rentals- List rental sessions with paginationget_rental- Get detailed rental informationcreate_rental- Create new rental sessionupdate_rental- Update rental sessiondelete_rental- Delete rental session
Statistics
get_statistics- Get comprehensive rental statistics, ROI, and trends
Prerequisites
- Node.js 18+ or compatible runtime
- Film Equipment Rental WordPress plugin installed and activated
- API key generated in plugin settings
Installation
1. Install Dependencies
cd mcp-server
npm install
2. Build the Server
npm run build
3. Configure Environment Variables
Copy .env.example to .env:
cp .env.example .env
Edit .env with your WordPress site details:
FER_API_BASE_URL=https://yoursite.com/wp-json/film-equipment-rental/v1
FER_API_KEY=your_api_key_here
To get your API key:
- Log in to WordPress admin
- Go to Settings → Equipment Rental Settings
- Navigate to the REST API Access tab
- Copy the API key displayed
Usage
Running Standalone
For testing or development:
npm start
Using with Claude Desktop
Add this server to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"film-equipment-rental": {
"command": "node",
"args": [
"/absolute/path/to/Film-Equipment-Rental/mcp-server/dist/index.js"
],
"env": {
"FER_API_BASE_URL": "https://yoursite.com/wp-json/film-equipment-rental/v1",
"FER_API_KEY": "your_api_key_here"
}
}
}
}
Important: Replace /absolute/path/to/ with the actual absolute path to your installation.
After adding the configuration:
- Restart Claude Desktop
- The Film Equipment Rental tools will be available in conversations
Using with Other MCP Clients
Any MCP-compatible client can use this server via stdio transport. Configure according to your client's documentation, using:
- Command:
node - Args:
["path/to/mcp-server/dist/index.js"] - Environment variables:
FER_API_BASE_URLandFER_API_KEY
Tool Reference
Equipment Tools
list_equipment
List all equipment items with optional filtering.
Parameters:
category(optional): Filter by category slug (e.g., "cameras", "lenses")status(optional): Filter by status
Example:
{
"category": "cameras",
"status": "active"
}
get_equipment
Get detailed information about a specific equipment item.
Parameters:
id(required): Equipment ID
Example:
{
"id": 1
}
create_equipment
Create a new equipment item.
Parameters:
name(required): Equipment namebrand: Equipment brandserial_number: Serial numberdescription: Full descriptionshort_description: Short descriptioncategory: Category slugdaily_rate: Daily rental ratepurchase_price: Purchase pricepurchase_date: Purchase date (YYYY-MM-DD)current_value: Current estimated valuestatus: Status (default: "active")images: Array of image URLs
Example:
{
"name": "ARRI Alexa Mini",
"brand": "ARRI",
"category": "cameras",
"daily_rate": 500,
"purchase_price": 40000,
"purchase_date": "2024-01-15",
"current_value": 35000
}
update_equipment
Update an existing equipment item (only provided fields will be updated).
Parameters:
id(required): Equipment ID- All other parameters are optional (same as create_equipment)
Example:
{
"id": 1,
"daily_rate": 550,
"current_value": 34000
}
delete_equipment
Delete an equipment item and its associated images.
Parameters:
id(required): Equipment ID
Example:
{
"id": 1
}
Client Tools
list_clients
List all clients with their rental statistics.
Parameters: None
get_client
Get detailed information about a specific client including rental history.
Parameters:
id(required): Client ID
Example:
{
"id": 1
}
create_client
Create a new client.
Parameters:
name(required): Client name
Example:
{
"name": "Production Company XYZ"
}
update_client
Update an existing client.
Parameters:
id(required): Client IDname(required): Client name
Example:
{
"id": 1,
"name": "Updated Production Company Name"
}
delete_client
Delete a client.
Parameters:
id(required): Client ID
Example:
{
"id": 1
}
Rental Tools
list_rentals
List all rental sessions with pagination.
Parameters:
limit(optional): Number of rentals to return (default: 50)offset(optional): Offset for pagination (default: 0)
Example:
{
"limit": 10,
"offset": 0
}
get_rental
Get detailed information about a specific rental session.
Parameters:
id(required): Rental session ID
Example:
{
"id": 10
}
create_rental
Create a new rental session with equipment.
Parameters:
rental_date(required): Rental date (YYYY-MM-DD)rental_days(required): Number of rental days (minimum 1)equipment(required): Array of equipment items with earningsclient_id(optional): Client IDnotes(optional): Project name or notes
Example:
{
"client_id": 1,
"rental_date": "2024-03-20",
"rental_days": 3,
"notes": "Downtown film shoot",
"equipment": [
{
"equipment_id": 1,
"earnings": 1500
},
{
"equipment_id": 2,
"earnings": 300
}
]
}
update_rental
Update an existing rental session.
Parameters:
id(required): Rental session ID- All other parameters are optional (same as create_rental)
Example:
{
"id": 10,
"rental_days": 4,
"notes": "Extended shoot"
}
delete_rental
Delete a rental session and its associated equipment earnings.
Parameters:
id(required): Rental session ID
Example:
{
"id": 10
}
Statistics Tool
get_statistics
Get comprehensive rental statistics including revenue, ROI, top clients, and monthly trends.
Parameters:
year(optional): Year (e.g., 2024) or "all" for all-time statistics
Example:
{
"year": 2024
}
or
{
"year": "all"
}
Development
Project Structure
mcp-server/
├── src/
│ ├── index.ts # Main MCP server implementation
│ └── api-client.ts # WordPress REST API client
├── dist/ # Compiled JavaScript (generated)
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
├── .env.example # Environment variables template
└── README.md # This file
Development Mode
Run TypeScript compiler in watch mode:
npm run dev
Building
Compile TypeScript to JavaScript:
npm run build
Troubleshooting
API Connection Issues
Error: "Invalid API key"
- Verify your API key is correct in
.env - Check that the API key hasn't been regenerated in WordPress
- Ensure you're using the header authentication method
Error: "API access is not configured"
- Generate an API key in WordPress plugin settings
- Go to: Settings → Equipment Rental Settings → REST API Access
Server Not Showing in Claude Desktop
- Verify the path in
claude_desktop_config.jsonis absolute - Ensure the server was built (
npm run build) - Check that
dist/index.jsexists - Restart Claude Desktop completely
- Check Claude Desktop logs for errors
Permission Errors
If you get permission errors when running the server:
chmod +x dist/index.js
Security Notes
- Keep your API key confidential
- Use HTTPS in production environments
- The API key provides full access to your equipment data
- Regenerate the API key if it's compromised (in WordPress settings)
- Consider using environment-specific API keys for development/production
API Documentation
For complete API documentation, see in the parent directory.
Support
For issues or questions:
- Check the
- Review the
- File an issue on the GitHub repository
License
MIT
Version
1.0.0