@procedures/bundle-assistant
v0.46.0
Published
The opt-in tools of the personal assistant for an MCP host: calendar files, mail parsing, places, routes, weather and photo metadata, without the procedures that can carry data out.
Maintainers
Readme
@procedures/bundle-assistant
The opt-in tools of the personal assistant for an MCP host. The bundle has the procedures of @procedures/ics, @procedures/mail, @procedures/geo, @procedures/weather and @procedures/exif.
Use
The dev-tools server of @procedures/mcp-dev-tools loads the bundles of MCP_BUNDLES. Add this bundle to the default bundle:
MCP_BUNDLES=@procedures/bundle-mcp,@procedures/bundle-assistant mark mcpThe tools
| Tool | What it does |
|---|---|
| ics.parse, ics.occurrences | They read a calendar file and its repeated events. They are pure. |
| ics.write | It writes a calendar file from events. It is pure. |
| mail.parse | It reads the headers and the text of a message. It is pure. |
| geo.geocode, geo.route | They read one public service each. |
| geo.distance, geo.geohash | They give the distance between two points and the geohash of a point. They are pure. |
| weather.forecast | It reads one public service. |
| exif.read | It reads the date and the place of a photo on the host. |
The dev-tools server sends the requests of geo.geocode, geo.route, weather.forecast and ics.fetch through the default host policy of @procedures/http. The policy refuses a baseUrl or a feed on a loopback, private or link-local address.
weather.forecastuses the policy in each registry.- The export
mcpHostModulesgivesgeoandicswith the policy. The dev-tools server gives them tocreateRegistry()before the bundle, so they replace the default modules. - The bundle keeps the default modules of
geoandics. Thusmarkand the site load the bundle next to the packagesgeoandics.
Another host does the same:
import bundleAssistantModule, { mcpHostModules } from "@procedures/bundle-assistant/module";
const registry = createRegistry(...mcpHostModules, bundleAssistantModule);These procedures are not tools:
ics.fetchfetches any URL, so a tool call can carry data out in the URL.mail.headersreads a private mailbox.notify.send,restic.runandtailscale.runare not in the bundle. The first one posts to any topic of a public server, and the others run destructive commands.
A test pins the list of tools. Each tool changes nothing.
