Compethic MCP Server
Cursor and Claude Desktop MCP server that reads Compethic feedback, taxonomy, and analytics through the Compethic API. Tools mint a gateway-client JWT and call product GETs with organization_id taken from that JWT.
Prerequisites: install uv
The package runs via uvx (part of uv). Install uv using the official installer — see Installation.
macOS and Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
After install, open a new terminal and confirm:
uvx --version
Preferred setup (dashboard)
- In the Compethic dashboard: Settings → Data Analysis → MCP.
- Create client — read-only scopes are applied by default. The secret is shown once.
- Click Add to MCP (Cursor / generic hosts) or Add to Claude (inner entry for merging).
- Restart the MCP connection in that host.
If the secret is lost, revoke the client and create a new one. The hashed secret cannot be shown again.
Manual host config
Use gateway-client credentials from the dashboard. Set DATALAYER_API_URL to https://api.compethic.no (no trailing slash).
Args use compethic-mcp without a version pin so uvx resolves the latest release on PyPI.
Claude Desktop
Edit claude_desktop_config.json and add the compethic entry under mcpServers:
{
"mcpServers": {
"compethic": {
"command": "uvx",
"args": ["compethic-mcp"],
"env": {
"DATALAYER_API_URL": "https://api.compethic.no",
"COMPETHIC_CLIENT_ID": "00000000-0000-0000-0000-000000000000",
"COMPETHIC_CLIENT_SECRET": "ce_live_..."
}
}
}
}
If you already have other servers, merge only the compethic object into your existing mcpServers block — do not nest a second mcpServers key.
Cursor (and other stdio hosts)
.cursor/mcp.json (or equivalent) — include "type": "stdio" so URL-based defaults do not override the command:
{
"mcpServers": {
"compethic": {
"type": "stdio",
"command": "uvx",
"args": ["compethic-mcp"],
"env": {
"DATALAYER_API_URL": "https://api.compethic.no",
"COMPETHIC_CLIENT_ID": "00000000-0000-0000-0000-000000000000",
"COMPETHIC_CLIENT_SECRET": "ce_live_..."
}
}
}
}
Do not put a personal session token or service key in these files.
Environment
| Variable | Required | Notes |
|---|---|---|
DATALAYER_API_URL |
yes | https://api.compethic.no (no trailing slash). |
COMPETHIC_CLIENT_ID |
yes | UUID from Create client in the dashboard. |
COMPETHIC_CLIENT_SECRET |
yes | Must start with ce_live_. |
COMPETHIC_HTTP_TIMEOUT_SECONDS |
no | Default 30. |
COMPETHIC_TOKEN_REFRESH_SKEW_SECONDS |
no | Default 60. Remint when exp - skew has passed. |
COMPETHIC_MCP_CATEGORIES |
no | Comma-separated subset of org,entities,taxonomy,feedback,analytics,customers,nps,summaries. Unset = all 8. |
Transport
Hosts spawn uvx compethic-mcp as a stdio subprocess with the env vars above. Use the JSON config blocks in this README or the dashboard copy buttons — do not paste stdio JSON into a URL-only MCP field.
Tools (11)
org_get, entities_list, taxonomy_list, taxonomy_mentions, feedback_list, feedback_aggregates, analytics_get, customers_list, customers_churn, nps_get, summaries_get.
OAuth, writes, and internal admin surfaces are not exposed through this server.
Smoke
After wiring, call org_get with view=info, then taxonomy_list with type=strategic-themes.
Release files for compethic-mcp 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| compethic_mcp-0.1.2.tar.gz | 111.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| compethic_mcp-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 136.0 kB
Release files / compethic_mcp-0.1.2.tar.gz
| Download URL | compethic_mcp-0.1.2.tar.gz |
|---|---|
| Size | 111.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
469e47276a51bfefe11e052389e9fb2424935334cc66a5610ab70cb59167c346
|
|
BLAKE2b-256 checksum How to use checksums |
19776a3277f9f5b6634230f2915f9acfdbad0c3d97e30b78509586591ab18d0e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / compethic_mcp-0.1.2-py3-none-any.whl
| Download URL | compethic_mcp-0.1.2-py3-none-any.whl |
|---|---|
| Size | 24.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0a09ad92a226aee8c42ac82944947b4b9efefde1e5ef736176ea3667bd574d11
|
|
BLAKE2b-256 checksum How to use checksums |
a100a18c2359c1855db9465127c339a3c7962af819cfdcb4e064c0efaf231889
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|