uber-central-mcp


Nameuber-central-mcp JSON
Version 1.1.0 PyPI version JSON
download
home_pageNone
SummaryModel Context Protocol (MCP) server for Uber Central API integration
upload_time2025-08-06 08:06:06
maintainerNone
docs_urlNone
authorUber Central Team
requires_python>=3.10
licenseMIT License Copyright (c) 2024 Uber Central Team Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords fastmcp mcp model-context-protocol ride-booking uber
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Uber Central MCP Server

This is a Model Context Protocol (MCP) server that provides access to the Uber Central API functionality. It allows LLMs like Claude to interact with the Uber Central service to manage ride bookings, get estimates, and track usage.

## Features

The MCP server exposes the following tools:

### User Management
- **initialize_user**: Create a new client account and get a client_id
- **get_client_stats**: Get usage statistics for a specific client
- **get_usage_history**: Get detailed API usage history
- **get_ride_history**: Get complete ride booking history

### Ride Operations
- **get_estimates**: Get ride price estimates for all available vehicle types
- **book_ride**: Book an immediate Uber ride
- **schedule_ride**: Schedule an Uber ride for future pickup
- **get_ride_status**: Get current ride status and driver details
- **cancel_ride**: Cancel an existing ride

### System
- **health_check**: Check API service health and connectivity

## Prerequisites

- Python 3.10 or higher
- Uber Central API key
- `uv` package manager

## Installation

### From PyPI (Recommended)

```bash
pip install uber-central-mcp
```

or with uv:
```bash
uv add uber-central-mcp
```

### From Source

1. Clone or download this directory
2. Install dependencies:
```bash
uv sync
```

## Configuration

Set your API key:
- Set environment variable: `export UBER_CENTRAL_API_KEY="your-api-key-here"`
- This is **required** - the server will not start without a valid API key

## Usage

### Testing the Server

#### Using PyPI Package
```bash
uber-central-mcp
```

#### Using Local Development Version
```bash
uv run -m uber_central_mcp
```

The server will start and wait for MCP protocol messages on stdin/stdout.

### Using with Claude Desktop

Add this configuration to your Claude Desktop config file (`~/Library/Application Support/Claude/claude_desktop_config.json`):

#### Using PyPI Package (Recommended)

```json
{
  "mcpServers": {
    "uber-central": {
      "command": "uvx",
      "args": [
        "--force-reinstall",
        "uber-central-mcp"
      ],
      "env": {
        "UBER_CENTRAL_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

#### Using Local Development Version

```json
{
  "mcpServers": {
    "uber-central": {
      "command": "uvx",
      "args": [
        "--force-reinstall",
        "--directory",
        "/ABSOLUTE/PATH/TO/uber_central/uber-central-mcp",
        "run",
        "-m",
        "uber_central_mcp"
      ],
      "env": {
        "UBER_CENTRAL_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

**Note**: For the local development version, replace `/ABSOLUTE/PATH/TO/uber_central/uber-central-mcp` with the actual absolute path.

### Using with Other MCP Clients

This server follows the standard MCP protocol and can be used with any compatible MCP client.

## Example Usage

Once connected to Claude Desktop, you can ask natural language questions like:

- "Create a new user account for John Doe with email john@example.com"
- "Get ride estimates from Union Square San Francisco to SFO Airport for 2 passengers"
- "Book an immediate ride from 123 Market St to 456 Mission St for Sarah Johnson, phone 5551234567"
- "Schedule a ride for tomorrow at 3 PM from my office to the airport"
- "What's the status of ride abc-123-def?"
- "Show me the ride history for client xyz-456-789"
- "Check if the Uber Central API is healthy"

## API Configuration

The server connects to the Uber Central API endpoint configured in your deployment. This provides the following capabilities:
- Enterprise-grade ride management
- User tracking and analytics
- Comprehensive audit trails
- Real-time ride status tracking

## Security

- API keys are passed via environment variables or secure configuration
- All requests use Bearer token authentication
- The server validates all inputs and handles errors gracefully
- No sensitive data is logged to stdout (MCP protocol requirement)

## Development

To modify or extend the server:

1. Edit `uber_central_mcp_server.py`
2. Add new tools using the `@mcp.tool()` decorator
3. Follow the fastMCP pattern for type hints and docstrings
4. Test with `uv run uber_central_mcp_server.py`

## Troubleshooting

### Server Not Connecting
- Check that the absolute path in Claude Desktop config is correct
- Verify the API key is set correctly
- Check Claude Desktop logs: `tail -f ~/Library/Logs/Claude/mcp*.log`

### API Errors
- Verify the API key is valid and not expired
- Check if the Uber Central API is healthy using the health_check tool
- Ensure client_ids are valid (created with initialize_user)

### Tool Failures
- Most tools require a valid client_id from initialize_user
- Phone numbers should be 10 digits (US format)
- Addresses should be specific and valid locations
- Pickup times for scheduling should be in ISO 8601 format

## License

This MCP server is part of the Uber Central project.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "uber-central-mcp",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "fastmcp, mcp, model-context-protocol, ride-booking, uber",
    "author": "Uber Central Team",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/57/43/aa8ea7b7c82d3a90eeacafeda1d70c65a2011085205b018dcb9e47b2b432/uber_central_mcp-1.1.0.tar.gz",
    "platform": null,
    "description": "# Uber Central MCP Server\n\nThis is a Model Context Protocol (MCP) server that provides access to the Uber Central API functionality. It allows LLMs like Claude to interact with the Uber Central service to manage ride bookings, get estimates, and track usage.\n\n## Features\n\nThe MCP server exposes the following tools:\n\n### User Management\n- **initialize_user**: Create a new client account and get a client_id\n- **get_client_stats**: Get usage statistics for a specific client\n- **get_usage_history**: Get detailed API usage history\n- **get_ride_history**: Get complete ride booking history\n\n### Ride Operations\n- **get_estimates**: Get ride price estimates for all available vehicle types\n- **book_ride**: Book an immediate Uber ride\n- **schedule_ride**: Schedule an Uber ride for future pickup\n- **get_ride_status**: Get current ride status and driver details\n- **cancel_ride**: Cancel an existing ride\n\n### System\n- **health_check**: Check API service health and connectivity\n\n## Prerequisites\n\n- Python 3.10 or higher\n- Uber Central API key\n- `uv` package manager\n\n## Installation\n\n### From PyPI (Recommended)\n\n```bash\npip install uber-central-mcp\n```\n\nor with uv:\n```bash\nuv add uber-central-mcp\n```\n\n### From Source\n\n1. Clone or download this directory\n2. Install dependencies:\n```bash\nuv sync\n```\n\n## Configuration\n\nSet your API key:\n- Set environment variable: `export UBER_CENTRAL_API_KEY=\"your-api-key-here\"`\n- This is **required** - the server will not start without a valid API key\n\n## Usage\n\n### Testing the Server\n\n#### Using PyPI Package\n```bash\nuber-central-mcp\n```\n\n#### Using Local Development Version\n```bash\nuv run -m uber_central_mcp\n```\n\nThe server will start and wait for MCP protocol messages on stdin/stdout.\n\n### Using with Claude Desktop\n\nAdd this configuration to your Claude Desktop config file (`~/Library/Application Support/Claude/claude_desktop_config.json`):\n\n#### Using PyPI Package (Recommended)\n\n```json\n{\n  \"mcpServers\": {\n    \"uber-central\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"--force-reinstall\",\n        \"uber-central-mcp\"\n      ],\n      \"env\": {\n        \"UBER_CENTRAL_API_KEY\": \"your-api-key-here\"\n      }\n    }\n  }\n}\n```\n\n#### Using Local Development Version\n\n```json\n{\n  \"mcpServers\": {\n    \"uber-central\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"--force-reinstall\",\n        \"--directory\",\n        \"/ABSOLUTE/PATH/TO/uber_central/uber-central-mcp\",\n        \"run\",\n        \"-m\",\n        \"uber_central_mcp\"\n      ],\n      \"env\": {\n        \"UBER_CENTRAL_API_KEY\": \"your-api-key-here\"\n      }\n    }\n  }\n}\n```\n\n**Note**: For the local development version, replace `/ABSOLUTE/PATH/TO/uber_central/uber-central-mcp` with the actual absolute path.\n\n### Using with Other MCP Clients\n\nThis server follows the standard MCP protocol and can be used with any compatible MCP client.\n\n## Example Usage\n\nOnce connected to Claude Desktop, you can ask natural language questions like:\n\n- \"Create a new user account for John Doe with email john@example.com\"\n- \"Get ride estimates from Union Square San Francisco to SFO Airport for 2 passengers\"\n- \"Book an immediate ride from 123 Market St to 456 Mission St for Sarah Johnson, phone 5551234567\"\n- \"Schedule a ride for tomorrow at 3 PM from my office to the airport\"\n- \"What's the status of ride abc-123-def?\"\n- \"Show me the ride history for client xyz-456-789\"\n- \"Check if the Uber Central API is healthy\"\n\n## API Configuration\n\nThe server connects to the Uber Central API endpoint configured in your deployment. This provides the following capabilities:\n- Enterprise-grade ride management\n- User tracking and analytics\n- Comprehensive audit trails\n- Real-time ride status tracking\n\n## Security\n\n- API keys are passed via environment variables or secure configuration\n- All requests use Bearer token authentication\n- The server validates all inputs and handles errors gracefully\n- No sensitive data is logged to stdout (MCP protocol requirement)\n\n## Development\n\nTo modify or extend the server:\n\n1. Edit `uber_central_mcp_server.py`\n2. Add new tools using the `@mcp.tool()` decorator\n3. Follow the fastMCP pattern for type hints and docstrings\n4. Test with `uv run uber_central_mcp_server.py`\n\n## Troubleshooting\n\n### Server Not Connecting\n- Check that the absolute path in Claude Desktop config is correct\n- Verify the API key is set correctly\n- Check Claude Desktop logs: `tail -f ~/Library/Logs/Claude/mcp*.log`\n\n### API Errors\n- Verify the API key is valid and not expired\n- Check if the Uber Central API is healthy using the health_check tool\n- Ensure client_ids are valid (created with initialize_user)\n\n### Tool Failures\n- Most tools require a valid client_id from initialize_user\n- Phone numbers should be 10 digits (US format)\n- Addresses should be specific and valid locations\n- Pickup times for scheduling should be in ISO 8601 format\n\n## License\n\nThis MCP server is part of the Uber Central project.\n",
    "bugtrack_url": null,
    "license": "MIT License\n        \n        Copyright (c) 2024 Uber Central Team\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.",
    "summary": "Model Context Protocol (MCP) server for Uber Central API integration",
    "version": "1.1.0",
    "project_urls": {
        "Homepage": "https://github.com/uber-central/uber-central-mcp",
        "Issues": "https://github.com/uber-central/uber-central-mcp/issues",
        "Repository": "https://github.com/uber-central/uber-central-mcp"
    },
    "split_keywords": [
        "fastmcp",
        " mcp",
        " model-context-protocol",
        " ride-booking",
        " uber"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a3e8ec70f535c3f0045e04530a32385b0e886f1ccc371cc5ab0e3c9c60963dd3",
                "md5": "9f9f72e8e0c3a83b9dd432f85810ba68",
                "sha256": "7d7b6b92784edf24df42a6828ccefc8430639d5f05f69059cff91e014f4baabd"
            },
            "downloads": -1,
            "filename": "uber_central_mcp-1.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9f9f72e8e0c3a83b9dd432f85810ba68",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 9993,
            "upload_time": "2025-08-06T08:06:05",
            "upload_time_iso_8601": "2025-08-06T08:06:05.142990Z",
            "url": "https://files.pythonhosted.org/packages/a3/e8/ec70f535c3f0045e04530a32385b0e886f1ccc371cc5ab0e3c9c60963dd3/uber_central_mcp-1.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5743aa8ea7b7c82d3a90eeacafeda1d70c65a2011085205b018dcb9e47b2b432",
                "md5": "5e64a07e4496648114174632ba4ccf0c",
                "sha256": "038ef717c4861eafb9f8577290789890b379daaf4df937451808c9a99f3ddaf3"
            },
            "downloads": -1,
            "filename": "uber_central_mcp-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "5e64a07e4496648114174632ba4ccf0c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 9764,
            "upload_time": "2025-08-06T08:06:06",
            "upload_time_iso_8601": "2025-08-06T08:06:06.305221Z",
            "url": "https://files.pythonhosted.org/packages/57/43/aa8ea7b7c82d3a90eeacafeda1d70c65a2011085205b018dcb9e47b2b432/uber_central_mcp-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-06 08:06:06",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "uber-central",
    "github_project": "uber-central-mcp",
    "github_not_found": true,
    "lcname": "uber-central-mcp"
}
        
Elapsed time: 1.58990s