Film Equipment Rental MCP Server

Film Equipment Rental MCP Server

Enables AI assistants to manage film equipment inventory, clients, rental sessions, and statistics through the Film Equipment Rental WordPress plugin API.

Category
Visit Server

README

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 API.md in the parent directory.

Support

For issues or questions:

  1. Check the WordPress plugin documentation
  2. Review the API documentation
  3. File an issue on the GitHub repository

License

MIT

Version

1.0.0

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured