Likerts

Registre officiel Autres

Manage open-source in-product surveys, collections, responses and exports with scoped access.

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

Remote (streamable-http)
Claude Code
claude mcp add --transport http likerts 'https://likerts-mcp.onrender.com/mcp/{workspaceId}' --header 'Authorization: <Bearer followed by your workspace'\''s scoped service credential.>'
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "likerts": {
            "type": "http",
            "url": "https://likerts-mcp.onrender.com/mcp/{workspaceId}",
            "headers": {
                "Authorization": "<Bearer followed by your workspace's scoped service credential.>"
            }
        }
    }
}
NPM package @likerts/mcp
Claude Code
claude mcp add likerts -e 'LIKERTS_API_URL=https://likerts-api.onrender.com' -e 'LIKERTS_TOKEN=<your likerts_token>' -e 'LIKERTS_COLLECTION_TOKEN=<your likerts_collection_token>' -- npx -y @likerts/mcp@0.1.0
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "likerts": {
            "command": "npx",
            "args": [
                "-y",
                "@likerts/mcp@0.1.0"
            ],
            "env": {
                "LIKERTS_API_URL": "https://likerts-api.onrender.com",
                "LIKERTS_TOKEN": "<your likerts_token>",
                "LIKERTS_COLLECTION_TOKEN": "<your likerts_collection_token>"
            }
        }
    }
}

Variables d'environnement

  • LIKERTS_API_URL obligatoire Your Likerts API origin. Requires HTTPS outside exact loopback development hosts.
  • LIKERTS_TOKEN obligatoire secret Workspace-bound service credential with only the scopes needed by this agent.
  • LIKERTS_COLLECTION_TOKEN secret Optional collection credential for collection configuration and response submission only.

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. Likerts
  2. What is included
  3. Try a real embedded survey
  4. Install in your application
  5. Run with durable local storage
  6. Run the API locally
  7. Verify
  8. Repository map
  9. Security model
  10. License
  11. Contribute

Likerts

Likerts is a free, open-source backend for surveys embedded in your own web and mobile products. It provides one typed platform through HTTP, MCP and a Rust CLI, with SDKs for Web, React Native, iOS, Android and Flutter.

Download the community release · Installation guide · Contribute

Likerts does not host respondent links or send invitations. Your application decides when a survey appears and supplies the customer context. Likerts validates the published schema, stores the response, returns an idempotent receipt and makes the data available through scoped reads, exports and signed callbacks.

There are no response credits, paid plans, license keys or application-level response quotas. Accepted-response counts are observability data only. Operators still configure request rates, payload bounds, storage capacity and concurrency to protect their infrastructure.

What is included

  • Nine question types: single choice, multiple choice, scale, text, number, date, ranking, matrix and constant sum
  • NPS and yes/no presets, conditional visibility, pages and branching
  • Immutable published survey versions and collection credentials
  • PostgreSQL row-level security for workspace isolation
  • Scoped service credentials and OAuth grants
  • Stable response pagination, privacy-safe aggregates and chart-ready analysis
  • Bounded exports, retention and erasure
  • Signed response webhooks
  • API, MCP and CLI operation parity
  • Five client SDKs with encrypted offline queue adapters

Try a real embedded survey

Clone the repository, then run:

git clone https://github.com/crosstabs/likerts.git
cd likerts
bash scripts/run-feedback-demo.sh

Open http://127.0.0.1:4310. Answer the survey, then retrieve the matching response and metadata in the operator view. The example uses the real Web SDK, Rust API and CLI. It requires Rust stable, Node.js 22+ and Bash; temporary memory storage clears when you stop it.

Watch the 40-second walkthrough · Example source and instructions · Versioned downloads and installation

Install in your application

npm install @likerts/web
# For a React Native application:
npm install @likerts/react-native
# For a local MCP client:
npm install --global @likerts/mcp

These are client packages; connect them to your Likerts API using the SDK guides or MCP setup. Runnable Next.js, Vue and Svelte hosts demonstrate explicit mounting, cleanup and safe retry of an ambiguous submission. See the installation guide for versions, compatibility and native SDK source.

Follow the tested checkout feedback walkthrough to attach metadata and retrieve a real receipt, or the MCP lifecycle walkthrough to create, publish and manage a survey with scoped tools.

Run with durable local storage

With Docker Compose and OpenSSL installed:

bash infrastructure/local/compose.sh up --build --detach --wait
curl --fail http://127.0.0.1:8080/health

The local guide takes you through your first stored response, stop/restart and explicit reset. For an automated clean-consumer rehearsal using the published CLI and Web SDK, run node scripts/check-newcomer.mjs; see prerequisites and verification boundaries. The API binds only to loopback and PostgreSQL data survives container recreation. This setup uses development authentication; follow the self-host operations guide before any public deployment.

Run the API locally

You need Git, Rust stable, Node.js 22+, Bash and jq. The memory store is intended for a disposable local loop; PostgreSQL is required for durable deployments.

git clone https://github.com/crosstabs/likerts.git
cd likerts
source scripts/dev-env.sh
export LIKERTS_DEV_TOKENS='{"local-demo-management-token":"demo"}'
export LIKERTS_ALLOW_MEMORY=1
export LIKERTS_ADMISSION_MODE=disabled
cargo run --manifest-path backend/Cargo.toml --locked

The API listens on http://127.0.0.1:8080. In another terminal:

source scripts/dev-env.sh
export LIKERTS_API_URL=http://127.0.0.1:8080
export LIKERTS_TOKEN=local-demo-management-token
cargo run --manifest-path tools/cli/Cargo.toml --locked -- capabilities
bash scripts/first-response.sh

The script creates and publishes a survey, creates a collection, submits one response twice with the same idempotency key, verifies one stored response, and prints the receipt. The capability reference documents every API, MCP and CLI operation. Tool setup covers the CLI and MCP server.

For PostgreSQL, set DATABASE_URL and use a migration-capable local account with LIKERTS_RUN_MIGRATIONS=1. Production should run migrations separately and connect the API with the restricted runtime role in backend/provision-runtime.sql.

Verify

bash scripts/check.sh
bash scripts/check-postgres.sh
bash scripts/check-all-sdks.sh

The checks cover domain validation, interface parity, tenant isolation, durable idempotency, response lifecycle and all five SDK implementations.

Repository map

DirectoryResponsibility
backend/Rust API, domain validation, PostgreSQL repositories and migrations
contracts/OpenAPI, survey schemas and cross-platform fixtures
tools/mcp/Typed MCP adapter
tools/cli/Rust CLI
sdks/Web, React Native, iOS, Android and Flutter SDKs
control-plane/Public site, documentation and optional hosted workspace UI
infrastructure/Render, recovery, export and webhook deployment assets

Security model

A collection credential can fetch one immutable collection and submit responses to it. Management credentials are workspace-bound and explicitly scoped. PostgreSQL row-level security enforces tenant boundaries beneath the application layer. Browser origins are policy controls and do not replace authentication.

Never put a management credential in a browser or mobile app. Treat metadata as untrusted input and avoid sending secrets or unnecessary personal data. See SECURITY.md for reporting and deployment guidance.

License

Likerts is available under the MIT License.

Contribute

Start with the contribution guide and community roadmap. Pick a good first issue, explore help wanted tasks, or describe your integration in Discussions.

Bug reports, documentation fixes and reproducible integration examples are useful contributions. Each area has focused checks so you can contribute without installing every mobile toolchain. See our code of conduct and maintainer process. For setup problems, see support and troubleshooting.

Questions fréquentes

Qu'est-ce que Likerts ?

Manage open-source in-product surveys, collections, responses and exports with scoped access.

Comment installer Likerts ?

Il fonctionne comme serveur distant. Dans Claude Code : claude mcp add --transport http likerts 'https://likerts-mcp.onrender.com/mcp/{workspaceId}' --header 'Authorization: <Bearer followed by your workspace'\''s scoped service credential.>'. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour Likerts ?

Oui. Il attend LIKERTS_API_URL, LIKERTS_TOKEN, LIKERTS_COLLECTION_TOKEN, Authorization, à renseigner dans sa configuration.

Likerts est-il open source ?

Oui. Son code est sur GitHub sous licence MIT.

Qui maintient Likerts ?

Il est publié par crosstabs. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.