npm package: @keycard-gtm/event-roi-mcp
Description: MCP server for assessing event ROI and managing event investments
Author: Keycard
Latest version: 0.1.0

# Event ROI MCP Server

An MCP server for assessing event ROI, tracking decisions and outcomes, and learning from historical data to improve recommendations.

## What This Does

- **Assess events** using multi-dimensional scoring (audience fit, topic alignment, opportunity quality, competitive dynamics, cost efficiency)
- **Track decisions** and commitments with Linear integration
- **Record outcomes** and learnings post-event
- **Collaborate** via shared Supabase database with full audit trails

## Installation

```bash
npm install -g @keycard-gtm/event-roi-mcp
```

## Claude Desktop Setup

Add to your Claude Desktop config file:

**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "event-roi": {
      "command": "event-roi-mcp",
      "env": {
        "DATABASE_URL": "postgresql://...",
        "LINEAR_API_KEY": "lin_api_...",
        "SLACK_USER_TOKEN": "xoxp-...",
        "FOUNDER_USER_IDS": "U123ABC,U456DEF",
        "LEADERSHIP_USER_IDS": "U123ABC,U456DEF,U789GHI"
      }
    }
  }
}
```

Restart Claude Desktop to load the server.

## Environment Variables

| Variable | Required | Description |
|----------|----------|-------------|
| `DATABASE_URL` | Yes | Supabase/Postgres connection string |
| `LINEAR_API_KEY` | Yes | Linear API key for issue management |
| `SLACK_USER_TOKEN` | No | Slack user token for team discussion integration |
| `FOUNDER_USER_IDS` | No | Comma-separated Slack user IDs for founder tracking |
| `LEADERSHIP_USER_IDS` | No | Comma-separated Slack user IDs for leadership tracking |

### Getting Your Credentials

- **DATABASE_URL**: From your Supabase project settings → Database → Connection string
- **LINEAR_API_KEY**: [Linear Settings → API](https://linear.app/settings/api)
- **SLACK_USER_TOKEN**: Create a Slack app at https://api.slack.com/apps with scopes: `channels:history`, `channels:read`, `users:read`

## Database Setup

Run the schema migration on your Supabase database:

```bash
# The schema file is included in the package
npx event-roi-schema | psql $DATABASE_URL
```

Or manually run the SQL from [schema.postgres.sql](https://github.com/keycardlabs/event-roi-mcp/blob/main/src/db/schema.postgres.sql).

## Usage

Once configured, you can use these tools in Claude:

### Core Tools

- **`assess_event`** - Analyze an event from URL or manual input
- **`submit_event`** - Quick submission for team review
- **`record_decision`** - Log decisions (sponsor, speak, attend, skip)
- **`get_event`** / **`list_events`** - Query event data and history

### Configuration

- **`get_config`** / **`update_config`** - Manage company configuration (ICP, topics, competitors)

### Integrations

- **`fetch_slack_context`** - Extract team discussions and sentiment from Slack channels

### Example

```
"Assess the RSA Conference for potential sponsorship"

→ assess_event({ url: "https://rsaconference.com" })
```

## Slack Integration

Enrich event assessments with team discussions from Slack channels:

1. Create a Slack app at https://api.slack.com/apps
2. Add OAuth **User Token Scopes**:
   - `channels:history` - Read messages in public channels
   - `channels:read` - View basic channel info
   - `users:read` - View people in workspace
3. Install app to workspace and copy the **User OAuth Token** (starts with `xoxp-`)
4. Add to your Claude Desktop config

**What it extracts:**
- Team sentiment and enthusiasm scores (via emoji reactions)
- Urgency signals and deadline mentions
- Competitive intel (competitor/partner mentions)
- Opportunity details (CFP deadlines, speaking slots)

## Development

```bash
# Clone the repo
git clone https://github.com/keycardlabs/event-roi-mcp.git
cd event-roi-mcp

# Install dependencies
npm install

# Configure environment
cp .env.sample .env
# Edit .env with your credentials

# Build
npm run build

# Run in dev mode
npm run dev
```

## Documentation

- [Architecture & Design Decisions](docs/ARCHITECTURE.md)
- [Configuration Guide](docs/CONFIGURATION.md)
- [Development Guide](docs/DEVELOPMENT.md)
- [Database Schema](docs/SCHEMA.md)
- [Full Specification](docs/SPEC.md)

## License

MIT