kanibal-tools-mcp
Official# kanibal-tools-mcp
[](https://pypi.org/project/kanibal-tools-mcp/)
[](https://pypi.org/project/kanibal-tools-mcp/)
[](https://github.com/kanibal-studio/kanibal-tools-mcp/actions/workflows/ci.yml)
[](https://github.com/kanibal-studio/kanibal-tools-mcp/blob/main/LICENSE)
An [MCP](https://modelcontextprotocol.io) server that gives AI assistants four local,
read-only tools from Kanibal Studio (ALTA VISTA360, S.L.U.):
| Tool | What it does |
|---|---|
| `check_telemarketing_consent` | France only: tells whether a consent to telephone canvassing is still valid under décret 2026-662. Fail-closed. |
| `rank_lead_sources_by_kept_meeting` | Ranks B2B lead sources, from CSV text, on cost per kept qualified meeting instead of cost per lead. |
| `gdpr_offshore_gap_report` | GDPR gap report for customer service outsourced outside the EU/EEA. Not legal advice. |
| `select_least_cost_capable_model` | Picks the lowest declared cost rank among the capable, available and authorised models of a supplied catalogue. |
Each tool computes from its arguments only: no network call, no file access, no state
kept between calls. All four are marked read-only and closed-world for MCP clients. They
wrap the published packages [demarchage-consent](https://github.com/kanibal-studio/demarchage-consent),
[cost-per-kept-meeting](https://github.com/kanibal-studio/cost-per-kept-meeting),
[rgpd-offshore-check](https://github.com/kanibal-studio/rgpd-offshore-check) and
[least-cost-capable](https://github.com/kanibal-studio/least-cost-capable).
## Use with Claude Code
```sh
claude mcp add kanibal-tools -- uvx kanibal-tools-mcp
```
## Use with Claude Desktop, Cursor or another MCP client
Add this server to the client's MCP configuration:
```json
{
"mcpServers": {
"kanibal-tools": {
"command": "uvx",
"args": ["kanibal-tools-mcp"]
}
}
}
```
Without `uv`, install it with `pip install kanibal-tools-mcp` and use `kanibal-tools-mcp` as
the command. The server speaks MCP over stdio and needs Python 3.10 or newer.
## Example requests
- "Is a telemarketing consent collected on 2025-11-02 still valid today?"
- "Here is my CSV of lead sources for October: rank them by cost per kept meeting."
- "Prepare a GDPR gap report for our customer service in Tunisia: we have SCCs but no transfer impact assessment."
- "From this model catalogue, which is the cheapest one that can do Python and debugging?"
## Limits
- The consent tool applies French rules only (décret 2026-662). It is a check, not legal advice.
- The GDPR report is a checklist: a report without blocking gap is not a finding of compliance.
- A low cost per kept meeting does not prove profitability.
- The model selection uses only the facts in the catalogue you supply; it does not switch
models, call providers or guarantee savings.
## Development
```sh
pip install -e ".[dev]"
pytest
```
The tests call every tool through an in-memory MCP client session.
## Project context and license
Prepared by [Kanibal Studio](https://github.com/kanibal-studio), associated with
ALTA VISTA360, S.L.U. Our public sites are [Altavista360](https://altavista360.com),
[Altavista Conseil](https://altavista-conseil.com) and [K-Pulse](https://infos.kanibal-studio.com/).
Licensed under the [MIT License](LICENSE).
<!-- mcp-name: io.github.kanibal-studio/kanibal-tools-mcp -->
TDQS
Scored across 4 tools
The four tools target clearly different tasks: lead-source cost ranking, French telemarketing consent validity, GDPR offshore outsourcing gap reporting, and model selection. Their names and descriptions make misselection unlikely. Compliance-related tools exist, but one is narrowly about French consent and the other about GDPR outsourcing, so the boundary is clear.
All names use snake_case and are descriptive, but the naming pattern is not consistent: three tools start with verbs while gdpr_offshore_gap_report is a noun phrase. The convention is readable but not a uniform verb_noun pattern.
Four tools is a reasonable size for a compact utility server, and each tool appears to represent a substantive standalone operation. The set is heterogeneous rather than tightly scoped, but the count itself is not excessive or thin.
Each tool appears to cover its specific self-contained calculation or check, with documented input formats and fail-closed behavior. There is no obvious CRUD lifecycle to complete, though the server lacks broader validation, explanation, or workflow tools that might be expected in a larger toolkit.