README.md•6.81 kB
# Restream MCP Server
A Model Context Protocol (MCP) server that provides tools for interacting with the Restream API. This server enables Claude and other MCP clients to manage streaming channels, control streams, and access analytics through natural language.
## Features
- **User Profile Management**: Get authenticated user information
- **Channel Management**: List, view, enable/disable streaming channels
- **Stream Control**: Start, stop, and update stream settings
- **Analytics**: Access streaming analytics and performance data
- **OAuth Authentication**: Secure API access using client credentials
## Available Tools
### 1. `get_user_profile`
Get the authenticated user profile information including email, display name, and account details.
### 2. `list_channels`
List all connected streaming channels/platforms (YouTube, Twitch, Facebook, etc.) with their connection status.
### 3. `get_channel`
Get detailed information about a specific channel by ID.
**Parameters:**
- `channelId` (string, required): The ID of the channel to retrieve
### 4. `update_channel_status`
Enable or disable a specific streaming channel.
**Parameters:**
- `channelId` (string, required): The ID of the channel to update
- `enabled` (boolean, required): Whether to enable (true) or disable (false) the channel
### 5. `get_current_stream`
Get information about the current/active stream including title, status, RTMP URL, and viewer count.
### 6. `update_stream_settings`
Update settings for the current stream such as title, description, or privacy settings.
**Parameters:**
- `title` (string, optional): The stream title
- `description` (string, optional): The stream description
- `privacy` (string, optional): The stream privacy setting (public, private, unlisted)
### 7. `get_stream_analytics`
Get analytics and statistics for streams including viewer counts, engagement metrics, and performance data.
**Parameters:**
- `streamId` (string, optional): Optional stream ID to get analytics for a specific stream
### 8. `start_stream`
Start a new stream with optional settings.
**Parameters:**
- `title` (string, optional): The stream title
- `description` (string, optional): The stream description
- `privacy` (string, optional): The stream privacy setting (public, private, unlisted)
### 9. `stop_stream`
Stop the current active stream.
## Installation
### Prerequisites
- Node.js 18 or higher
- npm or yarn
- Restream API credentials (Client ID and Client Secret)
### Option 1: Install from npm (Recommended)
```bash
npm install -g @shaktech786/restream-mcp-server
```
Or install locally in your project:
```bash
npm install @shaktech786/restream-mcp-server
```
### Option 2: Install from Source
1. Clone this repository:
```bash
git clone https://github.com/shaktech786/restream-mcp-server.git
cd restream-mcp-server
```
2. Install dependencies:
```bash
npm install
```
3. Build the server:
```bash
npm run build
```
### Configuration
Configure your Restream API credentials either through environment variables or in your Claude Desktop config:
**Environment Variables (.env file):**
```bash
RESTREAM_CLIENT_ID=your_client_id_here
RESTREAM_CLIENT_SECRET=your_client_secret_here
RESTREAM_API_BASE_URL=https://api.restream.io/v2
```
## Getting Restream API Credentials
1. Go to [Restream Developer Portal](https://developers.restream.io/docs)
2. Create a new application or use an existing one
3. Copy your Client ID and Client Secret
4. Add them to your `.env` file
## Usage with Claude Desktop
To use this MCP server with Claude Desktop, add it to your Claude Desktop configuration file:
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
### If installed via npm:
```json
{
"mcpServers": {
"restream": {
"command": "npx",
"args": ["-y", "@shaktech786/restream-mcp-server"],
"env": {
"RESTREAM_CLIENT_ID": "your_client_id_here",
"RESTREAM_CLIENT_SECRET": "your_client_secret_here",
"RESTREAM_API_BASE_URL": "https://api.restream.io/v2"
}
}
}
}
```
### If installed from source:
```json
{
"mcpServers": {
"restream": {
"command": "node",
"args": ["/absolute/path/to/restream-mcp-server/dist/index.js"],
"env": {
"RESTREAM_CLIENT_ID": "your_client_id_here",
"RESTREAM_CLIENT_SECRET": "your_client_secret_here",
"RESTREAM_API_BASE_URL": "https://api.restream.io/v2"
}
}
}
}
```
Restart Claude Desktop after saving the configuration.
## Development
### Running in Development Mode
```bash
npm run dev
```
This will watch for changes and rebuild automatically.
### Testing the Server
You can test the server locally using the MCP Inspector:
```bash
npx @modelcontextprotocol/inspector node dist/index.js
```
## API Endpoints Reference
This server uses the Restream API v2. The main endpoints include:
- `POST /oauth/token` - Authentication
- `GET /user/profile` - Get user profile
- `GET /user/channels` - List channels
- `GET /user/channels/:id` - Get channel details
- `PATCH /user/channels/:id` - Update channel
- `GET /user/stream` - Get current stream
- `PATCH /user/stream` - Update stream settings
- `POST /user/stream/start` - Start stream
- `POST /user/stream/stop` - Stop stream
- `GET /user/analytics` - Get analytics
For complete API documentation, visit [Restream Developer Portal](https://developers.restream.io/docs).
## Example Usage with Claude
Once configured, you can ask Claude to:
- "List all my connected streaming channels"
- "Get my current stream information"
- "Update my stream title to 'Live Coding Session'"
- "Enable my YouTube channel"
- "Show me my streaming analytics"
- "Start a new stream with title 'Gaming Night'"
## Troubleshooting
### Authentication Errors
If you encounter authentication errors:
1. Verify your Client ID and Client Secret are correct
2. Ensure the credentials have the necessary permissions
3. Check that the API base URL is correct
### Connection Issues
If the server fails to connect:
1. Make sure all dependencies are installed (`npm install`)
2. Rebuild the server (`npm run build`)
3. Check that Node.js version is 18 or higher
4. Verify the path in Claude Desktop config is correct
## Security Notes
- Never commit your `.env` file to version control
- Keep your Client ID and Client Secret secure
- Regularly rotate your API credentials
- The `.gitignore` file is configured to exclude `.env`
## License
MIT
## Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
## Support
For issues with the MCP server, please file an issue on GitHub.
For Restream API questions, visit the [Restream Developer Portal](https://developers.restream.io/docs).