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.
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 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 API.md in the parent directory.
Support
For issues or questions:
- Check the WordPress plugin documentation
- Review the API documentation
- File an issue on the GitHub repository
License
MIT
Version
1.0.0
推荐服务器
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 模型以安全和受控的方式获取实时的网络信息。