audiencescore

audiencescore

Reference MCP server for the AudienceScore protocol: query a vendor's audience score (percent of verified thumbs-up over receipt-gated reviews) and get back a signed, recomputable score manifest an agent can verify without trusting the server.

Category
Visit Server

README

AudienceScore

The open rating system where every review is proven — scores no one can buy.

CI License: Apache-2.0 Spec: CC BY 4.0 Data: ODbL

AudienceScore is an open protocol for reviews gated by cryptographic proof of participation. A provider signs a receipt when a real transaction or verified participation happens; that receipt is the only thing that can unlock a review; published scores are deterministic, recomputable renderings over the raw review ledger. No receipt, no review. No exceptions, no purchased placement.

Today's review systems fail in one of two ways: anyone can review anything (astroturf, review farms, extortion), or a platform quietly decides what counts (unaccountable moderation, pay-to-play). AudienceScore replaces both with math: standing to speak costs a real transaction with — or verified time spent on — the thing being reviewed, and every published score can be recomputed by anyone from public data.

Status

Spec v0.2 rev A implemented; not yet a release. See spec/ for the normative document and the adversarial review that shaped it, and DRIFT.md for how v0.1 reality was reconciled with it. Two gates remain open before any receipt signs a real transaction:

  1. Independent cryptographic review of the receipt scheme — self-reviewed crypto is how protocols die, and this repository does not satisfy that gate.
  2. Per-vertical legal review before any regulated-vertical profile (finance, healthcare) ships. Verticals are profiles, never forks; the first profile (education) will follow the protocol, not modify it.

No live data is being collected. If you build agents, review-integrity tooling, or commerce infrastructure, your critique of the spec is exactly what this stage is for — open an issue.

Quickstart (60 seconds)

Requires Node.js 18+ (Node 24+ for the v0.2 store and acceptance suite). The demo has no dependencies to install:

git clone https://github.com/audiencescore/audiencescore.git
cd audiencescore
node reference-impl/demo.js

To run the full v0.2a acceptance suite (AT-1..AT-25, one pinned dependency):

cd reference-impl && npm ci && npm test

How it works

  1. Issuers attest. When value moves or participation happens, the provider (co-attested by payment rails or platforms where available) automatically signs an Ed25519 receipt binding a pseudonymous holder to a versioned offering. Issuance is never discretionary: if the transaction event fires, the receipt exists.
  2. Holders review. A receipt unlocks exactly one review of exactly that offering-version. Roles matter: payers can rate value; participants can rate everything, including declared components (instructor, curriculum, platform…).
  3. The protocol renders. Scores are versioned pure functions over the raw ledger — recomputable byte-for-byte by anyone. Entities (instructors, institutions, curricula) are never reviewed directly; their scores are derived from every offering they ever appeared in, forever. New offering IDs never reset history.

For the superseded v0.1 agent-flow walkthrough — how a complaint to your assistant becomes a signed, receipt-gated verdict without a form ever existing — see How a review actually happens.

The attestation ladder

L1 TRANSACTED (value moved) → L2 ENGAGED (verified use) → L3 COMPLETED (finished or kept) → L4 OUTCOME (verified external result). Levels are independent: free offerings enter at L2+, labeled verified participant rather than verified purchaser. Standing only ascends. Refunds and withdrawals never revoke standing — a verified-refund one-star is signal, not noise. Every published score discloses its level mix, role mix, and completion rate, and always publishes both an all-verified view and a completer view.

Protocol invariants (health-checked)

No orphan reviews or receipts. Receipt issuance reconciles against attested transaction volume. Standing never descends. Every score recomputes byte-identical from raw data. The ledger is append-only at the storage layer. Facet scores only against declared components. Nothing publishes below a k-anonymity threshold of distinct receipts. Each invariant is wired into an automated health check, and the acceptance suite seeds a violation of each one to prove its alarm fires.

Privacy

Holders are pseudonymous with per-issuer derived keys — issuers cannot collude to build cross-provider participation graphs, and no holder→offering directory exists anywhere in the protocol. Participation itself is often sensitive; the protocol is designed so reviewing never requires disclosing that you enrolled.

Conformance

conformance/ contains signed test vectors and a reference verifier. An implementation is conformant only if it accepts every valid vector, rejects every invalid one, and reproduces canonical serialization byte-for-byte. The acceptance criteria live in tests/ACCEPTANCE-TESTS.md; every numbered test exists as an executable test in CI.

Repository layout

Path Contents License
/spec Protocol spec v0.2a and its adversarial review CC BY 4.0
/protocol Superseded v0.1 event and receipt wire specifications CC BY 4.0
/score-spec Rendering v1 score math plus superseded v0.1 math CC BY 4.0
/conformance Signed test vectors and the reference verifier CC BY 4.0
/tests The acceptance-test register (AT-1..AT-25) CC BY 4.0
/reference-impl Node.js reference implementation + MCP server Apache-2.0
/data-commons Open-data licensing and mirror tooling ODbL
/docs Rendered documentation CC BY 4.0

Licensing, deliberately

Three artifacts, three licenses: code under Apache-2.0 (the explicit patent grant matters for protocol work), specifications under CC BY 4.0, and the future event data commons under ODbL so mirrors must share improvements back.

What is open, what is not

Everything that computes a score is open, forever: the event schema, the signing rules, the append-only log, every admitted event, the score function, and the moderation log. The one exception is a small set of operator-side anti-fraud admission checks, which are run as a service and never shipped — published here as cryptographic commitments and revealed on retirement. GOVERNANCE.md is the constitution that fixes that boundary and the accountability machinery around it.

Contributing

Read spec/SPEC-v0.2a.md before proposing changes. Anything touching receipts, invariants, or renderings requires a spec change first — code never leads spec in this repository. Spec changes start with an RFC issue; code changes need tests and a DCO sign-off. See CONTRIBUTING.md. Security reports: SECURITY.md.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured