A Model Context Protocol (MCP) server for the Vibe CTV/streaming advertising platform.
This server allows AI assistants (like Claude) to interact with your Vibe advertising data securely via the Vibe Streaming API.
- Node.js v22 or higher
- A Vibe account with API access
- A Vibe API key (see Step 1)
- Log in to your Vibe account
- Navigate to Developer Tool > API Keys
- Create or copy your API key
Choose the setup that matches your MCP client:
Add to your claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"vibe": {
"command": "npx",
"args": ["-y", "vibeco-mcp"],
"env": {
"VIBE_API_KEY": "your-api-key"
}
}
}
}Add to your Claude Code MCP settings (~/.claude/mcp.json or project-level):
{
"mcpServers": {
"vibe": {
"command": "npx",
"args": ["-y", "vibeco-mcp"],
"env": {
"VIBE_API_KEY": "your-api-key"
}
}
}
}In Cursor settings, add an MCP server:
{
"mcpServers": {
"vibe": {
"command": "npx",
"args": ["-y", "vibeco-mcp"],
"env": {
"VIBE_API_KEY": "your-api-key"
}
}
}
}| Variable | Required | Default | Description |
|---|---|---|---|
VIBE_API_KEY |
Yes | - | Vibe API key |
VIBE_API_BASE_URL |
No | https://clear-platform.vibe.co/rest/reporting/v1 |
API base URL (override for testing) |
MCP_TRANSPORT |
No | stdio |
Transport mode: stdio or http |
MCP_SERVER_HOST |
No | 127.0.0.1 |
Host to bind the HTTP server to |
MCP_SERVER_PORT |
No | 3000 |
Port for the HTTP server |
The server provides 8 tools for full Vibe API coverage:
| Tool | Description |
|---|---|
vibe.ping |
Check server status and API key configuration |
| Tool | Description |
|---|---|
vibe.advertisers.list |
List all advertiser IDs |
| Tool | Description |
|---|---|
vibe.apps.list |
List app IDs for an advertiser |
| Tool | Description |
|---|---|
vibe.campaigns.list |
List campaign details for an advertiser |
| Tool | Description |
|---|---|
vibe.reports.create |
Create an async report (rate limited: 15/hr) |
vibe.reports.status |
Check report status and get download URL |
| Tool | Description |
|---|---|
vibe.purchases.list |
List purchase IDs for an advertiser |
The server exposes data as MCP resources:
| Resource URI | Description |
|---|---|
vibe://advertisers |
List all advertiser IDs |
| Resource URI | Description |
|---|---|
vibe://advertisers/{advertiser_id}/apps |
App IDs for a specific advertiser |
vibe://advertisers/{advertiser_id}/campaigns |
Campaign details for a specific advertiser |
The server provides guided prompts for common workflows:
| Prompt | Description |
|---|---|
campaign-report |
Guided workflow for creating a campaign performance report |
setup-api-key |
Instructions for configuring the Vibe API key |
# Clone the repo
git clone https://github.com/jacob-hartmann/vibeco-mcp.git
cd vibeco-mcp
# Use the Node.js version from .nvmrc
# (macOS/Linux nvm): nvm install && nvm use
# (Windows nvm-windows): nvm install 22 && nvm use 22
nvm install
nvm use
# Install dependencies
pnpm install
# Copy .env.example and configure
cp .env.example .env
# Edit .env with your API key# Development mode (auto-reload)
pnpm dev
# Production build
pnpm build
# Production run
pnpm startYou can use the MCP Inspector to debug the server:
# Run from source
pnpm inspect
# Run from built output
pnpm inspect:distpnpm inspect loads .env automatically via dotenv (see .env.example).
Contributions are welcome! Please see CONTRIBUTING.md for guidelines on how to contribute to this project.
See SECURITY.md for security policy and reporting vulnerabilities.
This is a community project provided "as is" with no guaranteed support. See SUPPORT.md for details.
MIT © Jacob Hartmann