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.1
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.1.tar.gz | 106.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| compethic_mcp-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 128.5 kB
Release files / compethic_mcp-0.1.1.tar.gz
| Download URL | compethic_mcp-0.1.1.tar.gz |
|---|---|
| Size | 106.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9d7e40a2c3aaeb5c892f42f9c45747c50f9372891b7a5f6352995c54a17f4d56
|
|
BLAKE2b-256 checksum How to use checksums |
4c604c6df1426acee95068cfd85e59e2df3a41aa8dfddcc96f6dcd759f9851cd
|
| 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.1-py3-none-any.whl
| Download URL | compethic_mcp-0.1.1-py3-none-any.whl |
|---|---|
| Size | 22.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8f3f92672c4b3f31df8e1252d17b0fac4e5fecd6124de63f46cd46d2256911a2
|
|
BLAKE2b-256 checksum How to use checksums |
cdd6e6bffe8c8e5774620cc50f3e66b4e6df1a66120e323238c0f75168ffd09b
|
| 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}
|