@homespunapps/mcp 1.6.26 → 1.6.28

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
@@ -107,7 +107,7 @@ To keep the tool list compact (a flat 50+ tools would bloat client context and d
107
107
  | `deploy_app` | Deploy a v2 app: an HTML document plus a capability manifest, hosted at its own URL. Omit `app_id` to create, pass it to redeploy in place (same URL, same data, same members). Takes `html` or `html_path`, optional `assets`, `visibility`, `slug`, `dry_run`, `force`. |
108
108
  | `list_rows` | List rows in a collection. Doubles as the poll for a collection's current state: pass the prior `next_cursor` as `since`. |
109
109
  | `get_row` | Fetch one row by `key` (a dedicated relay route, not a client-side scan). |
110
- | `upsert_row` | Create a row, or return the existing one if `key` is already present (`deduped: true`). The only create-shaped verb. |
110
+ | `upsert_row` | Create a row, or return the existing one if `key` is already present (`deduped: true`), or `row_not_found` when the collection's `read` list does not reach that row for you. The only create-shaped verb. |
111
111
  | `update_row` | Replace an existing row's `data`. Optional `if_match` optimistic lock. |
112
112
  | `delete_row` | Soft-delete a row. Optional `if_match`. |
113
113
  | `get_feed_events` | Poll the app's change feed for row creates/updates/deletes from any writer, human or agent. Optional `wait` (0-30s) long-poll. |
package/dist/tools.js CHANGED
@@ -240,7 +240,7 @@ const upsertRowShape = {
240
240
  key: z
241
241
  .string()
242
242
  .optional()
243
- .describe("Optional stable key. Reusing an existing key returns the existing row (deduped:true)."),
243
+ .describe("Optional stable key. Reusing an existing key returns the existing row (deduped:true), or row_not_found when the collection's read list does not reach that row for you."),
244
244
  data: jsonValueSchema.describe("The row body - any JSON value valid against the collection's row schema (an object, or any JSON value for a schemaless collection)."),
245
245
  };
246
246
  const updateRowShape = {
@@ -894,7 +894,7 @@ export const TOOLS = [
894
894
  },
895
895
  {
896
896
  name: "upsert_row",
897
- description: "Create a row in a v2 app's collection, or return the existing row if `key` is already present (deduped:true). This is the ONLY create-shaped verb for app rows (no separate strict create). Omit `key` to add a new row (server-generates one); pass `key` to ensure a row exists at that key. The collection must be declared in the app's manifest with 'agent' in its `write` list, the list that gates creates. Returns { row, deduped? }.",
897
+ description: "Create a row in a v2 app's collection, or return the existing row if `key` is already present (deduped:true). This is the ONLY create-shaped verb for app rows (no separate strict create). Omit `key` to add a new row (server-generates one); pass `key` to ensure a row exists at that key. The collection must be declared in the app's manifest with 'agent' in its `write` list, the list that gates creates. If `key` matches a row the collection's `read` list does not reach for you, the answer is row_not_found rather than the row, matching what get_row would say, so this verb never reads past `read`. Returns { row, deduped? }.",
898
898
  inputSchema: upsertRowShape,
899
899
  annotations: {
900
900
  title: "Upsert Row",
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "1.6.26";
1
+ export declare const VERSION = "1.6.28";
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Single source of the package version, reported in the MCP server's
2
2
  // serverInfo. Kept in sync with package.json by the release tooling.
3
- export const VERSION = "1.6.26";
3
+ export const VERSION = "1.6.28";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@homespunapps/mcp",
3
3
  "mcpName": "dev.homespun/homespun",
4
- "version": "1.6.26",
4
+ "version": "1.6.28",
5
5
  "description": "Model Context Protocol (stdio) server for Homespun: lets any MCP client (Claude Desktop, Cursor, …) deploy a multi-user web app with hosting, auth, a shared database and permissions included.",
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -46,7 +46,7 @@
46
46
  },
47
47
  "dependencies": {
48
48
  "@modelcontextprotocol/sdk": "^1.20.0",
49
- "@homespunapps/core": "^1.6.26",
49
+ "@homespunapps/core": "^1.6.28",
50
50
  "zod": "^4.4.3"
51
51
  },
52
52
  "devDependencies": {
package/server.json CHANGED
@@ -3,14 +3,14 @@
3
3
  "name": "dev.homespun/homespun",
4
4
  "title": "Homespun",
5
5
  "description": "Deploy a multi-user web app from your agent: hosting, auth, database, and permissions.",
6
- "version": "1.6.26",
6
+ "version": "1.6.28",
7
7
  "websiteUrl": "https://docs.homespun.dev",
8
8
  "packages": [
9
9
  {
10
10
  "registryType": "npm",
11
11
  "registryBaseUrl": "https://registry.npmjs.org",
12
12
  "identifier": "@homespunapps/mcp",
13
- "version": "1.6.26",
13
+ "version": "1.6.28",
14
14
  "transport": {
15
15
  "type": "stdio"
16
16
  },