mcpField
B
boutique-mcp

boutique-mcp

Local
github.com/matematicsolutionsDeveloper Tools0Updated 3w ago

About boutique-mcp

boutique-mcp is a local catalog MCP server that helps users find legal-data connectors and agent skills and obtain local installation commands. Searches run against a local catalog copy; it points to building blocks rather than proxying or installing them.

Key features

  1. 01Search legal connectors and skills
  2. 02View entry details and install commands
  3. 03Check additions and updates
  4. 04Inspect catalog coverage and gaps
  5. 05Use cached data offline

Use cases

  1. 01Find a connector for a jurisdiction
  2. 02Choose a skill for a legal task
  3. 03Check whether a catalog gap exists
  4. 04Review installation details before setup

MCP support

The MCP server exposes catalog search, entry lookup, updates, coverage, and draft coverage-request tools. It returns installation commands or links; users install and run items locally.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"matematicsolutions-boutique": {
"command": "uvx",
"args": [
"boutique-mcp"
]
}
}
}
Run commanduvx boutique-mcp

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypiboutique-mcp0.2.2

Tools

5

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
limitintegerNomax hits (1-25, default 10).
querystringYeskeywords in English, Polish or Portuguese (e.g. "case law Poland", "anonimizacja", "German law").
entry_typeanyNoOptional filter: "konektor" (MCP connector), "skill" (MateMatic skill) or "kuratorski" (curated third-party skill).
jurisdictionanyNoOptional filter, matched against the entry's jurisdiction label (e.g. "Polska", "EU", "Brasil").

Details

From the project README

boutique-mcp

A local MCP catalog of MateMatic Boutique: legal-data MCP connectors (SAOS, CBOSA, EUR-Lex, national ELI servers from Austria to Japan), MateMatic agent skills and curated third-party skills. Current counts live in the catalogue itself (counts in catalog.json), not in this file.

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

EnvDefaultMeaning
BOUTIQUE_MCP_CATALOG_URLhttps://matematicsolutions.com/catalog.jsonCatalog source
BOUTIQUE_MCP_CACHE_DIR~/.matematic/cache/boutique-mcpDisk cache location
BOUTIQUE_MCP_OFFLINEunset1 = never touch the network
BOUTIQUE_MCP_AUDITunset1 = 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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.