Turning four compliance and lead-cost checks into a local, read-only MCP server
Description and use
A local MCP server was built to expose four compliance tools—French telemarketing consent check, lead‑source cost per meeting ranking, GDPR offshore gap report, and lowest‑cost capable model selector—enabling repeatable, network‑free checks for outbound and offshore teams.
Problem
Small call‑centre outsourcing brokerage needed quick, repeatable checks for French telemarketing consent, lead‑source cost per meeting, GDPR gaps for offshore customer service, and lowest‑cost capable model selection.
Outcome
The MCP server provides a consistent, network‑free, read‑only interface for compliance checks, enabling rapid, repeatable decision making for outbound and offshore teams.
Workflow
- 1. Implement four Python packages: demarchage-consent, cost-per-kept-meeting, rgpd-offshore-check, least-cost-capable.
- 2. Wrap each package into an MCP tool with annotations (LOCAL_READ_ONLY).
- 3. Publish the MCP server to PyPI using Trusted Publishing and to the MCP Registry with ownership verification.
- 4. Configure MCP clients (Claude Desktop, Cursor) to point to the local server via JSON config.
- 5. Test tools through an in‑memory MCP client session to verify names, schemas, and annotations.
- 6. Publish to Glama, ensuring glama.json and Dockerfile use a dedicated virtual environment for uv.
- 7. Deploy the server locally and expose the four tools for repeated use.
Evidence
Over the last weeks we turned those questions into small, standard‑library Python packages.
This weekend we wrapped four of them in an MCP server, so that Claude, Cursor and other MCP clients can call them directly: kanibal-tools-mcp.
Local, read‑only, closed‑world. Every tool computes from its arguments only: no network call, no file access, no state kept between calls.
The tests do not call the Python functions directly. They go through an in‑memory MCP client session, so they also check the tool names, schemas and annotations that a client sees.
- Record date: 2026-10-25T09:12:05.562Z