Skip to main content

Sentor MCP Server

Sentor Logo

Entity-based sentiment analysis for Claude, Cursor, Windsurf, and any MCP-compatible AI assistant.

PyPI Python License GitHub Stars
Website Dashboard Docs

Sentor is an entity-based sentiment analysis platform powered by fine-tuned BERT models. This MCP server exposes Sentor's ML APIs as tools your AI assistant can call directly — score sentiment toward specific entities in text, cluster documents by topic, and generate topic labels, all from a single natural-language prompt.


Table of Contents


🎯 What It Does

Once connected, your AI assistant gains four tools:

Tool What it does
analyze_sentiment Score sentiment toward named entities (brands, products, features, people) in one or more documents. Returns per-document and per-sentence breakdowns.
cluster_documents Group 5+ documents into thematic clusters using BERTopic + HDBSCAN. Automatically discovers the number of clusters.
name_topic Generate a 3–5 word descriptive label for each cluster using an LLM (e.g. "Shipping Delay Complaints").
health_check Verify the Sentor API is reachable and ML models are loaded.

Example prompt after setup:

"Analyse these 50 customer reviews for sentiment toward our checkout flow and delivery speed. Then cluster them by topic and name each cluster."


📋 Requirements


🚀 Quick Start

Claude Desktop

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "sentor": {
      "command": "uvx",
      "args": ["sentor-mcp"],
      "env": {
        "SENTOR_API_KEY": "your_api_key_here"
      }
    }
  }
}

Restart Claude Desktop. A hammer icon appears in the tool selector — Sentor is ready.

No uvx? Install it with pip install uv, or use sentor-mcp directly after pip install sentor-mcp.


Cursor / Windsurf

Add to .cursor/mcp.json (project-level) or ~/.cursor/mcp.json (global):

{
  "mcpServers": {
    "sentor": {
      "command": "uvx",
      "args": ["sentor-mcp"],
      "env": {
        "SENTOR_API_KEY": "your_api_key_here"
      }
    }
  }
}

Claude.ai Web (Remote MCP)

Run the HTTP server and connect by URL:

docker run -e SENTOR_API_KEY=your_api_key -p 8080:8080 ghcr.io/nikx-tech/sentor-mcp:latest

Then in Claude.ai → Settings → Integrations → Add MCP Server:

http://your-server:8080/sse

🔧 Tools Reference

analyze_sentiment(docs, language="en")

Analyse entity-level sentiment in one or more documents.

docs = [
    {
        "doc_id": "review-1",
        "doc": "The delivery was fast but the packaging was completely crushed.",
        "entities": ["delivery", "packaging"]
    }
]
# Returns: predicted_label, probabilities, per-sentence details

Supported languages: en (English), nl (Dutch)


cluster_documents(documents, language="en")

Group documents into thematic clusters. Requires at least 5 documents.

documents = [
    {"doc_id": "r1", "text": "Great product quality, very happy.", "entities": ["product"]},
    # ... at least 5 documents
]
# Returns: clusters with cluster_id, document_count, documents, top_words
# Cluster -1 = outliers that did not fit any topic

name_topic(cluster_id, documents, top_words, entities, language="en")

Generate a short label for a cluster. Pass data directly from cluster_documents output.

name_topic(
    cluster_id=0,
    documents=cluster["documents"],
    top_words=cluster["top_words"],
    entities=["BrandName"],  # exclude your brand from the label
    language="en"
)
# Returns: { "topic_name": "Shipping Delay Complaints", "generation_method": "LLM" }

health_check()

# Returns: { "status": "healthy", "version": "1.0.0", "llm_status": "available" }

💬 Usage Examples

Single document:

"Use Sentor to analyse the sentiment of this review toward Apple and iPhone: [paste text]"

Batch analysis:

"I have 100 customer reviews. Use Sentor to score sentiment toward 'delivery' and 'support' in each one, then tell me the ratio of positive to negative."

Full pipeline:

"Use Sentor to: 1) analyse sentiment in these 200 reviews for 'product quality' and 'price', 2) cluster them by topic, 3) name each cluster, 4) summarise the findings."

Competitive analysis:

"Analyse these tweets for sentiment toward Apple, Samsung, and Google separately using Sentor, then compare the results."


📊 Rate Limits

Plan Per Minute Per Day Per Month Projects AI Reports
Free 5 100 1,000 3 2/month
Starter 20 600 5,000 5 15/month
Growth 60 3,000 25,000 15 50/month
Business 200 10,000 100,000 50 200/month
Enterprise 500 30,000 500,000 Unlimited Unlimited

View full pricing →


🐳 Remote Deployment

Run as a hosted HTTP/SSE server for AI tools that support remote MCP endpoints.

Docker:

docker build -t sentor-mcp .
docker run \
  -e SENTOR_API_KEY=your_key \
  -p 8080:8080 \
  sentor-mcp

The server exposes:

  • GET /sse — SSE stream (MCP transport)
  • POST /messages — message endpoint

Environment variables:

Variable Default Description
SENTOR_API_KEY Required. Your Sentor API key.
SENTOR_BASE_URL https://sentor.app/api Override to point at a self-hosted Sentor instance.
PORT 8080 HTTP server port.

🔗 Links


Built by NIKX Technologies B.V.

Release files for sentor-mcp 1.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sentor-mcp 1.0.5
File Size Uploaded
sentor_mcp-1.0.5.tar.gz 22.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sentor-mcp 1.0.5
File Interpreter ABI Platform
sentor_mcp-1.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 30.7 kB

Release files / sentor_mcp-1.0.5.tar.gz

Download URL sentor_mcp-1.0.5.tar.gz
Size 22.3 kB
Tags Source
SHA-256 checksum
How to use checksums
480c569da5589dba0f8c8614f4830cb509e3ad9fc0339c91ee3d6f23b083c532
BLAKE2b-256 checksum
How to use checksums
afb78ffbfbec78ba9fefd4ddbe0857a6979f3bb135b49e1ceb98a0b4c2e7f677
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 22, 2026.

Transparency log

Release files / sentor_mcp-1.0.5-py3-none-any.whl

Download URL sentor_mcp-1.0.5-py3-none-any.whl
Size 8.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
306824f9627c9cb4d172450c4a512497572c04af6c870fd16882ed2b8b0ffec2
BLAKE2b-256 checksum
How to use checksums
1e7a39dd3782ef7930ecc03f600bdb30c771327b68db6c287880fe67effb6b27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 22, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.5 This release

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page