CLI for JABB Public API v1 — locations, CX scores, reviews, PNIF, sentiment.
Project description
jabb
CLI for JABB Public API v1 — locations, CX scores, reviews, PNIF, sentiment. A thin wrapper: every command is one HTTP GET, no business logic.
Install
pip install -e .
Quickstart
export JABB_API_KEY=jabb_test_...
jabb locations list
Time to first result: under 5 minutes from a minted key.
Usage
jabb [--json] [--detailed] <resource> list [--cursor <opaque>] [--limit <1-100>]
Resources: locations, scores, reviews, pnif, sentiment.
--json— print the raw API envelope ({"data": [...], "next_cursor": ...}) instead of a table. Use for scripting/agents.--detailed— request more fields per row (costs more tokens/bandwidth).--cursor— pass the previous response'snext_cursorto page forward.--limit— rows per page, 1-100, default 20.
Examples:
jabb scores list --detailed
jabb reviews list --limit 5
jabb pnif list --json
jabb locations list --cursor eyJwIjo... --limit 50
Auth
Set JABB_API_KEY to a key minted by your JABB admin (jabb_live_... in production, jabb_test_... for sandbox). No config file, no --api-key flag — env var only, so keys don't land in shell history.
For local development against a jabb-server instance running on your machine:
export JABB_API_BASE_URL=http://127.0.0.1:5500
Default base URL is https://api.jabb.cx. There is no automatic failover to api.jabb.pro — that host runs a separate, diverged database, and silently reading from it would risk returning stale data.
Exit codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Generic API error |
| 2 | Auth/config error (missing/invalid/revoked key, wrong scope) |
| 3 | Rate limited (message includes retry-after seconds) |
MCP server (agent integration)
jabb mcp starts a stdio MCP server that exposes the same 5 resources as agent tools, so any MCP host (Claude Code, Claude Desktop, Cursor…) can query your JABB data with nothing but an API key.
Tools exposed
| Tool | When to call |
|---|---|
jabb_list_locations |
User asks about branches/stores or needs location IDs |
jabb_get_cx_scores |
User wants quantitative CX quality metrics |
jabb_list_quick_jabbs |
User wants individual evaluation content / verbatim feedback |
jabb_get_pnif |
User asks for Price/Need/Impact/Frequency breakdown |
jabb_get_sentiment |
User asks for sentiment labels or topic-level trends |
All tools accept cursor, limit, response_format ("concise" | "detailed"). jabb_get_pnif and jabb_get_sentiment also accept language (ISO 639-1: en/fr/ar).
Responses are capped at ~25 KB. When truncated, the payload includes "truncated": true and preserves the original next_cursor so the agent can page forward.
API errors are returned as tool errors carrying the API's code + hint verbatim. 429 errors also include Retry-After seconds.
Connect from Claude Code
# One-time setup (project scope):
claude mcp add jabb -- jabb mcp
Or add a project-scope .mcp.json at your repo root:
{
"mcpServers": {
"jabb": {
"command": "jabb",
"args": ["mcp"],
"env": {
"JABB_API_KEY": "${JABB_API_KEY}"
}
}
}
}
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"jabb": {
"command": "jabb",
"args": ["mcp"],
"env": {
"JABB_API_KEY": "jabb_live_..."
}
}
}
}
Environment variables
| Variable | Required | Default | Description |
|---|---|---|---|
JABB_API_KEY |
Yes | — | API key minted by your JABB admin |
JABB_API_BASE_URL |
No | https://api.jabb.cx |
Override for local dev |
For Claude Code users
See skills/jabb-cx/SKILL.md — copy it into your project's .claude/skills/jabb-cx/ to let Claude Code drive this CLI directly when you ask about your CX data. The MCP server (jabb mcp) is an alternative path that works with any MCP-capable host without the skill.
Scope
Read-only. list operations against 5 resources, nothing else. No write/create/update commands exist.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jabb_cli-0.2.0.tar.gz.
File metadata
- Download URL: jabb_cli-0.2.0.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09e09dab7c89404471c9d9c6a69c8ebba69780d19618b02237e98fa11cad52d2
|
|
| MD5 |
f54a6d9cb4830dd8150769d0973cd94d
|
|
| BLAKE2b-256 |
2046e8c6ab589411fec466d8810e67f335c5f3ce815326844fe2d04ec1993454
|
File details
Details for the file jabb_cli-0.2.0-py3-none-any.whl.
File metadata
- Download URL: jabb_cli-0.2.0-py3-none-any.whl
- Upload date:
- Size: 9.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b75c0a1a551ffe21e75dfd6428b7b54e4156b3ccee35ec3ed0d3862bddae15c1
|
|
| MD5 |
220fb01fe6f576f5724b56f26e80a7b9
|
|
| BLAKE2b-256 |
68eafed466097cb1617408133ad68936664c43948a4d76acfed93e216307d81a
|