Declarative MCP server for the Cartograph widget library
Project description
cartograph-mcp
Model Context Protocol (MCP) server for Cartograph widget library.
Installation
pip install cartograph-mcp
Release
Intended standalone repository: benteigland11/cartograph-mcp
PyPI trusted publishing is configured around the GitHub Actions workflow file
.github/workflows/pypi-publish.yml and the GitHub environment pypi.
Current package version: 0.1.0
Release flow:
- Normal commits go to
mainand only run CI. - When you are ready to release, bump the version in
pyproject.tomland commit that change. - Push the version bump commit and confirm CI passes.
- After CI succeeds on
main, thepypi-publishworkflow detects the version bump automatically. - It publishes the package to PyPI via Trusted Publishing.
- It creates the matching tag and GitHub release automatically using
vX.Y.Zand generated release notes.
One-time setup still required:
- Create the
cartograph-mcpproject on PyPI. - Add a Trusted Publisher for:
- owner:
benteigland11 - repository:
cartograph-mcp - workflow file:
pypi-publish.yml - environment:
pypi
- owner:
- Create the GitHub environment named
pypiin the repo settings. - Make sure the GitHub token has permission to create releases in the repo workflow context (the workflow requests
contents: write).
Configuration for Claude Desktop
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"cartograph": {
"command": "cartograph-mcp"
}
}
}
Tools
The MCP server intentionally exposes a small daily-driving surface:
registry_widgetActions:search,inspect,install,rateinstalled_widgetActions:upgrade,uninstallwidget_statuscreate_widgetvalidate_widgetcheckin_widgetcartograph_config
Usage
Cartograph is a widget library manager, so the normal loop still applies: search first, inspect existing widgets, install and wire them in, then validate and check in improvements when you generalize logic.
The MCP surface is workflow-oriented rather than a 1:1 mirror of the CLI. registry_widget handles library-facing actions, installed_widget handles mutations for already-installed widget dirs, and widget_status is the project health check. create_widget uses the Cartograph mental model directly: pass name as the slug only, and the CLI composes the full widget ID from domain and language.
validate_widget is the dry run for checkin_widget: it runs the same preflight / smoke path without mutating library state. checkin_widget runs that pipeline and then performs the actual checkin.
cartograph_config is the one setup/defaults tool in MCP. Use it to read or update core workflow settings like auto-publish, visibility, governance, cloud, show-unavailable, and publish-registry.
For everything beyond this daily-driving surface, use the shell and cartograph --help or cartograph <command> --help. The CLI is the source of truth for rollback/delete, cloud ops, config/setup/auth, doctor/stats/dashboard/export/import, and other uncommon or administrative operations.
Project details
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 cartograph_mcp-0.1.0.tar.gz.
File metadata
- Download URL: cartograph_mcp-0.1.0.tar.gz
- Upload date:
- Size: 16.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2392f466800ede849e59c8c222688d04012058b75c4ee32dfc280f85f773d608
|
|
| MD5 |
3fbed207c541ff596af1d5ea3bca012f
|
|
| BLAKE2b-256 |
2212b6935a64c4dc46b1a0df45781ce20a9752135accaf1f6d455eb068a729aa
|
Provenance
The following attestation bundles were made for cartograph_mcp-0.1.0.tar.gz:
Publisher:
pypi-publish.yml on benteigland11/cartograph-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cartograph_mcp-0.1.0.tar.gz -
Subject digest:
2392f466800ede849e59c8c222688d04012058b75c4ee32dfc280f85f773d608 - Sigstore transparency entry: 1364910176
- Sigstore integration time:
-
Permalink:
benteigland11/cartograph-mcp@e28d908ab64196a992bf8361e1e16e3e4c2c7263 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/benteigland11
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@e28d908ab64196a992bf8361e1e16e3e4c2c7263 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file cartograph_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cartograph_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b42154d204a12fd98ad49d017680109ecd315b2046dc50e1326f096be250fdb
|
|
| MD5 |
4d29dd756a63ec13123d66ec1914e4a7
|
|
| BLAKE2b-256 |
fee72403ee64114345df50309d6212f48f10a9987909c198449d6c82e345c88c
|
Provenance
The following attestation bundles were made for cartograph_mcp-0.1.0-py3-none-any.whl:
Publisher:
pypi-publish.yml on benteigland11/cartograph-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cartograph_mcp-0.1.0-py3-none-any.whl -
Subject digest:
0b42154d204a12fd98ad49d017680109ecd315b2046dc50e1326f096be250fdb - Sigstore transparency entry: 1364910255
- Sigstore integration time:
-
Permalink:
benteigland11/cartograph-mcp@e28d908ab64196a992bf8361e1e16e3e4c2c7263 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/benteigland11
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@e28d908ab64196a992bf8361e1e16e3e4c2c7263 -
Trigger Event:
workflow_dispatch
-
Statement type: