@rolino/mcp 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,84 @@
1
1
  # @rolino/mcp
2
2
 
3
+ ## 0.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 4f9e790: Add the optional `blog:manage` capability and synchronized agent-first Blog
8
+ setup, import, cadence planning, plan review, article creation, confirmed
9
+ connection provisioning, and safe verification operations.
10
+ - 1edd1e7: Add published Blog Studio delivery contracts and the server-only Next.js 16 Blog Studio package.
11
+ - 74a13ea: Expose immediate versus scheduled delivery and destination lifecycle stages,
12
+ preserve YouTube visibility for immediate publishing, and clarify remote
13
+ schedule confirmation across public clients.
14
+ - 4af607d: Add independent exact-bundle Blog approval, reviewed image upload and generation,
15
+ confirmed publication scheduling and cancellation, and the complete authorized
16
+ agent workflow without widening existing credentials.
17
+ - 4a893dd: Add provider-neutral Blog publishing destinations, safe delivery inspection,
18
+ and exact destination binding across public agent interfaces.
19
+ - 843a1db: Add the exact optional `seo:read` capability and bounded read-only SEO
20
+ opportunity and weekly-report parity across public agent contracts, clients,
21
+ CLI commands, and closed-world MCP tools. SEO reads now use the version 3 task
22
+ contract with the exact Ready, Research, or Rejected decision, selected format,
23
+ complete deliverables, bounded evidence, safe URLs, limitations, and no-publish
24
+ rules. Public output uses readable topic names and separate topic-relevance and
25
+ action-readiness confidence. Research tasks compare all supported formats and
26
+ must validate or reject the finding before a separate draft action is allowed.
27
+
28
+ ### Patch Changes
29
+
30
+ - Updated dependencies [4f9e790]
31
+ - Updated dependencies [1edd1e7]
32
+ - Updated dependencies [74a13ea]
33
+ - Updated dependencies [4af607d]
34
+ - Updated dependencies [4a893dd]
35
+ - Updated dependencies [843a1db]
36
+ - @rolino/contracts@0.5.0
37
+ - @rolino/sdk@0.5.0
38
+ - @rolino/local-auth@0.5.0
39
+
40
+ ## 0.5.0-beta.0
41
+
42
+ ### Minor Changes
43
+
44
+ - 4f9e790: Add the optional `blog:manage` capability and synchronized agent-first Blog
45
+ setup, import, cadence planning, plan review, article creation, confirmed
46
+ connection provisioning, and safe verification operations.
47
+ - 1edd1e7: Add published Blog Studio delivery contracts and the server-only Next.js 16 Blog Studio package.
48
+ - 74a13ea: Expose immediate versus scheduled delivery and destination lifecycle stages,
49
+ preserve YouTube visibility for immediate publishing, and clarify remote
50
+ schedule confirmation across public clients.
51
+ - 4a893dd: Add provider-neutral Blog publishing destinations, safe delivery inspection,
52
+ and exact destination binding across public agent interfaces.
53
+ - 843a1db: Add the exact optional `seo:read` capability and bounded read-only SEO
54
+ opportunity and weekly-report parity across public agent contracts, clients,
55
+ CLI commands, and closed-world MCP tools. SEO reads now use the version 3 task
56
+ contract with the exact Ready, Research, or Rejected decision, selected format,
57
+ complete deliverables, bounded evidence, safe URLs, limitations, and no-publish
58
+ rules. Public output uses readable topic names and separate topic-relevance and
59
+ action-readiness confidence. Research tasks compare all supported formats and
60
+ must validate or reject the finding before a separate draft action is allowed.
61
+
62
+ ### Patch Changes
63
+
64
+ - Updated dependencies [4f9e790]
65
+ - Updated dependencies [1edd1e7]
66
+ - Updated dependencies [74a13ea]
67
+ - Updated dependencies [4a893dd]
68
+ - Updated dependencies [843a1db]
69
+ - @rolino/contracts@0.5.0-beta.0
70
+ - @rolino/sdk@0.5.0-beta.0
71
+ - @rolino/local-auth@0.5.0-beta.0
72
+
73
+ ## Unreleased
74
+
75
+ ### Minor Changes
76
+
77
+ - Add exact Blog image generation and upload, image review, confirmed
78
+ exact-bundle approval, scheduling, and schedule cancellation tools with
79
+ shared contracts, safe errors, and truthful capability and safety annotations.
80
+ - Add safe Blog provider, destination, and delivery tools plus destination-bound publication inputs.
81
+
3
82
  ## 0.4.0
4
83
 
5
84
  ### Minor Changes
package/README.md CHANGED
@@ -37,6 +37,10 @@ Initial tools:
37
37
  - `execute_post_publish`
38
38
  - `list_integration_health`
39
39
  - `refresh_delivery_options`
40
+ - `list_seo_opportunities`
41
+ - `get_seo_opportunity`
42
+ - `list_seo_reports`
43
+ - `get_seo_report`
40
44
  - `list_calendar_events`
41
45
 
42
46
  The media tools discover reusable project assets and stream one explicitly
@@ -46,6 +50,19 @@ Uploading never creates, schedules, or publishes a post; the returned
46
50
  asset ID is passed into a later draft operation.
47
51
 
48
52
  The tool set includes discovery and inspection tools that are read-only.
53
+ The four SEO tools require the exact optional `seo:read` capability. They are
54
+ bounded, read-only, idempotent, and closed-world. They return canonical tasks,
55
+ evidence, neutral provenance, separate topic-relevance and action-readiness
56
+ confidence, and recommended actions. They cannot
57
+ run analysis, change settings, delete data, enable reports, send email, or call
58
+ an external provider.
59
+ Opportunity detail also returns the bounded versioned task: exact decision,
60
+ format, target, deliverables, research, safe URLs, evidence, limitations, and
61
+ success metric. Ready can request final deliverables for human review. Research
62
+ selects only `RESEARCH_TASK`, compares all reasonable formats without a
63
+ preferred final format, and must return `VALIDATED` with a complete next task
64
+ or `REJECTED` with evidence before any separately allowed draft
65
+ action. Every copied task forbids publishing and other Rolino writes.
49
66
  `create_project` is an additive, closed-world mutation that requires
50
67
  `projects:write` and a caller-supplied idempotency key. It atomically saves the
51
68
  project and its paired brand without starting research, connecting accounts,
@@ -70,15 +87,15 @@ Direct drafts must make every declaration explicit and mark the choices
70
87
  reviewed only after inspecting this result. That review is distinct from MCP
71
88
  mutation consent. Changing TikTok content clears the prior review, and Rolino
72
89
  never silently turns off a requested interaction.
73
- For LinkedIn, `refresh_delivery_options` returns the connected member plus the
74
- strict text/single-image/multi-image/video policy and JPEG/PNG/MP4 limits.
75
- LinkedIn drafts can be text-only, contain up to ten stored images, or contain
76
- exactly one stored MP4 without mixing images and video. Native video must be
77
- 75 KB to 500 MB and 3 seconds to 30 minutes, and execution remains in
78
- preparation until LinkedIn confirms upload and processing. An optional
79
- 3,000-character LINKEDIN caption override uses the shared caption as fallback.
80
- The connected member is always the author; Company Page publishing is outside
81
- this contract.
90
+ For LinkedIn, `refresh_delivery_options` returns the connected member plus the
91
+ strict text/single-image/multi-image/video policy and JPEG/PNG/MP4 limits.
92
+ LinkedIn drafts can be text-only, contain up to ten stored images, or contain
93
+ exactly one stored MP4 without mixing images and video. Native video must be
94
+ 75 KB to 500 MB and 3 seconds to 30 minutes, and execution remains in
95
+ preparation until LinkedIn confirms upload and processing. An optional
96
+ 3,000-character LINKEDIN caption override uses the shared caption as fallback.
97
+ The connected member is always the author; Company Page publishing is outside
98
+ this contract.
82
99
  Integration health is cached and secret-safe, post
83
100
  readiness reuses Rolino's publishing checks, and calendar reads use bounded
84
101
  date windows with cursor pagination. After `rolino auth login`, configure `ROLINO_URL` and
@@ -99,8 +116,10 @@ idempotency key. The server repeats readiness and live-health checks and rejects
99
116
  expired, consumed, stale, cross-credential, or mismatched confirmation.
100
117
  For YouTube, the preview explains that confirmed scheduling starts or resumes a
101
118
  private upload immediately so processing can complete before the Public target.
102
- Execution may return a typed `PENDING` result while the remote schedule is
103
- being confirmed; it does not report the video as published.
119
+ Execution may return a typed `PENDING` result with phase
120
+ `REMOTE_SCHEDULE_CONFIRMATION` after the upload completes while YouTube
121
+ acknowledges the requested publish time. The video remains private, the result
122
+ does not report it as published, and no second publish tool call is required.
104
123
 
105
124
  Immediate publishing also uses two tools. `preview_post_publish` checks the
106
125
  exact destination set, post version, readiness, live provider health, and retry
@@ -110,7 +129,10 @@ then durably queues the selected destinations for immediate delivery. Provider
110
129
  calls happen after that database commit, and Rolino's existing reconciliation
111
130
  rules block blind retries after ambiguous external results. YouTube remains
112
131
  `PREPARING` until upload and processing are provider-confirmed, and its exact
113
- configured visibility is reconciled before publication is reported.
132
+ configured Public, Unlisted, or Private visibility is reconciled before
133
+ publication is reported. The preview reports `deliveryMode: "IMMEDIATE"` and
134
+ `createsSchedule: false`; immediate publishing never enters schedule
135
+ confirmation.
114
136
 
115
137
  MCP tools cannot enable YouTube, Bluesky, or LinkedIn or bypass a deployment's
116
138
  provider approval boundary. Self-hosted operators should complete the
@@ -129,3 +151,56 @@ issues through the repository's
129
151
  [security policy](https://github.com/deifos/rolino/security/policy).
130
152
 
131
153
  `@rolino/mcp` is available under the MIT License.
154
+ ## Agent-first Blog Studio tools
155
+
156
+ The local stdio server exposes Blog readiness, import, cadence planning,
157
+ plan-item evidence and state, editable article creation, connection status,
158
+ confirmed provisioning, signed revalidation testing, and these provider-neutral
159
+ publishing reads:
160
+
161
+ - `list_blog_publishing_providers` requires `blog:manage` and returns only
162
+ enabled providers, safe capabilities, and official documentation.
163
+ - `list_blog_publishing_destinations` requires `blog:read` and returns safe
164
+ connection readiness without credentials or private provider data.
165
+ - `list_blog_delivery_attempts` requires `blog:read`, accepts an optional exact
166
+ article ID, and returns safe delivery states, retry times, error codes, and
167
+ remote URLs.
168
+ - `generate_blog_image`, `upload_blog_image`, and `review_blog_image` require
169
+ `blog:write`. They cannot approve an article or publish it. Upload reads only
170
+ the exact local JPEG, PNG, or WebP path supplied to the tool.
171
+ - `preview_blog_revision_approval` and `execute_blog_revision_approval` require
172
+ the independent `blog:approve` capability. Execution makes the confirmed
173
+ exact bundle eligible for a separate publication operation; it cannot
174
+ publish.
175
+ - `preview_blog_schedule`, `execute_blog_schedule`,
176
+ `preview_blog_schedule_cancellation`, and
177
+ `execute_blog_schedule_cancellation` require the independent `blog:publish`
178
+ capability. Scheduling causes future external publication but does not grant
179
+ approval. Cancellation removes only the confirmed future schedule and never
180
+ unpublishes a live article.
181
+
182
+ The three publishing-read tools are closed-world reads. They do not contact a provider or
183
+ change content. They do not return draft content, prompts, evidence, secrets,
184
+ or raw provider responses. Setup requires the
185
+ independent optional `blog:manage` capability; it is never inferred from
186
+ `blog:write` or `blog:publish` and is not added to existing credentials.
187
+
188
+ Read tools are closed-world. The signed revalidation test is accurately marked
189
+ as an open-world write. Connection execute is confirmed, destructive, and
190
+ idempotent; its first success may return one-time values that must be written
191
+ only to server-side environment configuration. Errors and replays never reveal
192
+ those values. These are local stdio tools—Rolino does not expose hosted remote
193
+ MCP. Publication still requires a user-approved exact revision and the
194
+ separate publish preview/execute tools.
195
+
196
+ Use the Blog tools in this order: read setup and current article or plan state;
197
+ ask for a missing website, cadence, destination, or access level; import and
198
+ plan through polled durable jobs; present evidence before bounded plan
199
+ acceptance; create one immutable revision with catalog-backed links; generate
200
+ or upload and review one image with alt text; stop for user approval when
201
+ `blog:approve` is missing; otherwise preview and execute exact-bundle approval
202
+ with its confirmation token and a stable idempotency key; stop after approval
203
+ when `blog:publish` is missing; otherwise preview and execute unchanged
204
+ publication or scheduling; poll delivery and verify the live URL; and restart
205
+ from approval preview after any content or image change. Existing credentials
206
+ do not gain `blog:approve`, and a queued delivery is not published.