Skip to main content
Glama
nate-step

STEPhie MCP Server

by nate-step

STEPhie MCP Server

Model Context Protocol (MCP) server for STEPhie tools, providing secure access to publisher data and ad forecasting capabilities.

Features

  • šŸ” Secure Authentication via Stack Auth

  • šŸ“Š Publisher Tools - Access Monday.com publisher data

  • šŸ“ˆ Forecast Tools - Google Ad Manager availability forecasting

  • šŸš€ Fast Response - Optimized Vercel Edge Functions

  • šŸ”„ Streaming Support - SSE for real-time updates

Available Tools

Publisher Management

  • getAllPublishers - Get all publishers with details

  • getPublisherFormats - Get ad formats for publishers

  • getPublishersByFormats - Find publishers by ad formats

  • findPublisherAdUnits - Find ad units for publishers

  • getAdUnits - Get ad unit details

Product & Pricing

  • getAllProducts - Get ad products

  • getAllFormats - Get ad format specifications

  • getAllSizes - Get ad sizes

  • getAllAdPrices - Get pricing information

Forecasting

  • availabilityForecast - GAM availability forecasting

Setup

1. Install Dependencies

pnpm install

2. Environment Variables

Copy .env.example to .env.local and fill in your credentials:

# Stack Auth (from STEPhie)
NEXT_PUBLIC_STACK_PROJECT_ID=your_project_id
STACK_SECRET_SERVER_KEY=your_secret_key

# Monday.com API
MONDAY_API_KEY=your_monday_key

# Database (shared with STEPhie)
DATABASE_URL=your_neon_database_url

3. Local Development

pnpm dev

Server will be available at http://localhost:3000/api

Client Configuration

For Claude Desktop

Add to your Claude Desktop config:

{
  "mcpServers": {
    "stephie": {
      "url": "https://mcp.stepnetwork.dk/api",
      "headers": {
        "Authorization": "Bearer YOUR_STACK_AUTH_TOKEN"
      }
    }
  }
}

For Programmatic Access

const response = await fetch('https://mcp.stepnetwork.dk/api', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_TOKEN'
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'tools/call',
    params: {
      name: 'getAllPublishers',
      arguments: { limit: 10 }
    },
    id: 1
  })
});

Getting an Auth Token

  1. Log in to STEPhie at https://ai.stepnetwork.dk

  2. Navigate to Settings → API Keys

  3. Generate a new MCP token

  4. Use the token in your MCP client configuration

Deployment

Deploy to Vercel

vercel --prod

Add Domain in Vercel

  1. Go to Project Settings → Domains

  2. Add mcp.stepnetwork.dk

  3. Update DNS records:

    Type: CNAME
    Name: mcp
    Value: cname.vercel-dns.com

API Documentation

Initialize Connection

POST /api
{
  "jsonrpc": "2.0",
  "method": "initialize",
  "params": {
    "authToken": "YOUR_TOKEN"
  },
  "id": 1
}

List Available Tools

POST /api
{
  "jsonrpc": "2.0",
  "method": "tools/list",
  "id": 2
}

Call a Tool

POST /api
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "getAllPublishers",
    "arguments": {
      "limit": 10,
      "active": true
    }
  },
  "id": 3
}

Development

Project Structure

stephie-mcp/
ā”œā”€ā”€ api/              # Vercel API endpoints
│   ā”œā”€ā”€ index.ts      # Main MCP endpoint
│   ā”œā”€ā”€ sse.ts        # SSE streaming endpoint
│   └── health.ts     # Health check
ā”œā”€ā”€ lib/
│   ā”œā”€ā”€ auth/         # Stack Auth integration
│   ā”œā”€ā”€ tools/        # Tool implementations
│   ā”œā”€ā”€ monday/       # Monday.com client
│   └── types/        # TypeScript types
└── package.json

Adding New Tools

  1. Add tool definition in api/index.ts AVAILABLE_TOOLS array

  2. Implement handler in lib/tools/

  3. Add to executeToolHandler switch statement

Support

License

MIT Ā© STEP Networks

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nate-step/stephie-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server