Skip to main content

boutique-mcp

A local MCP catalog of MateMatic Boutique: 103 entries at the time of writing - 43 legal-data MCP connectors (SAOS, CBOSA, EUR-Lex, national ELI servers from Austria to Japan), 52 MateMatic agent skills and 8 curated third-party skills.

It answers one question: which building block solves the task at hand, and how to install it locally. The catalog points, it never proxies. Your agent gets a copy-paste uvx/npx command or a download link and runs it on your machine.

Status: v0.1.0 | License: Apache-2.0 | Maintainer: MateMatic

Why local

A hosted discovery API sees every query it answers, and in legal work the query itself is often confidential ("counter-arguments to our client's position in..."). This connector never sees anything: search runs in-process over a local copy of catalog.json. The only network request it ever makes is a conditional GET of the public catalog itself (ETag / If-None-Match).

No network? You get the last catalog cached on disk, or the snapshot shipped inside the package. Either way the response says where the data came from and how old it is: "catalog generated on X, source: network / disk-cache / bundled-snapshot". Nothing is installed or executed for you. The catalog returns commands; you run them.

MCP tools

  • boutique_search(query, jurisdiction?, entry_type?, limit?) - keyword search (English, Polish or Portuguese) over the catalog. Every hit carries a local install command. When coverage is missing, the response says so in gaps[] instead of padding weak matches.
  • boutique_get(id) - the full card for one entry: names and descriptions in every available language, install, version, license, source and card URLs.
  • boutique_whats_new(since_date?) - what was added or updated since a date (default: the 30 days before the catalog was generated).
  • boutique_coverage() - declares what this catalogue covers, where it comes from and what it does NOT cover. Every gap carries a stable id and a fallback. Call it when a search returns nothing: the absence may be a gap in the catalogue.
  • boutique_request_coverage(description, jurisdiction?) - drafts a coverage-request issue for a gap. Draft only: nothing is sent anywhere; a human reviews and submits it.

Quickstart

uvx boutique-mcp

MCP client configuration (mcp-servers.json):

{
  "mcpServers": {
    "boutique": {
      "command": "uvx",
      "args": ["boutique-mcp"]
    }
  }
}

Windows 11 with Smart App Control

Smart App Control blocks unsigned executables, which covers uvx.exe, pip.exe and the boutique-mcp.exe launcher that pip writes at install time. The python.exe and py.exe from the python.org installer are signed by the Python Software Foundation, so running the module through the interpreter works:

python -m pip install boutique-mcp
python -m boutique_mcp

pip.exe is blocked for the same reason, so install with python -m pip, not pip install. If python is not on PATH, use the Windows launcher: py -3 -m boutique_mcp.

{ "mcpServers": { "boutique-mcp": { "command": "python", "args": ["-m", "boutique_mcp"] } } }

Do not turn Smart App Control off to work around this - it cannot be re-enabled without reinstalling Windows.

Configuration

Env Default Meaning
BOUTIQUE_MCP_CATALOG_URL https://matematicsolutions.com/catalog.json Catalog source
BOUTIQUE_MCP_CACHE_DIR ~/.matematic/cache/boutique-mcp Disk cache location
BOUTIQUE_MCP_OFFLINE unset 1 = never touch the network
BOUTIQUE_MCP_AUDIT unset 1 = opt-in local audit log (tool name + timing only, never query content)

Data source

catalog.json is generated in the www-matematic repository from the same source as the Boutique page tiles (three languages); a pre-commit and CI check fails whenever the two drift apart. A machine-readable server card lives at /.well-known/mcp/server-card.json.

Development

python -m venv .venv
.venv/bin/pip install -e ".[dev]"        # Windows: .venv\Scripts\pip
.venv/bin/python -m pytest tests/ -q     # offline - fixture catalog
.venv/bin/python -m ruff check src tests

Governance

The project constitution forbids a hosted discover/invoke proxy and any logging of query content. The only adoption metric MateMatic sees is the CDN download counter of the public catalog.json file. The one tool that produces outbound text, boutique_request_coverage, stops at a draft; a human submits it.

Constitution and spec: .matematic/ in this repository.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

boutique_mcp-0.2.2.tar.gz (70.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

boutique_mcp-0.2.2-py3-none-any.whl (61.6 kB view details)

Uploaded Python 3

File details

Details for the file boutique_mcp-0.2.2.tar.gz.

File metadata

  • Download URL: boutique_mcp-0.2.2.tar.gz
  • Upload date:
  • Size: 70.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for boutique_mcp-0.2.2.tar.gz
Algorithm Hash digest
SHA256 1d84d775732321b09a05e51167a351fc1fd508d43dab29d2b6cd57f008bcea5b
MD5 db95eed5fbe5f1ea122dcf6dafe1a45a
BLAKE2b-256 649a1d034f3c75d02f85a3517c5a249ab0d1e282bc2c426c1bba43e149a7d949

See more details on using hashes here.

File details

Details for the file boutique_mcp-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: boutique_mcp-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 61.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for boutique_mcp-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a174d0ab00e91e0ca226b3aff988c94c81cf3357cd62ec063daf7fbea5129f8e
MD5 8a890f17c6516df9a1432955505741cf
BLAKE2b-256 76de2e72b5dd1b6682e04f97d92b9ed07ad3d5587e6c12f34458c841992fbd6b

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 files

0.2.1

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page