npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

signal-relay-mcp

v1.0.2

Published

MCP Server for SocioLogic Revenue Intelligence Platform - Interview synthetic personas, run research campaigns, and export insights

Readme

Signal Relay - SocioLogic MCP Server

License: MIT MCP

A remote MCP (Model Context Protocol) server that connects AI agents to SocioLogic's synthetic persona platform. Interview realistic customer personas, run multi-persona research campaigns, and export board-ready reports—all through natural conversation.

Features

  • 15 MCP Tools - Full access to personas, campaigns, focus groups, and credits
  • High-Fidelity Personas - Synthetic personas with consistent demographics, psychographics, and behavior
  • Semantic Memory - RAG-powered memory retrieval for persona continuity across conversations
  • Edge Deployed - Runs on Cloudflare Workers (300+ locations, <50ms latency)
  • Secure - API key authentication, request validation, no data stored on edge

Quick Start

Use the Hosted Server (Recommended)

The fastest way to get started is using our hosted server at https://mcp.sociologicai.com.

  1. Get an API key at sociologic.ai/dashboard/api-keys (100 free credits on signup)

  2. Configure your MCP client:

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "sociologic": {
      "transport": "http",
      "url": "https://mcp.sociologicai.com",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Claude Code (.mcp.json in your project):

{
  "mcpServers": {
    "sociologic": {
      "transport": "http",
      "url": "https://mcp.sociologicai.com",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}
  1. Start chatting! Ask Claude to interview personas, create campaigns, or explore the marketplace.

Self-Hosting

Deploy your own instance to Cloudflare Workers:

Prerequisites

Installation

# Clone the repository
git clone https://github.com/SocioLogicAI/signal-relay.git
cd signal-relay

# Install dependencies
npm install

# Login to Cloudflare
npx wrangler login

# Deploy
npx wrangler deploy

Your server will be available at https://sociologic-mcp-server.<your-subdomain>.workers.dev

Local Development

npm run dev

Starts a local server at http://localhost:8787.

Available Tools

| Tool | Description | |------|-------------| | sociologic_list_personas | List synthetic personas from marketplace or private collection | | sociologic_get_persona | Get detailed persona information (demographics, psychographics, traits) | | sociologic_create_persona | Generate a new persona from natural language description | | sociologic_interview_persona | Conduct adversarial interview with a persona | | sociologic_get_persona_memories | Retrieve persona's semantic memories via vector search | | sociologic_list_campaigns | List research campaigns with status and results | | sociologic_get_campaign | Get campaign details including interviews and findings | | sociologic_create_campaign | Create multi-persona research campaign with custom questions | | sociologic_execute_campaign | Execute draft campaign (async background processing) | | sociologic_export_campaign | Export campaign results as PDF or JSON | | sociologic_list_focus_groups | List focus groups for cohort-based research | | sociologic_get_focus_group | Get focus group details with member personas | | sociologic_create_focus_group | Create new focus group to organize personas | | sociologic_add_personas_to_focus_group | Add personas to an existing focus group | | sociologic_get_credits_balance | Check current credits balance and usage |

API Endpoints

| Endpoint | Method | Description | |----------|--------|-------------| | / | POST | JSON-RPC 2.0 endpoint for MCP protocol | | /health | GET | Health check (requires API key) | | /info | GET | Server information and available tools |

Example Usage

Interview a Persona

curl -X POST https://mcp.sociologicai.com/ \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "sociologic_interview_persona",
      "arguments": {
        "slug": "enterprise-buyer",
        "message": "What would make you hesitant to try a new AI product?"
      }
    }
  }'

List Available Personas

curl -X POST https://mcp.sociologicai.com/ \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "sociologic_list_personas",
      "arguments": {
        "visibility": "public",
        "per_page": 10
      }
    }
  }'

Configuration

Environment Variables

| Variable | Description | Default | |----------|-------------|---------| | SOCIOLOGIC_API_URL | Backend API URL | https://www.sociologic.ai |

wrangler.toml

[vars]
SOCIOLOGIC_API_URL = "https://www.sociologic.ai"

Security

  • API keys are passed via X-API-Key header or Authorization: Bearer header
  • Request size limited to 1MB to prevent DoS
  • Input validation via Zod schemas on all tool parameters
  • No data stored on edge - all data flows through to the SocioLogic API

Rate Limiting

For production deployments, we recommend enabling Cloudflare's rate limiting:

  1. Go to Cloudflare Dashboard > Security > WAF > Rate limiting rules
  2. Create a rule: 100 requests per 10 seconds per IP

Architecture

┌─────────────────┐      ┌─────────────────────┐      ┌─────────────────┐
│                 │      │                     │      │                 │
│   MCP Client    │─────▶│  Cloudflare Worker  │─────▶│  SocioLogic API │
│  (Claude, etc)  │      │   (This Server)     │      │                 │
│                 │◀─────│                     │◀─────│                 │
└─────────────────┘      └─────────────────────┘      └─────────────────┘
        │                         │                          │
        │    MCP Protocol         │    REST API              │
        │    (JSON-RPC 2.0)       │    (HTTPS)               │
        └─────────────────────────┴──────────────────────────┘

Pricing

| Operation | Credits | |-----------|---------| | List personas | 1 | | Get persona | 1 | | Create persona | 5-50 (by fidelity tier) | | Interview persona | 1 per message | | Campaign execution | Varies by size |

Free tier: 100 credits on signup. See sociologic.ai/pricing for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Links