Small parts of the world, kept current, and told to your agent when they change.
Each friction watches one thing: a changelog, a price list, a grid forecast, the packages you depend on. It keeps yesterday's copy, works out what's different, and puts that in an inbox your agent reads at the start of the next prompt, or the moment it happens.
You could build any one of these in an afternoon. You'd also have to fix it every third Tuesday.
Five to start with
Every friction is its own MCP server with its own tools, and they all feed one inbox at /mcp. Lookups work without signing in.
| Friction | What changes arrive | Checks every | Endpoint |
|---|---|---|---|
| Claude Code releases npm registry, CHANGELOG.md on GitHub | New Claude Code versions, what each one changed, and when stable moves. | 30 min | /mcp/claude-code |
| npm packages you depend on npm registry, OSV.dev | New versions, the day each clears your min-release-age guard, and advisories on the current release. | 60 min | /mcp/npm-watch |
| Model prices and launches OpenRouter model list (OpenRouter prices) | New models, price changes and withdrawals from the providers you use, per million tokens. | 60 min | /mcp/model-prices |
| Cleanest time to run things Carbon Intensity API, National Grid ESO (CC BY 4.0) | The cleanest window in the next day for a job of N hours on your bit of the GB grid, and when it goes dirty. | 30 min | /mcp/grid-carbon |
| Weather warnings Met Office warnings RSS (Crown copyright) | Met Office severe weather warnings for your region: issued, changed, lifted. | 15 min | /mcp/met-warnings |
How it arrives
The hard part of keeping an agent informed isn't fetching. It's that nobody, model or person, remembers to check. So there are four ways in, from "ask" to "be told".
Ask
Any MCP client. The agent calls whats_new when it thinks to.
claude mcp add --transport http little-frictions https://littlefrictions.smallmill.app/mcp \
--header "Authorization: Bearer lf_your_token"At every prompt
Claude Code hooks. New events are slipped into context before the model sees your message; nothing new means nothing added.
curl -fsSo ~/.local/bin/lf https://littlefrictions.smallmill.app/lf.mjs && chmod +x ~/.local/bin/lf
lf login lf_your_token
lf snippet hook # prints the settings.json blockWhile it's working
Claude Code channels (research preview). Events land in a running session as they happen.
claude mcp add lf-channel -- lf channel
claude --dangerously-load-development-channels server:lf-channelAnywhere else
Supporters. A signed POST to your URL: an OpenClaw hook, a routine trigger, your own relay.
Set a URL on the account page. Each delivery carries X-LF-Signature: sha256=…, an HMAC of timestamp.body with your secret, and can send your own Authorization header.
Pricing
Free
- 2 frictions
- The inbox, all the MCP tools, the hook and the channel
Supporter
- Up to 25 frictions
- Webhooks
- The quiet satisfaction of paying for something you could have built
Of each £3, card fees take 25p. Payments here are simulated; see the test cards at checkout.
What it won't do
Everything in an event is fetched from someone else's site, so it's cleaned to plain single-line text and labelled as data, not instructions. It never acts for you, never sees your code, and the inbox keeps 90 days.