mcp-metsuke-crunchtools
Stateful reports catalog MCP server. Metsuke (目付 — the Sengoku intelligence officer who gathered field reports and compiled them for the daimyō) is the durable, cross-agent home for report definitions and their gathered outputs.
An autonomous gatherer reads a definition, sweeps the configured sources, and writes findings — each carrying its own source URL. A compiler later reads the freshest output to draft a fully cited report. This replaces ad-hoc, run-scoped research caches with a real, queryable store.
Features
- Definitions + outputs — separate what-to-gather from what-was-gathered
- Built-in scheduler — Metsuke fires each definition's gather when its cron schedule comes due, or on demand via
trigger_report— no external timer - Cited findings — payloads carry per-finding source URLs for one-click checking
- Re-homeable gathering —
owner_agentmakes the gatherer identity data, not code - Local-first — plain SQLite (WAL), no external services, no per-seat fees
- Three transports — stdio, SSE, streamable-http
Install
uvx (recommended)
uvx mcp-metsuke-crunchtools
pip
pip install mcp-metsuke-crunchtools
Container
podman run --rm -v ~/.local/share/mcp-metsuke:/data:Z \
quay.io/crunchtools/mcp-metsuke \
--transport streamable-http --host 0.0.0.0 --port 8009
Claude Code Integration
claude mcp add mcp-metsuke-crunchtools -- uvx mcp-metsuke-crunchtools
Tools (6)
Definitions (4)
| Tool | Description |
|---|---|
list_reports |
List all report definitions in the catalog, each with its next scheduled fire time. |
get_spec |
Return the gather prompt + source config for one definition. |
upsert_definition |
Create or update a definition (name, prompt, owner, cron schedule, timezone, sources). |
trigger_report |
Fire a report gather right now, without waiting for its schedule. |
Outputs (2)
| Tool | Description |
|---|---|
save_output |
Persist gathered findings for a report (each ideally carrying a source URL). |
get_output |
Read the freshest output (or a specific day's) for compiling a report. |
Environment Variables
| Variable | Default | Description |
|---|---|---|
METSUKE_DB |
~/.local/share/mcp-metsuke/metsuke.db |
SQLite database path |
METSUKE_DB_FILE |
(none) | Path whose contents override METSUKE_DB (container secret-file convention) |
TRENTINA_ALERT_URL |
(none) | Base URL of the Trentina alert endpoint the scheduler POSTs gather callbacks to |
METSUKE_ALERT_TOKEN |
(none) | Alert token identifying the reports profile; enables the scheduler when set with TRENTINA_ALERT_URL |
METSUKE_ALERT_TOKEN_FILE |
(none) | Path whose contents override METSUKE_ALERT_TOKEN (container secret-file convention) |
METSUKE_SCHEDULER_POLL_SECONDS |
60 |
How often the scheduler checks for due reports |
METSUKE_SCHEDULER_ENABLED |
(auto) | Force the scheduler on/off; defaults to on when the callback is configured |
The scheduler runs only under the sse and streamable-http transports (the long-lived production processes), never under stdio.
Data Model
- report_definitions —
name(PK),gather_prompt,owner_agent,schedule(cron),timezone(IANA),source_config(JSON),last_fired_at,updated_at - report_outputs —
id,report_name(FK),gathered_at,window_start/window_end,payload(JSON findings with source URLs),status(gathering/ready/compiled),gatherer_run_ref
MCP Registry
io.github.crunchtools/metsuke
License
AGPL-3.0-or-later
Metadata
Release files for mcp-metsuke-crunchtools 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mcp_metsuke_crunchtools-0.3.0.tar.gz | 42.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_metsuke_crunchtools-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 72.0 kB
Release files / mcp_metsuke_crunchtools-0.3.0.tar.gz
| Download URL | mcp_metsuke_crunchtools-0.3.0.tar.gz |
|---|---|
| Size | 42.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0c6edefcbfe4b254aefc77c1172a8039f134054ab38b198fc8aacc6af8c98ad9
|
|
BLAKE2b-256 checksum How to use checksums |
69169b59e779fbddc1d829d891d0b75eadda62afad5664664faafccb835056d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 30, 2026.
Transparency logRelease files / mcp_metsuke_crunchtools-0.3.0-py3-none-any.whl
| Download URL | mcp_metsuke_crunchtools-0.3.0-py3-none-any.whl |
|---|---|
| Size | 29.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f887231c55ea5ba77a10d43f42316c5c5314c83b8d95ea49c1f1a0ae5dae8df3
|
|
BLAKE2b-256 checksum How to use checksums |
b8c7124da8b590ca314ec7219ca58f58c8712fdbc5374100af52cf3e58c2bce8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 30, 2026.
Transparency log