|
| 1 | +# Alternate Installation and Configuration Options |
| 2 | + |
| 3 | +This document covers alternative methods for installing the ROS-MCP server, configuring it with different transport options, and using it with different LLM clients. |
| 4 | + |
| 5 | +--- |
| 6 | + |
| 7 | +## Alternative Installation Options |
| 8 | + |
| 9 | +### Option A: Install using pip |
| 10 | +For users who prefer traditional pip installation: |
| 11 | + |
| 12 | +```bash |
| 13 | +pip install ros-mcp |
| 14 | +``` |
| 15 | +> **⚠️ Important**: This package requires pip version 23.0 or higher. Check your pip version with `pip --version` and upgrade if needed: |
| 16 | +> **⚠️ Important**: This package requires python version 3.10 or higher. Check your python version with `python3 --version` and upgrade if needed: |
| 17 | +```bash |
| 18 | +python3 -m pip install --upgrade pip |
| 19 | +``` |
| 20 | + |
| 21 | +### Option B: Install from Source |
| 22 | +For developers or advanced users who need to modify the source code, see [Installation from Source](installation-from-source.md). |
| 23 | + |
| 24 | +### Option C: Install from Source using pip |
| 25 | +For developers who want to install from source but still use pip: |
| 26 | + |
| 27 | +```bash |
| 28 | +# Clone the repository |
| 29 | +git clone https://github.com/robotmcp/ros-mcp-server.git |
| 30 | +cd ros-mcp-server |
| 31 | + |
| 32 | +# Install from source using pip |
| 33 | +pip install . |
| 34 | +``` |
| 35 | + |
| 36 | +> **⚠️ Important**: This package requires pip version 23.0 or higher. Check your pip version with `pip --version` and upgrade if needed: |
| 37 | +> **⚠️ Important**: This package requires python version 3.10 or higher. Check your python version with `python3 --version` and upgrade if needed: |
| 38 | +```bash |
| 39 | +python3 -m pip install --upgrade pip |
| 40 | +``` |
| 41 | + |
| 42 | +--- |
| 43 | + |
| 44 | +## Alternate Configuration - HTTP Transport |
| 45 | + |
| 46 | +The default configurations set up the MCP server using the STDIO transport layer, which launches the server as a plugin automatically on launching Claude. |
| 47 | + |
| 48 | +It is also possible to configure the MCP server using the HTTP transport layer, which configures Claude to connect to the MCP server when it is launched as a standalone application. |
| 49 | + |
| 50 | +For HTTP transport, the configuration is the same across all platforms. First start the MCP server manually: |
| 51 | + |
| 52 | +**Linux/macOS/Windows(WSL):** |
| 53 | +```bash |
| 54 | +cd /<ABSOLUTE_PATH>/ros-mcp-server |
| 55 | +# Using command line arguments (recommended) |
| 56 | +ros-mcp --transport streamable-http --host 127.0.0.1 --port 9000 |
| 57 | + |
| 58 | +# Or using environment variables (legacy) |
| 59 | +export MCP_TRANSPORT=streamable-http |
| 60 | +export MCP_HOST=127.0.0.1 |
| 61 | +export MCP_PORT=9000 |
| 62 | +uv run server.py |
| 63 | +``` |
| 64 | + |
| 65 | +Then configure Claude Desktop to connect to the HTTP server (same for all platforms): |
| 66 | + |
| 67 | +```json |
| 68 | +{ |
| 69 | + "mcpServers": { |
| 70 | + "ros-mcp-server-http": { |
| 71 | + "name": "ROS-MCP Server (http)", |
| 72 | + "transport": "http", |
| 73 | + "url": "http://127.0.0.1:9000/mcp" |
| 74 | + } |
| 75 | + } |
| 76 | +} |
| 77 | +``` |
| 78 | + |
| 79 | +--- |
| 80 | + |
| 81 | +## Comparison between default (STDIO) and HTTP Transport |
| 82 | + |
| 83 | +#### STDIO Transport (Default) |
| 84 | +- **Best for**: Local development, single-user setups |
| 85 | +- **Pros**: Simple setup, no network configuration needed |
| 86 | +- **Cons**: MCP server and LLM/MCP client need to be running on the local machine. |
| 87 | +- **Use case**: Running MCP server directly with your LLM client |
| 88 | + |
| 89 | +#### HTTP/Streamable-HTTP Transport |
| 90 | +- **Best for**: Remote access, multiple clients, production deployments |
| 91 | +- **Pros**: Network accessible, multiple clients can connect |
| 92 | +- **Cons**: Requires network configuration, MCP server needs to be run independently. |
| 93 | +- **Use case**: Remote robots, team environments, web-based clients |
| 94 | + |
| 95 | +--- |
| 96 | + |
| 97 | +## Alternate Clients |
| 98 | + |
| 99 | +### Cursor IDE |
| 100 | +For detailed Cursor setup instructions, see our [Cursor Tutorial](../examples/7_cursor/README.md). |
| 101 | + |
| 102 | +### ChatGPT |
| 103 | +For detailed ChatGPT setup instructions, see our [ChatGPT Tutorial](../examples/6_chatgpt/README.md). |
| 104 | + |
| 105 | +### Google Gemini |
| 106 | +For detailed Gemini setup instructions, see our [Gemini Tutorial](../examples/2_gemini/README.md). |
| 107 | + |
| 108 | +### Custom MCP Client |
| 109 | +You can also use the MCP server directly in your Python code. |
| 110 | +<details> |
| 111 | +<summary>Here is a python example of how to integrate it programmatically</summary> |
| 112 | + |
| 113 | +```python |
| 114 | +from mcp import ClientSession, StdioServerParameters |
| 115 | +from mcp.client.stdio import stdio_client |
| 116 | + |
| 117 | +async def main(): |
| 118 | + server_params = StdioServerParameters( |
| 119 | + command="uv", |
| 120 | + args=["--directory", "/path/to/ros-mcp-server", "run", "server.py"] |
| 121 | + ) |
| 122 | + |
| 123 | + async with stdio_client(server_params) as (read, write): |
| 124 | + async with ClientSession(read, write) as session: |
| 125 | + # Use the MCP server |
| 126 | + result = await session.call_tool("get_topics", {}) |
| 127 | + print(result) |
| 128 | +``` |
| 129 | + |
| 130 | +</details> |
| 131 | + |
0 commit comments