obsei MCP
Customer feedback analysis on your own server: personal data is stripped before the model, and an MCP server and skill give the agent quotes from reviews
- 1,440 ★ on the repository
- Last commit
- Apache-2.0
Extended access
Why this level
- The MCP tools read the customer review database, where personal data is stripped but the texts remain someone else's input
- Running obsei run goes out to sources with your keys over the network and sends results to Slack, Jira, Linear or GitHub
Install
- Works in
Manual install
/plugin install obsei --marketplace obsei/obseiThe plugin installs the MCP server and the voice-of-customer skill. Set up obsei before use: obsei init and obsei run.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The MCP tools read the customer review database, where personal data is stripped but the texts remain someone else's input
- Running obsei run goes out to sources with your keys over the network and sends results to Slack, Jira, Linear or GitHub
This is third-party code. Review the repository files before installing.
What it does
obsei is an open source platform for analyzing customer feedback that runs on your own server. In a new folder you run obsei init, add sources with obsei add (App Store, Google Play, Zendesk, GitHub issues, IMAP mail, CSV, REST and others) and run obsei run. The tool pulls the reviews, strips email addresses, phone numbers, card numbers and IBANs, replaces authors with pseudonyms, labels sentiment, intent and language, and saves the result in an encrypted DuckDB database. For agents the repository holds a plugin. Its MCP server starts with obsei mcp over stdio and offers five tools: list_themes, feedback_stats, search_feedback, get_feedback and propose_issue. The voice-of-customer skill walks the agent through the steps: themes first, then volumes by sentiment, source or language, then a quote search, including in customers' own languages, and an answer with quotes and record ids like rec_. propose_issue only queues a task, and a person can approve it with obsei approvals approve. The labeling model is either local, a classifier inside the process, or comes from Ollama, vLLM, Azure OpenAI, OpenAI, Bedrock and Vertex through LiteLLM. Requests to public addresses are refused until you choose OBSEI_EGRESS_MODE=private or hybrid.
Who it is for. For product managers, analysts and support teams who go through reviews and tickets with Claude Code, Codex or Gemini CLI and cannot send customer text to outside services.
Good fit when
- You want to ask an agent what customers write in App Store reviews and tickets and get an answer with quotes and record ids
- Customer text cannot go to an outside service or a public model, so the analysis must run on your own server
- Reviews from app stores, Zendesk, mail and CSV need to land in one database and be grouped into themes across languages
- An agent should propose tasks in GitHub, Jira or Linear for the problems it finds, with a person approving them
- You need alerts in Slack or Teams when a review theme spikes
Not a fit when
- You need a ready cloud service: obsei is installed and configured by you and requires Python 3.11 or newer
- An agent should change tickets and tasks on its own: the MCP tools only read, and writing goes through an approval queue
- You work on version 0.0.x: release 1.0 is a rewrite and incompatible with it, and the old code lives in the legacy/0.0.x branch
- You need a Reddit source out of the box: it ships as an unpublished community plugin installed from Git
Example request
What have customers written about logging in over the last month? Give three quotes in the original language with record idsMCP
- Transport
- stdio
- Authentication
- not required
Environment variables
OBSEI_CONFIGrequired- Absolute path to the obsei.yaml file
OBSEI_DB_KEYsecret- Database encryption key, needed if there is no .obsei/secrets.env next to obsei.yaml
Limitations
- Version 1.0 was released on 2026-10-15. The author maintains the project in spare time with heavy automation, and new features appear only if a community contributor takes them on.
- obsei is not yet in the official plugin directories of Claude Code, Codex or other agents, so the plugin installs straight from the repository.
- The plugin does not collect reviews. Before connecting MCP you need an obsei.yaml file and a database after obsei run, otherwise there is nothing to read. The database key OBSEI_DB_KEY sits in .obsei/secrets.env or is set as an environment variable.
- Personal data redaction looks for email addresses, phone numbers, cards, IBANs and national IDs from 16 countries; names are redacted only with obsei[names] installed. The author makes no GDPR, DPDP, LGPD or CCPA compliance claims: the controls only help, and you remain the data controller.
- Without obsei[embeddings] the offline model groups reviews by wording, and each language forms its own themes.
- Apache-2.0 license.
How to disable. Remove the obsei plugin through the /plugin menu in Claude Code or delete the obsei server from your client's MCP settings. The data stays in the project folder: the key and database are in .obsei, and information about people can be erased with obsei forget.
FAQ
How do I connect obsei to Claude Code?
Run /plugin install obsei --marketplace obsei/obsei. The plugin brings the MCP server and the voice-of-customer skill. For any other MCP client, start the server with uvx --from "obsei>=1.0" obsei mcp.
How does obsei protect personal data in reviews?
The DuckDB database is encrypted with the OBSEI_DB_KEY key, authors are replaced with salted pseudonyms, and there is no telemetry. The `obsei forget`, `obsei export` and `obsei audit` commands erase records, export them and show the audit log.
Can the agent create a Jira or GitHub task from reviews by itself?
No. The propose_issue tool only places a proposal in the approval queue and returns an id. A person creates the task after approving it with obsei approvals approve.
What happens if a review contains an instruction for the agent?
Customer text in MCP replies is marked untrusted: true, and the skill requires not following instructions found in it. The agent quotes the review and gives the record id so the quote can be checked with get_feedback.
Can I analyze reviews without the cloud and outside models?
Yes. By default the classifier runs inside the process on the CPU, the database is encrypted, there is no telemetry, and requests to public addresses are refused until you pick private or hybrid in OBSEI_EGRESS_MODE.
Discussion
No questions or reviews yet.
Related
MCP serversUnofficial Checko.ru MCP server for counterparty checks: EGRUL, EGRIP, financials, court cases, state contracts and bankruptcies
MCP server and skills for product analytics: user paths, funnels, segments and transition graphs over event logs
MOEX ISS and risk analytics MCP
MOEX Market Analyst Agent (OpenRouter + MCP)
Two MCP servers for MOEX data and portfolio risk from a multi-agent MOEX analyst project: quotes, VaR and CFO reports
A read-only Python MCP server for the official Moscow Exchange ISS API: stocks, bonds, FORTS futures and dividends
An MCP server with a toolbox for global briefs: markets, SEC filings, conflict, climate and news from open sources
MOEX MCP server with caching and retries
MOEX MCP сервер
An npm-published Moscow Exchange ISS MCP server with 10 tools, SQLite caching and resilient request retries
README in short
The description starts with the principles: privacy by default, your own sources and models, work through agents, many languages. Then come a quick start with obsei commands, a table of built-in sources, sinks and kinds of analysis, plugin installation for Claude Code, Codex, Copilot CLI and Gemini CLI, and a roadmap section. The repository has the packages/obsei package with tests, a gallery of example configs, llms.txt and llms-install.md files for agents, documentation and a blog.