WebRenew/channex-mcp
If you are the rightful owner of channex-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 self-improving Model Context Protocol (MCP) server for interacting with the Channex.io API.
Channex MCP
A self-improving Model Context Protocol (MCP) server for interacting with the Channex.io API.
⚠️ Important Disclaimer
This is NOT an official Channex.io project. This is an independent, open-source implementation of an MCP server that interfaces with the Channex.io API. It is not affiliated with, endorsed by, or supported by Channex.io. Use at your own risk.
🚀 Quick Start with Claude Code
See for detailed instructions on adding this MCP to Claude Code.
🔧 MCP Configuration
For Cursor/Claude Desktop
Add the following to your ~/.cursor/mcp.json or Claude Desktop configuration:
{
"mcpServers": {
"channex": {
"command": "npx",
"args": ["--prefix", "/path/to/channex-mcp", "channex-mcp"],
"env": {
"MCP_MODE": "mcp",
"CHANNEX_API_KEY": "your-api-key-here",
"CHANNEX_BASE_URL": "https://app.channex.io/api/v1/"
}
}
}
}
Important: Replace /path/to/channex-mcp with the absolute path to your channex-mcp directory and add your actual Channex API key.
Common Issues
- ES Module errors: The project uses ES modules. The configuration above uses
npxto handle module loading correctly. - Server not starting: Ensure you've run
npm installandnpm run buildin the channex-mcp directory first.
Features
- ✨ Complete CRUD operations for Properties, Room Types, Rate Plans
- 📊 ARI (Availability, Rates, Inventory) management
- 🔄 Self-improving architecture with recursive commands
- 🧪 Built-in testing framework
- 📝 Auto-generated documentation
- 🔒 Secure API key management
Installation
npm install
Configuration
- Copy
.env.exampleto.env - Add your Channex API key
cp .env.example .env
Usage
Running the MCP Server
npm run dev
Self-Improvement Commands
Generate new endpoints:
npm run command generate-endpoint -- bookings list,get,create
Run tests:
npm run command test-all
Update documentation:
npm run command update-docs
Improve types from API responses:
npm run command improve-types -- properties samples/properties.json
Available Tools
The MCP server exposes the following tools:
Properties
channex_list_properties- List all propertieschannex_get_property- Get property by IDchannex_create_property- Create new propertychannex_update_property- Update propertychannex_delete_property- Delete property
Room Types
channex_list_room_types- List room typeschannex_get_room_type- Get room type by IDchannex_create_room_type- Create room type
Rate Plans
channex_list_rate_plans- List rate planschannex_get_rate_plan- Get rate plan by IDchannex_create_rate_plan- Create rate plan
ARI (Availability, Rates, Inventory)
channex_get_availability- Get availability per room typechannex_get_restrictions- Get restrictions per rate planchannex_update_ari- Update availability, rates, and restrictions
Channels (OTA Connections)
channex_test_channel_api- Test channel API accesschannex_check_existing_connection- Check for existing channel connectionschannex_list_channels- List all channel connections (supports field filtering)channex_get_channel_by_code- Get channels by code (optimized for specific channels)channex_get_channel- Get channel detailschannex_create_channel- Create new channel (e.g., Airbnb)channex_update_channel- Update channel settings (now supports property_ids)channex_delete_channel- Delete channel connectionchannex_get_channel_mappings- Get listing-to-rate-plan mappingschannex_update_channel_mapping- Map channel listings to rate planschannex_get_airbnb_listings- Get Airbnb-specific listingschannex_update_airbnb_listing- Update Airbnb pricing/availability
Development
Project Structure
channex-mcp/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── api/
│ │ └── client.ts # Channex API client
│ ├── resources/ # Resource handlers
│ │ ├── properties.ts
│ │ ├── room-types.ts
│ │ ├── rate-plans.ts
│ │ ├── ari.ts
│ │ └── channels.ts
│ └── types/ # TypeScript definitions
├── .claude/
│ └── commands/ # Self-improvement scripts
└── CLAUDE.MD # Claude Code documentation
Adding New Features
- Use the
generate-endpointcommand to scaffold new resources - Add TypeScript types in
src/types/index.ts - Implement handlers in the MCP server
- Update documentation using
update-docs
Recent Updates (Jan 2025)
Response Size Optimization
- Added field filtering support to reduce response sizes
- Implemented response truncation for large objects
- Created optimized
channex_get_channel_by_codeendpoint - Fixed pagination parameter formatting
Channel Management Enhancement
- Added
property_idssupport tochannex_update_channel - Enables adding/removing properties from existing channels
- Essential for managing multi-property OTA connections
Contributing
We welcome contributions! Please see our for details.
Important: This is an unofficial project. Contributors must:
- Test against real Channex APIs (no mocks)
- Respect Channex.io's Terms of Service
- Never commit API keys or credentials
License
This project is licensed under the MIT License - see the file for details.
Disclaimer
This project is not affiliated with Channex.io. The Channex name and API are property of their respective owners. This is an independent project that provides an MCP interface to interact with the public Channex API.
Support
For issues and questions, please open a GitHub issue.