This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+8 more
Affected surfaces
Summary
AI summaryUpdates Minor Changes, Patch Changes, and f5c70eb across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Security | Medium |
Marks contentrain_media_delete as destructive requiring confirmation. Marks contentrain_media_delete as destructive requiring confirmation. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Feature | Low |
Adds MediaProvider contract and five media management tools to MCP. Adds MediaProvider contract and five media management tools to MCP. Source: llm_adapter@2026-07-13 Confidence: low |
— |
| Feature | Low |
Adds MediaProvider contract with list/get/ingest/update/delete methods. Adds MediaProvider contract with list/get/ingest/update/delete methods. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Feature | Low |
Introduces five media management tools: contentrain_media_list, get, ingest, update, delete. Introduces five media management tools: contentrain_media_list, get, ingest, update, delete. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Feature | Low |
Makes MediaProvider optional on RepoProvider; tools appear only if provider supports media facet. Makes MediaProvider optional on RepoProvider; tools appear only if provider supports media facet. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Feature | Low |
Supports URL-based ingest where provider fetches source server‑side. Supports URL-based ingest where provider fetches source server‑side. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Dependency | Low |
Updates dependency @contentrain/types to version 0.8.0. Updates dependency @contentrain/types to version 0.8.0. Source: llm_adapter@2026-07-13 Confidence: high |
— |
Full changelog
Minor Changes
-
f5c70eb: feat(mcp): media tools over an optional provider media facet
@contentrain/types: new
MediaProvidercontract (list/get/ingest/update/delete) plusMediaAsset,MediaListOptions,MediaListResult,MediaIngestInput,MediaUpdateInput.RepoProvidergains an optionalmedia?: MediaProviderfacet — implemented by hosted providers (Studio MCP Cloud), absent on Local/GitHub/GitLab.@contentrain/mcp: five new tools —
contentrain_media_list,contentrain_media_get,contentrain_media_ingest,contentrain_media_update,contentrain_media_delete— as a deterministic passthrough to the provider's media facet.- Capability-aware: registered only when
RepoProvider.mediais present (newmediarequirement inTOOL_REQUIREMENTS). Local stdio servers keep listing exactly the 19 core tools; nothing changes for existing embeddings. - URL-based ingest. MCP has no binary channel; the provider fetches the source URL server-side and owns SSRF/MIME/size policy.
contentrain_media_ingestis the only tool withopenWorldHint: true. - Safety:
media_deleteisdestructiveHint: trueand requiresconfirm: true; content references are never rewritten by MCP. - Closes the discovery loop for external agents: list assets → pick a
media/...path → reference it viacontentrain_content_save(absolute delivery URLs viamediaBaseUrl).
@contentrain/rules:
MCP_TOOLSnow lists 24 tools (19 core + 5 media); essential guardrails document the media flow.@contentrain/skills:
references/mcp-tools.mdgains a Media Tools section covering all five tools (parity-tested against the MCP registry). - Capability-aware: registered only when
Patch Changes
- Updated dependencies [f5c70eb]
- @contentrain/[email protected]
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 Contentrain/ai
Local-first MCP server for AI content governance — 13 tools for model/content CRUD, validation, normalization, and i18n across any framework.
Related context
Related tools
Earlier breaking changes
- v@contentrain/[email protected] `validateModelDefinition` now returns `{ errors, warnings }` instead of a string array.
- v@contentrain/[email protected] `model_save` rejects models with unknown keys, `min > max`, invalid constraints, and `unique` on singletons.
- v@contentrain/[email protected] `content_save` now validates before committing and rejects invalid content.
- v@contentrain/[email protected] `validateModelDefinition` now returns `{ errors, warnings }` instead of a string array.
- v@contentrain/[email protected] `model_save` rejects models with unknown keys, `min > max`, invalid constraints, and `unique` on singletons.
Beta — feedback welcome: [email protected]