@floomhq/floom-mcp-sync 1.0.6 → 1.0.8

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/README.md CHANGED
@@ -1,42 +1,73 @@
1
1
  # Floom MCP Sync
2
2
 
3
- Tiny MCP server for Floom skills. This package is part of the Floom Version 1 synchronization preview.
3
+ Lightweight MCP server for Floom skills. The launch path is CLI-first; MCP gives agents a small search/get/status/sync surface and keeps full skill content out of always-on context.
4
4
 
5
5
  ```bash
6
6
  npx -y @floomhq/floom-mcp-sync
7
7
  ```
8
8
 
9
- On startup it reads `~/.floom/config.json`, fetches published, saved, and followed library skills, and writes missing files to the configured local skills directory. Account-backed sync requires `npx -y @floomhq/floom login`. Public and unlisted shared-link installs still work through `floom_install_skill` without an account. The background sync behavior is a Version 1 preview path.
9
+ On startup it reads `~/.floom/config.json`, fetches the signed-in user's sync set from `/api/v1/me/skills`, and writes native skill packages:
10
10
 
11
- Targets:
11
+ ```text
12
+ <skills-dir>/
13
+ <slug>/
14
+ SKILL.md
15
+ references/
16
+ examples/
17
+ scripts/
18
+ assets/
19
+ ```
20
+
21
+ `references/`, `examples/`, `scripts/`, and `assets/` are optional and only appear when the synced package includes supporting files. Search results stay compact. Full `SKILL.md` content loads only when an agent calls `floom_get_skill` or when local sync writes the package.
22
+
23
+ ## Setup
24
+
25
+ Claude Code:
26
+
27
+ ```json
28
+ {
29
+ "mcpServers": {
30
+ "floom": {
31
+ "command": "npx",
32
+ "args": ["-y", "@floomhq/floom-mcp-sync"],
33
+ "env": {
34
+ "FLOOM_SKILLS_DIR": "~/.claude/skills"
35
+ }
36
+ }
37
+ }
38
+ }
39
+ ```
40
+
41
+ Codex:
42
+
43
+ ```toml
44
+ [mcp_servers.floom]
45
+ command = "npx"
46
+ args = ["-y", "@floomhq/floom-mcp-sync"]
47
+
48
+ [mcp_servers.floom.env]
49
+ FLOOM_SKILLS_DIR = "~/.codex/skills"
50
+ ```
51
+
52
+ Directory resolution order is `FLOOM_SKILLS_DIR`, `CLAUDE_SKILLS_DIR`, `CODEX_SKILLS_DIR`, then `~/.claude/skills`.
53
+
54
+ ## Sync Behavior
12
55
 
13
- - default: Claude Code, `~/.claude/skills/`
14
- - Codex: `FLOOM_TARGET=codex npx -y @floomhq/floom-mcp-sync`, `~/.codex/skills/`
15
- - direct override: `FLOOM_SKILLS_DIR=/path/to/skills npx -y @floomhq/floom-mcp-sync`
56
+ Sync stores a machine-local manifest next to the Floom CLI config at `~/.floom/sync-manifest.json`. The manifest records each package file path, slug, SHA-256 hash, and sync time, which lets MCP detect unchanged files, missing files, local edits, and blocked paths.
16
57
 
17
- Sync stores a machine-local manifest next to the Floom CLI config at `~/.floom/sync-manifest.json`.
18
- Version 1 sync does not replace existing local Markdown files. Remote updates, existing untracked
19
- files, and locally edited tracked files are skipped as conflicts. Symlinks are never followed. Move
20
- or delete the local file to accept the Floom version on the next sync.
58
+ Version 1 sync does not replace existing local files. Remote updates, existing untracked files, and locally edited tracked files are skipped as conflicts. Symlinks are never followed. Move or delete the local file to accept the Floom version on the next sync.
21
59
 
22
- The poll uses HTTP `If-None-Match` against `/api/v1/me/skills`, so unchanged responses are 304 with no body. Steady-state polling is ~free on bandwidth. If a Floom-tracked local file is missing after a 304, MCP refetches once without the ETag so Version 1 can recreate missing files without overwriting existing Markdown.
60
+ The poll uses HTTP `If-None-Match` against `/api/v1/me/skills`, so unchanged responses are `304` with no body. If a Floom-tracked local file is missing after a `304`, MCP refetches once without the ETag so Version 1 can recreate missing files without overwriting existing files.
23
61
 
24
62
  Configure the preview poll interval with `FLOOM_SYNC_INTERVAL_MS` (default `60000`, minimum `10000`).
25
63
 
26
- Tools:
64
+ ## Tools
27
65
 
28
- - `floom_search_skills(query, library?, type?, limit?)` searches `/api/v1/search` and returns compact skill hits with slug, title, description, library placement, folder, and install URL.
29
- - `type`: `knowledge`, `instruction`, `workflow`, or `skill`
30
- - `limit`: 1-50
31
- - `floom_install_skill(slug)` fetches `/s/<slug>.md` and writes it locally. Public and unlisted skills do not require an account.
32
- - `floom_publish_skill(name, content, description?, visibility?, asset_type?, installs_as?, version?)` publishes Markdown through `/api/skills` for the signed-in Floom account.
33
- - `asset_type`: `knowledge`, `instruction`, `workflow`, or `skill` (default `skill`)
34
- - `installs_as`: `claude_skill`, `memory`, `rule`, `codex_instruction`, `opencode_instruction`, `cursor_rule`, or `other` (default `claude_skill`)
35
- - `version`: optional label like `1.0.0` or `v1-preview`
66
+ - `floom_search_skills(query, library?, type?, limit?)` searches `/api/v1/search` and returns compact hits: slug, title, description, type, library placement, folder, and install URL.
67
+ - `floom_get_skill(slug)` fetches full skill content from `/api/v1/skills/<slug>` on demand.
68
+ - `floom_status()` reports the local manifest, tracked file counts, and drift counts.
69
+ - `floom_sync()` runs one foreground sync.
36
70
 
37
- - `floom_list_libraries()` lists public Floom libraries.
38
- - `floom_subscribe_library(slug)` follows a library for the signed-in user so the library syncs locally.
39
- - `floom_unsubscribe_library(slug)` unfollows that library.
40
- - `floom_move_skill(slug, folder, tags?)` sets the signed-in user's local folder/tags override.
71
+ `type` is `knowledge`, `instruction`, `workflow`, or `skill`. `limit` is 1-50.
41
72
 
42
- Team workspaces, share invites, and role-based library access are planned for a later Floom version.
73
+ MCP does not expose the full library as context. It does not publish, mutate libraries, manage teams, or handle marketplace workflows.