
signal-relay
io.github.SocioLogicAI/signal-relay
Connect AI agents to SocioLogic's synthetic persona platform for market research.
Documentation
Signal Relay - SocioLogic MCP Server
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.
-
Get an API key at sociologic.ai/dashboard/api-keys (100 free credits on signup)
-
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"
}
}
}
}
- Start chatting! Ask Claude to interview personas, create campaigns, or explore the marketplace.
Self-Hosting
Deploy your own instance to Cloudflare Workers:
Prerequisites
- Node.js v18+
- Cloudflare account (free tier works)
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-Keyheader orAuthorization: Bearerheader - 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:
- Go to Cloudflare Dashboard > Security > WAF > Rate limiting rules
- 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.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Links
signal-relay-mcpnpm install signal-relay-mcp