@insito/mcp
v0.2.0
Published
Insito MCP server — create and manage in-app surveys and read analytics from AI agents (Claude, Cursor, and any MCP client).
Maintainers
Readme
@insito/mcp
The Insito MCP server lets AI agents (Claude Desktop, Cursor, and any other Model Context Protocol client) create and manage in-app surveys, read NPS analytics, and browse responses in your Insito workspace — through natural language.
It runs locally over stdio and talks to the Insito API using a dashboard API key.
Prerequisites
- Node.js 20+
- An Insito API key. Create one in the dashboard under Settings → API keys
(it looks like
insk_…). The key acts on your workspace with your account's access — treat it like a password.
Configure your MCP client
Claude Desktop
Add this to your claude_desktop_config.json
(Settings → Developer → Edit Config):
{
"mcpServers": {
"insito": {
"command": "npx",
"args": ["-y", "@insito/mcp"],
"env": {
"INSITO_API_KEY": "insk_your_key_here"
}
}
}
}Restart Claude Desktop. You should see the Insito tools appear.
Cursor
Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (per-project):
{
"mcpServers": {
"insito": {
"command": "npx",
"args": ["-y", "@insito/mcp"],
"env": {
"INSITO_API_KEY": "insk_your_key_here"
}
}
}
}Configuration
| Variable / flag | Default | Description |
| ---------------------------- | ------------------------ | ---------------------------------------- |
| INSITO_API_KEY / --api-key | (required) | Your dashboard API key (insk_…). |
| INSITO_API_URL / --api-url | https://api.insito.app | Override for self-hosted / local dev. |
Tools
| Tool | What it does |
| ----------------- | ------------------------------------------------------------------- |
| list_apps | List the apps in your workspace. |
| get_app | Get an app's details, SDK API key, and identified-user count. |
| list_surveys | List an app's surveys with status and response counts. |
| get_survey | Get one survey's full configuration. |
| create_survey | Create a survey (as a draft). |
| update_survey | Edit a survey's draft (name, questions, trigger, schedule). |
| activate_survey | Publish pending changes and make a survey live. |
| pause_survey | Pause a live survey. |
| get_analytics | NPS score, promoter/passive/detractor split, and 30-day trend. |
| get_responses | List individual responses, filterable by survey/platform/date. |
| get_audience | Identified-user count and captured user properties. |
Example prompts
- "List my Insito apps."
- "Create an NPS survey called 'Onboarding NPS' in the Acme app that fires on
the
onboarding_completedevent, with an NPS question and an open-text follow-up. Then make it live." - "What's the NPS score for the Onboarding survey over the last 30 days?"
- "Show me the 10 most recent responses for the Acme app on iOS."
Development
npm install
npm run build # tsc -> dist/
npm run dev # tsx watch
npm test # vitest
npm run typecheckSmoke-test the stdio server locally:
INSITO_API_KEY=insk_… node dist/index.jsLicense
MIT
