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

@chorus-research/mcp

v0.1.1

Published

MCP server for the Chorus Research survey platform

Readme

@chorus-research/mcp

MCP server for the Chorus Research survey platform — create surveys, launch them to targeted audiences, and collect responses, all from your AI agent.

Built on the Model Context Protocol.

Quick Start

1. Get an API key

Sign up at chorusresearch.com and generate an API key from your dashboard.

2. Add to your MCP client

Claude Code (.mcp.json):

{
  "mcpServers": {
    "chorus-research": {
      "command": "npx",
      "args": ["@chorus-research/mcp"],
      "env": {
        "CHORUS_API_KEY": "your-api-key"
      }
    }
  }
}

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "chorus-research": {
      "command": "npx",
      "args": ["@chorus-research/mcp"],
      "env": {
        "CHORUS_API_KEY": "your-api-key"
      }
    }
  }
}

Tools

The server exposes 10 tools across surveys, audiences, pricing, launch, and responses.

Surveys

| Tool | Description | Key Parameters | |------|-------------|----------------| | list_surveys | List surveys with optional filtering and pagination | status?, page?, pageSize?, sort?, order? | | get_survey | Get full survey details including the JSON definition | surveyId | | create_survey | Create a new survey draft | name, survey (JSON), targetCompletes, description? |

Audiences

| Tool | Description | Key Parameters | |------|-------------|----------------| | list_audiences | List all available audience segments with costs and targeting criteria | (none) | | get_audience | Get details for a specific audience segment | audienceId |

Pricing

| Tool | Description | Key Parameters | |------|-------------|----------------| | estimate_cost | Calculate launch cost (costPerResponse x targetCompletes) | audienceId, targetCompletes, projectId? | | get_pricing_config | Get current cost-per-response and currency | (none) |

Launch (two-step)

| Tool | Description | Key Parameters | |------|-------------|----------------| | launch_survey | Launch a survey to collect responses | See below | | get_survey_status | Real-time fielding status (completes, progress %, ETA) | surveyId |

launch_survey is a two-step process to prevent accidental charges:

  1. Estimate — call with surveyId, audienceId, and targetCompletes. Returns a cost estimate and a confirmToken (valid 5 minutes).
  2. Confirm — call again with surveyId and the confirmToken to execute the launch and charge payment.
# Step 1: Get estimate
launch_survey(surveyId, audienceId="genpop", targetCompletes=100)
# → { step: "estimate", estimatedCost: 100, confirmToken: "tok_...", expiresAt: "..." }

# Step 2: Confirm (triggers real charges)
launch_survey(surveyId, confirmToken="tok_...")
# → { step: "confirmed", success: true, amountCharged: 100 }

Responses

| Tool | Description | Key Parameters | |------|-------------|----------------| | get_responses | Export response data with pagination | surveyId, page?, pageSize?, status?, includeDuplicates? |

Response metadata includes device info (userAgent, screenSize, timezone), geographic data (city, state, country), and provider demographics when available. Duplicates are excluded by default.

Resources

| URI | Name | Description | |-----|------|-------------| | chorus://audiences | Audience Catalog | Full catalog of audience segments with targeting, costs, and fielding times | | chorus://pricing/config | Pricing Configuration | Current cost-per-response and currency |

Prompts

| Name | Description | Arguments | |------|-------------|-----------| | design_survey | Guides survey creation with best practices | topic (required), audience?, numQuestions? | | launch_checklist | Pre-launch validation checklist with cost review | surveyId (required) |

Configuration

| Environment Variable | Description | Default | |---------------------|-------------|---------| | CHORUS_API_KEY | API key for authentication (required) | (none) | | CHORUS_API_BASE_URL | Base URL for the Chorus Research API | https://api.chorusresearch.io |

Requirements

  • Node.js >= 20