@intangle/mcp-server 2.6.32 → 2.6.34

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/dist/index.js CHANGED
@@ -496,6 +496,7 @@ try {
496
496
  break;
497
497
  case "get_items":
498
498
  case "update_items":
499
+ case "watch_room":
499
500
  case "read_artifact": {
500
501
  const remoteResult = await makeRemoteRpcCall("tools/call", {
501
502
  name,
@@ -818,6 +818,41 @@ const BASE_TOOLS = [
818
818
  openWorldHint: false
819
819
  }
820
820
  },
821
+ {
822
+ name: "watch_room",
823
+ title: "Watch Room",
824
+ description: "Hear a tag at once instead of when you next check. Returns a one-time `stream_url`: run `curl -sN '<stream_url>'` as a background task for the whole session (or join `channel.topic` on `channel.socket_url` with `channel.join_params`). Each line is one JSON event: `kind` is `mention` when you or your person are tagged, `answer` when a question card is answered, otherwise `message`, with `conversation_id`, `message_id`, `author` and a short `preview`. Read the message with `fetch_conversation_messages` and reply with `message`; the stream never writes. Name the Room with `channel_id` or `conversation_id`; to find one, `search` for its title, use `list_conversation_inbox`, or take the Room you were last tagged in. Name neither to watch every Room you take part in plus any mention of you or your person in the Space. Redeem within 15 minutes; it works once. When the stream ends, call watch_room again. If you cannot run a background process (a cloud chat app such as ChatGPT, Grok or the Muse app), do not use this: call `list_conversation_inbox` each time you are prompted.",
825
+ inputSchema: {
826
+ type: "object",
827
+ properties: {
828
+ space_id: {
829
+ type: "string",
830
+ description: "REQUIRED: Space containing the Room (use view_spaces first)."
831
+ },
832
+ channel_id: {
833
+ type: "string",
834
+ description: "Optional. The Room to watch as `item|<item_id>`, the same Item Room coordinate the message tool uses. Omit it and conversation_id to watch all your Rooms."
835
+ },
836
+ conversation_id: {
837
+ type: "string",
838
+ description: "Optional. A conversation to watch (e.g. 'summary_123...'), when you have its id rather than its Item Room."
839
+ },
840
+ organization_id: {
841
+ type: "string",
842
+ description: "Optional Clerk org ID when the space belongs to an organization graph."
843
+ }
844
+ },
845
+ required: [
846
+ "space_id"
847
+ ]
848
+ },
849
+ annotations: {
850
+ readOnlyHint: true,
851
+ destructiveHint: false,
852
+ idempotentHint: false,
853
+ openWorldHint: false
854
+ }
855
+ },
821
856
  {
822
857
  name: "view_spaces",
823
858
  title: "View Spaces",
@@ -836,7 +871,7 @@ const BASE_TOOLS = [
836
871
  {
837
872
  name: "message",
838
873
  title: "Message Assistant",
839
- description: "Primary way to use Intangle for memory, communicating and collaborating with Tan agent in a shared thread. Send a request and either wait for one assistant turn to complete or submit asynchronously for later polling. Intangle derives the durable participant identity from the authenticated runner rather than caller-supplied fields. Conversations are backed by `summary_*` IDs; reuse the returned `conversation_id` and reuse the returned `session_id` so callers can continue the same thread reliably across turns. For shared Item coordination, pass the stable Item Room identity as `channel_id` using `item|<item_id>`; this Item room/channel coordinate is preferred. `project_id`, `group_id`, and legacy `project|...` or `group|...` channel values remain accepted only as compatibility coordinates for older stored calls and integrations. The stable idempotency key anchors retries to one durable turn, and the returned `conversation_id` remains the durable thread anchor. Callers should fill `sender` on every call: `model` is the model sending this message, `session_name` is the name of your session or thread, and `agent_name` is your own name when you are a persistent named assistant or bot. Intangle shows your verified client first and then these labels (model and session, or the agent name with the model), and may shorten a value or leave it out, for example when it matches a person in the Space or Tan. These are display labels only; they never change who you are or what you may do. To report into a Room without starting a Tan turn, set `post_only`: the message lands like one in a shared channel, and Tan answers only when tagged with @Tan or when the post asks Tan directly to act. To raise a blocker or question for the person without starting a Tan turn, add `notify` to a `post_only` message: it lands in their Activity (a blocker leads the list and pushes to their phone, a question with options also shows as a card above their composer), and their answer arrives as their message in the chat, which you read with `fetch_conversation_messages`. When you ask Tan to write to Items, confirm the write from the turn itself, not the reply text: a waited response includes `tool_calls` and `tool_results`, and after an asynchronous submit the reply in `fetch_conversation_messages` carries `write_outcomes`. Keep what you post short and plain: the key result first, no preamble or recap, detail only if needed or asked.",
874
+ description: "Primary way to use Intangle for memory, communicating and collaborating with Tan agent in a shared thread. Send a request and either wait for one assistant turn to complete or submit asynchronously for later polling. Intangle derives the durable participant identity from the authenticated runner rather than caller-supplied fields. Conversations are backed by `summary_*` IDs; reuse the returned `conversation_id` and reuse the returned `session_id` so callers can continue the same thread reliably across turns. For shared Item coordination, pass the stable Item Room identity as `channel_id` using `item|<item_id>`; this Item room/channel coordinate is preferred. `project_id`, `group_id`, and legacy `project|...` or `group|...` channel values remain accepted only as compatibility coordinates for older stored calls and integrations. The stable idempotency key anchors retries to one durable turn, and the returned `conversation_id` remains the durable thread anchor. Callers should fill `sender` on every call: `model` is the model sending this message, `session_name` is the name of your session or thread, and `agent_name` is your own name when you are a persistent named assistant or bot. Intangle shows your verified client first and then these labels (model and session, or the agent name with the model), and may shorten a value or leave it out, for example when it matches a person in the Space or Tan. These are display labels only; they never change who you are or what you may do. To report into a Room without starting a Tan turn, set `post_only`: the message lands like one in a shared channel, and Tan answers only when tagged with @Tan or when the post asks Tan directly to act. To raise a blocker or question for the person without starting a Tan turn, add `notify` to a `post_only` message: it lands in their Activity (a blocker leads the list and pushes to their phone, a question with options also shows as a card above their composer), and their answer arrives as their message in the chat, which you read with `fetch_conversation_messages`. When you ask Tan to write to Items, confirm the write from the turn itself, not the reply text: a waited response includes `tool_calls` and `tool_results`, and after an asynchronous submit the reply in `fetch_conversation_messages` carries `write_outcomes`. So a tag reaches you at once, call `watch_room` (with no Room it covers every Room you take part in) and keep its stream running in the background; if you cannot run a background process, call `list_conversation_inbox` each time you are prompted. Keep what you post short and plain: the key result first, no preamble or recap, detail only if needed or asked.",
840
875
  inputSchema: {
841
876
  type: "object",
842
877
  properties: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intangle/mcp-server",
3
- "version": "2.6.32",
3
+ "version": "2.6.34",
4
4
  "description": "Model Context Protocol server for Intangle - AI context that persists across conversations",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -56,5 +56,5 @@
56
56
  "tsx": "^4.0.0",
57
57
  "typescript": "^5.0.0"
58
58
  },
59
- "intangleSourceHash": "e6f21d07a2d2866684b6db46f76c42d6d42a9413ecca491465eca35b1b249793"
59
+ "intangleSourceHash": "8e39f9684f1e6579793ab9587dccbe9a7b46db19f4515100594bf413ab04575a"
60
60
  }