Skip to content

cameronrye/activitypub-mcp

v3.1.2 Security

This release includes 1 security fix for security teams reviewing exposed deployments.

Published 1mo MCP Data & Storage
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →
This release patches 1 known CVE

Topics

activitypub fedify fediverse mcp mcp-server webfinger

Affected surfaces

auth rce_ssrf

ReleasePort's take

Light signal
editorial:auto 1mo

The 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 summary

Log 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

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/debug to console.info/console.debug, which Node writes to stdout — the
    same channel the stdio transport uses for MCP JSON-RPC. At the default LOG_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=0 no longer hangs the server. The value reached the LRU cache
    unvalidated, and a non-positive maxSize made the eviction loop spin forever on the
    first cache write — the server hung on its first request. A non-positive or non-finite
    maxSize is 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=warn works as documented. The CLI documents warn, but logtape's level
    is warning. The env value is now normalized (warnwarning, 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
    logSsrfBlocked and logRateLimitExceeded audit 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 /discussions links in the site footer, the troubleshooting page, and both
    llms.txt artifacts 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

Track cameronrye/activitypub-mcp

Get notified when new releases ship.

Sign up free

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.

All releases →

Related context

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]