Visceral Consignment MCP Server
Official MCP server for the Visceral Consignment external API v1 — lets Claude (or any MCP client) answer questions about a shop's consignors, payouts, and payout line items in plain English.
Read-only. Every tool call is an authenticated HTTPS request to the
external REST API (/api/external/v1/), so the shop's API-key scoping,
tenant isolation, rate limits, usage metering, and secure-field masking all
apply unchanged. Bank details and other secure fields are always masked and
cannot be revealed through this server.
Prerequisites
- The external API enabled for the shop (pilot: enabled by Visceral support).
- A read-only API key: in Visceral, Settings → API → Create key. Name it for the tool that will use it (e.g. "Claude assistant") — usage is tracked per key and you can revoke it independently at any time.
Configuration
| Environment variable | Required | Meaning |
|---|---|---|
VISCERAL_API_KEY |
yes | The vsk_... key from Settings → API |
VISCERAL_API_URL |
no | API base URL. Default: https://b.visceralapps.com/api/external/v1 |
Install & run
With uv (recommended — installs in one command and manages its own Python, so no Python setup is needed):
uvx visceral-consignment-mcp
Or with pip:
pip install visceral-consignment-mcp
visceral-mcp
The server speaks MCP over stdio (the standard transport for desktop clients).
Claude Desktop
Add to claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": {
"visceral-consignment": {
"command": "uvx",
"args": ["visceral-consignment-mcp"],
"env": {
"VISCERAL_API_KEY": "vsk_your_key_here"
}
}
}
}
Claude Code
claude mcp add visceral-consignment \
--env VISCERAL_API_KEY=vsk_your_key_here \
-- uvx visceral-consignment-mcp
Then ask things like:
"Which consignors haven't had a completed payout since July?" "Summarize payout #918 — what sold and what did the consignor earn?" "How much did we pay out in total last month?"
Tools
| Tool | Purpose |
|---|---|
get_shop_info |
Confirm the connection: shop, key scopes, rate-limit headroom |
list_consignors |
Search/filter consignors (search, email, active, updated_since) |
get_consignor |
One consignor's full record (secure fields masked) |
list_payouts |
Filter payouts (status, consignor_id, processed_since, …) |
get_payout |
One payout's summary |
get_payout_line_items |
The sold items behind a payout, matching the CSV export |
Behavior notes
- Money values are decimal strings (
"184.50") — the server instructs clients never to treat them as floats. - On a short rate-limit (
429withRetry-After≤ 15s) the server waits and retries once; longer waits surface as a readable error telling the model how long to pause. - Versioned with the external API: these tools track v1 and follow the same early-access stability contract (see the External API v1 guide).
Development
Source lives in src/visceral_mcp/server.py — one @mcp.tool() per
endpoint, a shared _get() helper for auth/errors/rate-limit handling.
python -m venv .venv && .venv/bin/pip install -e ".[dev]"
.venv/bin/pytest tests/ -q
Tests inject an httpx.MockTransport via server._transport and call the
tool functions directly (the @mcp.tool() decorator returns the plain
function) — no network, no real key needed.
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 visceral_consignment_mcp-0.1.0.tar.gz.
File metadata
- Download URL: visceral_consignment_mcp-0.1.0.tar.gz
- Upload date:
- Size: 6.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c59fd88dd515a94c961420c84780e98bf588ce5de5324dcc78345a4556953ca7
|
|
| MD5 |
064898830adde35e7627f715e3f07a7d
|
|
| BLAKE2b-256 |
3192229849ac7ca93ba6399c2b13e9c97876fd7d5e3c6f972bb44ec755c3b184
|
File details
Details for the file visceral_consignment_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: visceral_consignment_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a00bc3084df4cd0acecb2c5567d04a05ce6ba53cc758abc09dbe7be2e2ff746b
|
|
| MD5 |
62a27a3c897cf250a9ef0632c78699c1
|
|
| BLAKE2b-256 |
dfdd98968c47aabc21eb5b217f735792d1d5ed49e182cb4150e3aba955a9c7df
|