This release includes 1 security fix for security teams reviewing exposed deployments.
Topics
Affected surfaces
ReleasePort's take
Light signalThe release fixes several bugs (stdio JSON‑RPC corruption, CACHE_MAX_SIZE=0 hang, Mastodon Idempotency-Key, LOG_LEVEL=warn behavior) and adds security audit logging for SSRF blocks and rate‑limit denials.
Why it matters: Adds audit trail entries for SSRF blocks and rate‑limit denials (severity 70), improving detection of malicious activity; all listed bugfixes restore expected functionality with no migration needed.
Summary
AI summaryLog output is corrected to stderr, CACHE_MAX_SIZE=0 no longer hangs the server, Mastodon posts include an Idempotency-Key, and LOG_LEVEL=warn now works as documented.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Security | High |
SSRF blocks and rate-limit denials are now recorded in the audit trail. SSRF blocks and rate-limit denials are now recorded in the audit trail. Source: llm_adapter@2026-06-09 Confidence: high |
— |
| Deprecation | Low |
Dead GitHub Discussions links removed; now point to Issues. Dead GitHub Discussions links removed; now point to Issues. Source: llm_adapter@2026-06-09 Confidence: high |
— |
| Bugfix | Medium |
Logs no longer corrupt the stdio JSON-RPC stream. Logs no longer corrupt the stdio JSON-RPC stream. Source: llm_adapter@2026-06-09 Confidence: high |
— |
| Bugfix | Medium |
'CACHE_MAX_SIZE=0' no longer hangs the server. 'CACHE_MAX_SIZE=0' no longer hangs the server. Source: llm_adapter@2026-06-09 Confidence: high |
— |
| Bugfix | Medium |
Mastodon posts send an 'Idempotency-Key'. Mastodon posts send an 'Idempotency-Key'. Source: llm_adapter@2026-06-09 Confidence: high |
— |
| Bugfix | Medium |
'LOG_LEVEL=warn' works as documented. 'LOG_LEVEL=warn' works as documented. Source: llm_adapter@2026-06-09 Confidence: high |
— |
Full changelog
[3.1.2] - 2026-06-09
Fixed
- Logs no longer corrupt the stdio JSON-RPC stream. logtape's console sink maps
info/debugtoconsole.info/console.debug, which Node writes to stdout — the
same channel the stdio transport uses for MCP JSON-RPC. At the defaultLOG_LEVEL=info
the startup line and every per-request "Fetching …" log were emitted onto that stream,
so a strict client could see malformed frames. All log levels now go to stderr, and a
test drives the real server and asserts stdout carries only JSON-RPC. CACHE_MAX_SIZE=0no longer hangs the server. The value reached the LRU cache
unvalidated, and a non-positivemaxSizemade the eviction loop spin forever on the
first cache write — the server hung on its first request. A non-positive or non-finite
maxSizeis now clamped to 1.- Mastodon posts send an
Idempotency-Key. The adapter read the option but no caller
set it, so a retried post (model- or transport-driven) could duplicate. A key derived
from the post's content is now sent, so an identical retry collapses to the original
status server-side. LOG_LEVEL=warnworks as documented. The CLI documentswarn, but logtape's level
iswarning. The env value is now normalized (warn→warning, unknown values →
info) so a documented or mistyped level can't misconfigure logging.
Security
- SSRF blocks and rate-limit denials are now recorded in the audit trail. The
logSsrfBlockedandlogRateLimitExceededaudit methods existed but had no callers, so
the two most security-relevant events never appeared in the log. SSRF rejections are now
audited at the central pinned-fetch path (initial URL and every redirect hop), and the
three duplicated rate-limit guards are unified into one helper that audits before
rejecting.
Changed
- Dead GitHub Discussions links removed. Discussions is disabled on the repository, so
the/discussionslinks in the site footer, the troubleshooting page, and both
llms.txtartifacts 404'd. They now point at GitHub Issues (the real support channel),
with a test guarding against reintroducing them.
Security Fixes
- SSRF blocks and rate‑limit denials are now recorded in the audit trail
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About cameronrye/activitypub-mcp
A comprehensive MCP server that enables LLMs to explore and interact with the Fediverse through ActivityPub protocol. Features WebFinger discovery, timeline fetching, instance exploration, and cross-platform support for Mastodon, Pleroma, Misskey, and other ActivityPub servers.
Related context
Related tools
Earlier breaking changes
- v2.1.0 `activitypub://instance-info/{domain}` `software` field now an object instead of a string.
- v2.1.0 Removed `activitypub://post-thread/{postUrl}` URI form; use `{domain}/{statusId}` instead.
- v2.0.0 'get-relationship' no longer accepts legacy `accountIds` array; requires single `acct` string.
- v2.0.0 `MCP_HTTP_CORS_ORIGINS` no longer defaults to '*'; must be set explicitly.
- v2.0.0 `scheduledId` renamed to `scheduledPostId` in scheduling tools.
Beta — feedback welcome: [email protected]