film-equipment-rental-mcp

JensS/film-equipment-rental-mcp

3.2

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.

Tools
16
Resources
0
Prompts
0

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 filtering
  • get_equipment - Get detailed equipment info including rental history
  • create_equipment - Add new equipment to inventory
  • update_equipment - Update equipment details
  • delete_equipment - Remove equipment from inventory

Client Management

  • list_clients - List all clients with rental statistics
  • get_client - Get detailed client info with rental history
  • create_client - Add new client
  • update_client - Update client information
  • delete_client - Remove client

Rental Management

  • list_rentals - List rental sessions with pagination
  • get_rental - Get detailed rental information
  • create_rental - Create new rental session
  • update_rental - Update rental session
  • delete_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:

  1. Log in to WordPress admin
  2. Go to Settings → Equipment Rental Settings
  3. Navigate to the REST API Access tab
  4. 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:

  1. Restart Claude Desktop
  2. 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_URL and FER_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 name
  • brand: Equipment brand
  • serial_number: Serial number
  • description: Full description
  • short_description: Short description
  • category: Category slug
  • daily_rate: Daily rental rate
  • purchase_price: Purchase price
  • purchase_date: Purchase date (YYYY-MM-DD)
  • current_value: Current estimated value
  • status: 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 ID
  • name (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 earnings
  • client_id (optional): Client ID
  • notes (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

  1. Verify the path in claude_desktop_config.json is absolute
  2. Ensure the server was built (npm run build)
  3. Check that dist/index.js exists
  4. Restart Claude Desktop completely
  5. 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:

  1. Check the
  2. Review the
  3. File an issue on the GitHub repository

License

MIT

Version

1.0.0