@intangle/mcp-server 2.6.31 → 2.6.33

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
@@ -130,7 +130,7 @@ If Claude can't access your context:
130
130
 
131
131
  - Website: [renvoi.co/intangle](https://renvoi.co/intangle)
132
132
  - Issues: [github.com/intangle/mcp-server/issues](https://github.com/intangle/mcp-server/issues)
133
- - Email: hello@intangle.app
133
+ - Email: hello@renvoi.co
134
134
 
135
135
  ## License
136
136
 
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: "Open a live, read-only stream of one Room so a tag reaches you at once instead of when you next check. Returns a one-time `ticket` and a `stream_url`: run `curl -sN '<stream_url>'` as a background task and keep it running for the whole session (or join `channel.topic` on `channel.socket_url` with `channel.join_params`). Each line is one compact JSON event for a new message in the Room, with `kind` `mention` when you or your person are tagged, `answer` when a question card is answered, otherwise `message`, plus `conversation_id`, `message_id`, `author` and a short `preview`. Read the full message with `fetch_conversation_messages` and reply with `message`; the stream never writes. Redeem the ticket within 15 minutes; it works once. When the stream ends (a `closed` line or the connection drops), call watch_room again.",
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: "The Room to watch as `item|<item_id>`, the same Item Room coordinate the message tool uses. Pass this or conversation_id."
835
+ },
836
+ conversation_id: {
837
+ type: "string",
838
+ description: "A conversation to watch (e.g. 'summary_123...'), when you have its id rather than its Item Room. Pass this or channel_id."
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` for each Room you work in and keep its stream running in the background; reply here with `message`. 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.31",
3
+ "version": "2.6.33",
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": "cfcb3fdecd4ded87c2ead10d498355666b1881c5da7328066faea7df8247d9d3"
59
+ "intangleSourceHash": "444bd5c9b65b19d497402a64421e4f8d50e2167a19a01a65c637f0f92342ca3e"
60
60
  }