@rolino/mcp 0.1.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 ADDED
@@ -0,0 +1,36 @@
1
+ # @rolino/mcp
2
+
3
+ ## 0.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - fdc916f: Add least-privilege, idempotent project creation across the public API, SDK,
8
+ CLI, and local stdio MCP, including atomic paired-brand creation.
9
+ - 2f5220f: Expose Bluesky consistently across public publishing contracts, the SDK, CLI,
10
+ and MCP, including 300-grapheme caption overrides, text and image readiness,
11
+ health reporting, scheduling, and immediate publishing. The fixed release group
12
+ also advances `@rolino/local-auth` even though its source does not change.
13
+ - edd5f2e: Validate YouTube descriptions by their 5,000-byte UTF-8 provider limit so every Rolino client rejects multibyte text that YouTube would refuse.
14
+ - 1b644ef: Prepare the first coordinated public release of Rolino's contracts, SDK, shared
15
+ local authentication, CLI, and local stdio MCP packages.
16
+ - 420484d: Add reusable media discovery and direct local-file uploads across the public
17
+ API contracts, SDK, CLI, and MCP so agents can safely prepare folder-based
18
+ social scheduling workflows. The fixed release group also advances
19
+ `@rolino/local-auth` even though its source does not change.
20
+ - 52373a6: Expose YouTube consistently across public contracts, the SDK, CLI, and MCP,
21
+ including explicit draft metadata, readiness and health, early scheduled
22
+ preparation, exact publish confirmation, and typed pending reconciliation.
23
+ The fixed release group also advances `@rolino/local-auth` even though its
24
+ source does not change.
25
+
26
+ ### Patch Changes
27
+
28
+ - Updated dependencies [fdc916f]
29
+ - Updated dependencies [2f5220f]
30
+ - Updated dependencies [edd5f2e]
31
+ - Updated dependencies [1b644ef]
32
+ - Updated dependencies [420484d]
33
+ - Updated dependencies [52373a6]
34
+ - @rolino/contracts@0.1.0
35
+ - @rolino/sdk@0.1.0
36
+ - @rolino/local-auth@0.1.0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Vlad
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,111 @@
1
+ # `@rolino/mcp`
2
+
3
+ Rolino's Model Context Protocol adapter. The first supported transport is local
4
+ stdio and it calls the same public API used by the CLI. Remote Streamable HTTP
5
+ remains gated by the OAuth interoperability decision in ADR 0003.
6
+
7
+ ## Installation
8
+
9
+ Local MCP remains a separate, explicit
10
+ installation so CLI-only users do not receive MCP runtime dependencies:
11
+
12
+ ```bash
13
+ npm install --global @rolino/cli @rolino/mcp
14
+ ```
15
+
16
+ The CLI handles browser authorization and writes token-free Codex or Claude
17
+ Code configuration that points to this package's installed stdio entry point.
18
+ Headless operators may install only `@rolino/mcp` and provide a scoped
19
+ `ROLINO_TOKEN` explicitly.
20
+
21
+ Initial tools:
22
+
23
+ - `whoami`
24
+ - `list_projects`
25
+ - `get_project`
26
+ - `create_project`
27
+ - `list_media_assets`
28
+ - `upload_media_asset`
29
+ - `list_posts`
30
+ - `get_post`
31
+ - `create_draft_post`
32
+ - `update_draft_post`
33
+ - `get_post_readiness`
34
+ - `preview_post_schedule`
35
+ - `execute_post_schedule`
36
+ - `preview_post_publish`
37
+ - `execute_post_publish`
38
+ - `list_integration_health`
39
+ - `list_calendar_events`
40
+
41
+ The media tools discover reusable project assets and upload one explicitly
42
+ approved local JPEG, PNG, WebP, MP4, or MOV file directly to configured
43
+ storage. Uploading never creates, schedules, or publishes a post; the returned
44
+ asset ID is passed into a later draft operation.
45
+
46
+ The tool set includes discovery and inspection tools that are read-only.
47
+ `create_project` is an additive, closed-world mutation that requires
48
+ `projects:write` and a caller-supplied idempotency key. It atomically saves the
49
+ project and its paired brand without starting research, connecting accounts,
50
+ scheduling posts, or publishing. The two draft tools can create or replace
51
+ draft content but cannot schedule or publish it. Both require caller-supplied
52
+ idempotency keys, and updates also require the version returned by `get_post`
53
+ so stale writes fail safely. Every tool returns output-schema-validated
54
+ `structuredContent` plus a JSON text fallback.
55
+ YouTube drafts require exactly one stored video, explicit title/category/
56
+ visibility/audience/declaration settings, and optional tags. The YOUTUBE caption
57
+ override becomes the video description, with the shared caption as fallback.
58
+ Unaudited Google API projects may be restricted to Private uploads; the tools
59
+ do not infer audit approval from server configuration.
60
+ Bluesky drafts can be text-only or contain up to four stored JPEG, PNG, or WebP
61
+ images. The BLUESKY caption override accepts up to 300 graphemes, with the
62
+ shared caption as fallback.
63
+ Integration health is cached and secret-safe, post
64
+ readiness reuses Rolino's publishing checks, and calendar reads use bounded
65
+ date windows with cursor pagination. After `rolino auth login`, configure `ROLINO_URL` and
66
+ the server automatically reuses the browser-authorized credential saved for
67
+ that exact host. `ROLINO_TOKEN` remains an explicit override for CI and other
68
+ headless environments. `ROLINO_CONFIG_DIR` can override the portable credential
69
+ directory, and `ROLINO_TIMEOUT` is optional. Stdout is reserved for MCP
70
+ messages; startup failures go to stderr without secrets or stack traces.
71
+ `ROLINO_TIMEOUT` accepts integer milliseconds or values such as `500ms`, `15s`,
72
+ and `1m`, matching the CLI.
73
+
74
+ Scheduling uses two separate tools. `preview_post_schedule` contacts the
75
+ configured providers, validates the exact post version, time, timezone, and
76
+ readiness, and returns a five-minute single-use confirmation without scheduling
77
+ anything. `execute_post_schedule` is marked consequential and open-world; it
78
+ requires the unchanged preview values, confirmation token, and a stable
79
+ idempotency key. The server repeats readiness and live-health checks and rejects
80
+ expired, consumed, stale, cross-credential, or mismatched confirmation.
81
+ For YouTube, the preview explains that confirmed scheduling starts or resumes a
82
+ private upload immediately so processing can complete before the Public target.
83
+ Execution may return a typed `PENDING` result while the remote schedule is
84
+ being confirmed; it does not report the video as published.
85
+
86
+ Immediate publishing also uses two tools. `preview_post_publish` checks the
87
+ exact destination set, post version, readiness, live provider health, and retry
88
+ safety without contacting a publish endpoint. `execute_post_publish` requires
89
+ the unchanged preview values, confirmation token, and stable idempotency key,
90
+ then durably queues the selected destinations for immediate delivery. Provider
91
+ calls happen after that database commit, and Rolino's existing reconciliation
92
+ rules block blind retries after ambiguous external results. YouTube remains
93
+ `PREPARING` until upload and processing are provider-confirmed, and its exact
94
+ configured visibility is reconciled before publication is reported.
95
+
96
+ MCP tools cannot enable YouTube or Bluesky or bypass the deployment's
97
+ Google/YouTube approval boundary. Self-hosted operators should complete the
98
+ [YouTube operations guide](https://github.com/deifos/rolino/blob/main/docs/integrations/youtube.md)
99
+ and
100
+ [Bluesky operations guide](https://github.com/deifos/rolino/blob/main/docs/integrations/bluesky.md)
101
+ before live testing.
102
+
103
+ ## Support, security, and license
104
+
105
+ Stable releases are published only after the maintainer approves the release
106
+ gate. Report bugs through the
107
+ [Rolino issue tracker](https://github.com/deifos/rolino/issues) and security
108
+ issues through the repository's
109
+ [security policy](https://github.com/deifos/rolino/security/policy).
110
+
111
+ `@rolino/mcp` is available under the MIT License.