# OpenTable MCP Server
An MCP (Model Context Protocol) server that provides natural language access to OpenTable restaurant reservation functionality.
## 🚀 **One-Step Setup**
**No installation required!** Just configure Claude Desktop:
### 1. Add to Claude Desktop Configuration
Add this to your Claude Desktop configuration file (`~/.claude_desktop_config.json`):
```json
{
"mcpServers": {
"opentable": {
"command": "uvx",
"args": ["opentable-mcp-server"],
"env": {
"OPENTABLE_ORG_KEY": "your-org-key-here"
}
}
}
}
```
### 2. Restart Claude Desktop
### 3. Start using natural language:
```
"Register me for OpenTable and find Italian restaurants in NYC"
```
**That's it!** `uvx` automatically downloads and installs the MCP server when Claude Desktop starts.
---
## Features
- 🔍 **Restaurant Search**: Find restaurants by location and cuisine
- 📅 **Availability Check**: Get real-time availability for any restaurant
- 📝 **Reservation Management**: Book, cancel, and list reservations
- 💳 **Payment Integration**: Add credit cards for reservations requiring them
- 👤 **User Management**: Register test users for development
- 🏥 **Health Monitoring**: Check API service status
## Installation
### **Recommended: Claude Desktop Auto-Install**
The easiest way is to let Claude Desktop handle everything automatically. Just add the configuration above to `~/.claude_desktop_config.json` and restart Claude Desktop.
When Claude Desktop starts, `uvx` will:
- ✅ Automatically download `opentable-mcp-server` from PyPI
- ✅ Install all dependencies including `opentable-rest-client`
- ✅ Create an isolated environment
- ✅ Start the MCP server
### Alternative: Manual Installation
If you prefer to install manually first:
```bash
# Option 1: Using uvx
uvx opentable-mcp-server
# Option 2: Using pip
pip install opentable-mcp-server
```
## Configuration
### Claude Desktop Configuration
**Already shown above!** The configuration in the "One-Step Setup" section is all you need.
For reference, the configuration file locations are:
- **macOS**: `~/.claude_desktop_config.json` or `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
See `claude_desktop_config_example.json` in this directory for a complete example.
### Environment Variables
- `OPENTABLE_ORG_KEY` (required): Your OpenTable organization key
## Project Structure
```
mcp/
├── opentable_mcp_server.py # Main MCP server implementation
├── setup.py # Package setup configuration
├── requirements.txt # Python dependencies
├── MANIFEST.in # Package manifest
├── opentable_mcp_README.md # This documentation
├── claude_desktop_config_example.json # Example configuration
└── dist/ # Built packages
```
## Available Tools
The MCP server provides these tools for natural language interaction:
### Restaurant Discovery
- **search_restaurants**: Find restaurants by location, cuisine, and preferences
- **get_restaurant_availability**: Check real-time availability for a specific restaurant
- **get_restaurant_timeslots**: Get available time slots for a restaurant
### Reservation Management
- **book_reservation**: Make a new reservation
- **cancel_reservation**: Cancel an existing reservation
- **list_reservations**: View user's current reservations
- **modify_reservation**: Change an existing reservation
### User & Payment
- **register_user**: Create a new user account (for testing)
- **get_user_info**: Get current user information
- **add_credit_card**: Add a payment method
- **list_credit_cards**: View saved payment methods
### Monitoring
- **health_check**: Check API service status
## Publishing to PyPI
To publish the MCP server package:
```bash
cd mcp/
# Build the package
python -m build
# Upload to PyPI (requires authentication)
twine upload dist/*
```
## Development
### Testing the Server
```bash
cd mcp/
python opentable_mcp_server.py
```
The server will start and listen for MCP protocol messages via stdio.
### Dependencies
- `mcp>=1.2.0`: Model Context Protocol framework
- `opentable-rest-client>=1.0.0`: Published OpenTable API client
## License
MIT License - see the main project repository for details.
## Contributing
Contributions are welcome! Please see the main project repository at https://github.com/wheelis/opentable_mcp
Raw data
{
"_id": null,
"home_page": "https://github.com/wheelis/opentable_mcp",
"name": "opentable-mcp-server",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "mcp, opentable, restaurant, reservations, model-context-protocol",
"author": "wheelis",
"author_email": "noreply@github.com",
"download_url": "https://files.pythonhosted.org/packages/4f/d7/ad56117ee8b645fceff4625df52f570545769749753d2edcb89653ca5d11/opentable_mcp_server-1.3.2.tar.gz",
"platform": null,
"description": "# OpenTable MCP Server\n\nAn MCP (Model Context Protocol) server that provides natural language access to OpenTable restaurant reservation functionality.\n\n## \ud83d\ude80 **One-Step Setup**\n\n**No installation required!** Just configure Claude Desktop:\n\n### 1. Add to Claude Desktop Configuration\n\nAdd this to your Claude Desktop configuration file (`~/.claude_desktop_config.json`):\n\n```json\n{\n \"mcpServers\": {\n \"opentable\": {\n \"command\": \"uvx\",\n \"args\": [\"opentable-mcp-server\"],\n \"env\": {\n \"OPENTABLE_ORG_KEY\": \"your-org-key-here\"\n }\n }\n }\n}\n```\n\n### 2. Restart Claude Desktop\n\n### 3. Start using natural language:\n```\n\"Register me for OpenTable and find Italian restaurants in NYC\"\n```\n\n**That's it!** `uvx` automatically downloads and installs the MCP server when Claude Desktop starts.\n\n---\n\n## Features\n\n- \ud83d\udd0d **Restaurant Search**: Find restaurants by location and cuisine\n- \ud83d\udcc5 **Availability Check**: Get real-time availability for any restaurant \n- \ud83d\udcdd **Reservation Management**: Book, cancel, and list reservations\n- \ud83d\udcb3 **Payment Integration**: Add credit cards for reservations requiring them\n- \ud83d\udc64 **User Management**: Register test users for development\n- \ud83c\udfe5 **Health Monitoring**: Check API service status\n\n## Installation\n\n### **Recommended: Claude Desktop Auto-Install**\n\nThe easiest way is to let Claude Desktop handle everything automatically. Just add the configuration above to `~/.claude_desktop_config.json` and restart Claude Desktop.\n\nWhen Claude Desktop starts, `uvx` will:\n- \u2705 Automatically download `opentable-mcp-server` from PyPI\n- \u2705 Install all dependencies including `opentable-rest-client`\n- \u2705 Create an isolated environment\n- \u2705 Start the MCP server\n\n### Alternative: Manual Installation\n\nIf you prefer to install manually first:\n\n```bash\n# Option 1: Using uvx\nuvx opentable-mcp-server\n\n# Option 2: Using pip\npip install opentable-mcp-server\n```\n\n## Configuration\n\n### Claude Desktop Configuration\n\n**Already shown above!** The configuration in the \"One-Step Setup\" section is all you need.\n\nFor reference, the configuration file locations are:\n- **macOS**: `~/.claude_desktop_config.json` or `~/Library/Application Support/Claude/claude_desktop_config.json`\n- **Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\nSee `claude_desktop_config_example.json` in this directory for a complete example.\n\n### Environment Variables\n\n- `OPENTABLE_ORG_KEY` (required): Your OpenTable organization key\n\n## Project Structure\n\n```\nmcp/\n\u251c\u2500\u2500 opentable_mcp_server.py # Main MCP server implementation\n\u251c\u2500\u2500 setup.py # Package setup configuration\n\u251c\u2500\u2500 requirements.txt # Python dependencies\n\u251c\u2500\u2500 MANIFEST.in # Package manifest\n\u251c\u2500\u2500 opentable_mcp_README.md # This documentation\n\u251c\u2500\u2500 claude_desktop_config_example.json # Example configuration\n\u2514\u2500\u2500 dist/ # Built packages\n```\n\n## Available Tools\n\nThe MCP server provides these tools for natural language interaction:\n\n### Restaurant Discovery\n- **search_restaurants**: Find restaurants by location, cuisine, and preferences\n- **get_restaurant_availability**: Check real-time availability for a specific restaurant\n- **get_restaurant_timeslots**: Get available time slots for a restaurant\n\n### Reservation Management \n- **book_reservation**: Make a new reservation\n- **cancel_reservation**: Cancel an existing reservation\n- **list_reservations**: View user's current reservations\n- **modify_reservation**: Change an existing reservation\n\n### User & Payment\n- **register_user**: Create a new user account (for testing)\n- **get_user_info**: Get current user information\n- **add_credit_card**: Add a payment method\n- **list_credit_cards**: View saved payment methods\n\n### Monitoring\n- **health_check**: Check API service status\n\n## Publishing to PyPI\n\nTo publish the MCP server package:\n\n```bash\ncd mcp/\n\n# Build the package\npython -m build\n\n# Upload to PyPI (requires authentication)\ntwine upload dist/*\n```\n\n## Development\n\n### Testing the Server\n\n```bash\ncd mcp/\npython opentable_mcp_server.py\n```\n\nThe server will start and listen for MCP protocol messages via stdio.\n\n### Dependencies\n\n- `mcp>=1.2.0`: Model Context Protocol framework\n- `opentable-rest-client>=1.0.0`: Published OpenTable API client\n\n## License\n\nMIT License - see the main project repository for details.\n\n## Contributing\n\nContributions are welcome! Please see the main project repository at https://github.com/wheelis/opentable_mcp \n",
"bugtrack_url": null,
"license": null,
"summary": "An MCP server for OpenTable restaurant reservations",
"version": "1.3.2",
"project_urls": {
"Homepage": "https://github.com/wheelis/opentable_mcp"
},
"split_keywords": [
"mcp",
" opentable",
" restaurant",
" reservations",
" model-context-protocol"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "530025f3c8351a78cc14d90dc4f8b4e9508c73ca51b724fc34c6eb70dc11f888",
"md5": "350e10f51d0b5a8ed26da19ddd700fd1",
"sha256": "d1b7dc85040f64327f4705dd5acd529e8466b35738dbbed8f7687032121631cd"
},
"downloads": -1,
"filename": "opentable_mcp_server-1.3.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "350e10f51d0b5a8ed26da19ddd700fd1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 27807,
"upload_time": "2025-07-26T21:40:50",
"upload_time_iso_8601": "2025-07-26T21:40:50.873128Z",
"url": "https://files.pythonhosted.org/packages/53/00/25f3c8351a78cc14d90dc4f8b4e9508c73ca51b724fc34c6eb70dc11f888/opentable_mcp_server-1.3.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4fd7ad56117ee8b645fceff4625df52f570545769749753d2edcb89653ca5d11",
"md5": "27e28a4772be7316862f3d6edc884b22",
"sha256": "26b7c3a59cebc3d54d9c10cb08d1ea600f501c540ec497032c6bad1c6dd47a33"
},
"downloads": -1,
"filename": "opentable_mcp_server-1.3.2.tar.gz",
"has_sig": false,
"md5_digest": "27e28a4772be7316862f3d6edc884b22",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 27571,
"upload_time": "2025-07-26T21:40:52",
"upload_time_iso_8601": "2025-07-26T21:40:52.671837Z",
"url": "https://files.pythonhosted.org/packages/4f/d7/ad56117ee8b645fceff4625df52f570545769749753d2edcb89653ca5d11/opentable_mcp_server-1.3.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-26 21:40:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "wheelis",
"github_project": "opentable_mcp",
"github_not_found": true,
"lcname": "opentable-mcp-server"
}