mcp-twake-ai 0.1.0 → 0.2.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/README.md CHANGED
@@ -1,103 +1,161 @@
1
1
  # mcp-twake-ai
2
2
 
3
- **Connect the Twake.ai MCP servers to your AI agent with one sign-in.**
3
+ [![npm version](https://img.shields.io/npm/v/mcp-twake-ai)](https://www.npmjs.com/package/mcp-twake-ai)
4
+ [![CI](https://github.com/linagora/mcp-twake-ai/actions/workflows/ci.yml/badge.svg)](https://github.com/linagora/mcp-twake-ai/actions/workflows/ci.yml)
5
+ [![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)](LICENSE)
6
+ [![Node.js >= 22.13](https://img.shields.io/badge/node-%3E%3D22.13-brightgreen.svg)](https://nodejs.org/)
4
7
 
5
- `mcp-twake-ai` is the token broker the six [Twake.ai MCP servers](https://github.com/linagora/mcp-twake-project#part-of-twakeai) refer to as `my-token-broker`. It signs you in once at your Twake.ai identity provider, keeps the refresh token in your operating system's keychain (macOS Keychain, Windows Credential Manager, Secret Service), and prints a fresh access token whenever an MCP server asks for one.
8
+ <p align="center">
9
+ <img src="assets/banner.png" alt="MCP Twake.ai: sets up the MCP servers of the Twake.ai platform in your AI agents" width="660">
10
+ </p>
6
11
 
7
- > **Status: early.** This version serves the six Twake.ai services (Mail, Calendar and contacts, Drive, Chat, Space, Project), writes them into Claude Code, Hermes, Claude Desktop, Cursor and VS Code with a guided `setup`, checks them (`status`), signs out (`logout`) and removes itself (`uninstall`). It also exports the configuration for any other agent (`export`).
12
+ **One command connects your AI agent to [Twake.ai](https://twake.ai): Mail, Calendar, Drive, Chat, Space and Project, with a single sign-in.**
13
+
14
+ ```bash
15
+ npx mcp-twake-ai setup
16
+ ```
17
+
18
+ ## What is it?
19
+
20
+ `mcp-twake-ai` sets up the six Twake.ai [Model Context Protocol](https://modelcontextprotocol.io) (MCP) servers in your AI agents (Claude Code, Hermes, Claude Desktop, Cursor and VS Code), and gives any other agent a ready-made configuration.
21
+
22
+ You type your email address and sign in once at your Twake.ai identity provider. `mcp-twake-ai` finds your services, writes them into the agents you choose, then stays behind as their token broker: the refresh token sits in your operating system's keychain, and each MCP server gets a fresh access token whenever it needs one. No password or token is written into an agent's configuration.
23
+
24
+ ## Part of Twake.ai
25
+
26
+ [Twake.ai](https://twake.ai) is the truly open source and sovereign Digital Workplace developed by [LINAGORA](https://linagora.com): Twake Mail, Twake Calendar, Twake Drive, Twake Chat, Twake Space and Twake Visio with a single account, hosted in France or on your own infrastructure.
27
+
28
+ `mcp-twake-ai` installs and connects its six open source MCP servers:
29
+
30
+ | MCP server | Twake.ai service | Protocol |
31
+ | ------------------------------------------------------------------ | --------------------------------------- | ----------------- |
32
+ | [mcp-twake-mail](https://github.com/linagora/mcp-twake-mail) | Twake Mail | JMAP |
33
+ | [mcp-twake-dav](https://github.com/linagora/mcp-twake-dav) | Twake Calendar and contacts | CalDAV / CardDAV |
34
+ | [mcp-twake-drive](https://github.com/linagora/mcp-twake-drive) | Twake Drive | cozy-stack API |
35
+ | [mcp-twake-chat](https://github.com/linagora/mcp-twake-chat) | Twake Chat | Matrix |
36
+ | [mcp-twake-space](https://github.com/linagora/mcp-twake-space) | Twake Space (team spaces) | Twake Space API |
37
+ | [mcp-twake-project](https://github.com/linagora/mcp-twake-project) | Twake Project (projects, boards, tasks) | Twake Project API |
8
38
 
9
39
  ## Requirements
10
40
 
11
41
  - **Node.js** >= 22.13
12
42
  - An account on the Twake.ai SaaS
13
- - The OIDC client `twake-ai-agents` on your identity provider (public client, PKCE, `offline_access`, loopback redirect URIs `http://127.0.0.1:8765/callback` to `:8767`, device flow, and the audiences of the Twake.ai backends). Another client can be used with `--client-id` or `TWAKE_AI_OIDC_CLIENT_ID`.
43
+ - One of the agents above, or any MCP client for `export`
44
+
45
+ Your identity provider needs the public OIDC client `twake-ai-agents` (PKCE, `offline_access`, loopback redirect URIs `http://127.0.0.1:8765/callback` to `:8767`, device flow, and the audiences of the Twake.ai backends). It exists on the Twake.ai SaaS; another client can be used with `--client-id` or `TWAKE_AI_OIDC_CLIENT_ID`.
14
46
 
15
47
  ## Start here
16
48
 
49
+ Run it in a terminal, from any folder:
50
+
17
51
  ```bash
18
52
  npx mcp-twake-ai setup
19
53
  ```
20
54
 
21
- In a terminal, `setup` guides you: your email, the sign-in in your browser, the agents found on this computer and the services of your account, the plan, one confirmation, then a check that every server starts. It speaks English (`TWAKE_AI_LANGUAGE=fr` switches it to French). Pressing Escape at any question leaves everything as it was and revokes the sign-in it made.
55
+ The guided setup asks a few questions and changes nothing before you confirm. It speaks English (`TWAKE_AI_LANGUAGE=fr` switches it to French), and pressing Escape at any question leaves everything as it was.
22
56
 
23
- Under `npx`, mcp-twake-ai installs itself into its private folder, so that the agents never depend on npx's cache, and puts a `mcp-twake-ai` command in `~/.local/bin` (`%LOCALAPPDATA%\twake-ai\bin` on Windows).
57
+ **1. Your Twake.ai email address.** It is enough to find your services.
24
58
 
25
- ## Install and sign in
59
+ <img src="assets/setup-1-email.png" alt="The banner of mcp-twake-ai setup, then the question: your Twake.ai email address" width="760">
26
60
 
27
- ```bash
28
- npm install -g mcp-twake-ai
29
- mcp-twake-ai login --email jane.doe@example.com
30
- ```
61
+ **2. Sign in once.** Your browser opens on your Twake.ai sign-in page. Over SSH, without a display or with `--no-browser`, the terminal shows a code to enter from your phone or another computer instead:
31
62
 
32
- The MCP servers call `mcp-twake-ai` on their own, long after you signed in: it has to stay installed. A global install, or the copy `setup` makes under `npx`, does that.
63
+ <img src="assets/setup-2-code.png" alt="The services found for jdoe@example.com, then the address to open and the code WDJB-MJHT" width="760">
33
64
 
34
- `mcp-twake-ai` finds your Twake.ai services from your address, opens your browser to sign in, and stores the session. Over SSH or without a display it shows a code to enter from another device instead (`--no-browser` forces it).
65
+ <img src="assets/setup-3-sso.png" alt="The Device Authorization page of the identity provider, with the code WDJBMJHT ready to authorize" width="620">
35
66
 
36
- ## Use it from an MCP server
67
+ **3. Choose the agents and the services.** The agents found on this computer, and the services of your account, are ticked in advance.
37
68
 
38
- Every Twake.ai MCP server takes a command that prints a token. Give it the absolute path of `mcp-twake-ai` (`command -v mcp-twake-ai` prints it): some agents, such as Claude Desktop started from the Finder, do not see your `PATH`.
69
+ <img src="assets/setup-4-choose.png" alt="Claude Code and Cursor chosen; Mail, Calendar, Space and Project ticked among the services" width="760">
39
70
 
40
- ```bash
41
- claude mcp add twake-project --scope user \
42
- -e TWAKE_PROJECT_URL=https://projects.example.com \
43
- -e "TWAKE_PROJECT_TOKEN_COMMAND=$(command -v mcp-twake-ai) token project" \
44
- -e TWAKE_PROJECT_OIDC_ISSUER=https://sso.example.com/ \
45
- -- npx -y mcp-twake-project
46
- ```
71
+ **4. Check the plan, and confirm.** Each agent gets one entry per service: `twake-mail`, `twake-dav`…
47
72
 
48
- `mcp-twake-ai token <mail|dav|space|project>` prints `{"access_token": "...", "expires_at": <epoch s>}`. It serves the cached token while it is valid for more than 60 seconds, and otherwise renews it under a lock shared by every process, so several servers in several agents never spend the same refresh token twice. When the session has expired it exits with an error that says to run `mcp-twake-ai login`, which signs you in again with the same identity provider client.
73
+ <img src="assets/setup-5-plan.png" alt="The plan: four twake entries to add in Claude Code and in Cursor, then Apply this plan? Yes" width="760">
49
74
 
50
- Every address `mcp-twake-ai` discovers must use HTTPS (plain http is accepted only for `localhost`), and the identity provider's discovery document must speak for the issuer your domain announces.
75
+ **5. Done.** The servers are installed, written into your agents, and each one is started once to check it answers.
51
76
 
52
- ## Twake Drive and Twake Chat
77
+ <img src="assets/setup-6-done.png" alt="The servers installed and written, each server checked, and what to do to finish in each agent" width="760">
53
78
 
54
- ```bash
55
- mcp-twake-ai login --drive # registers "Twake AI" on your Twake Drive and connects it
56
- mcp-twake-ai login --chat --agent hermes # gives that agent its own Twake Chat device
79
+ Under `npx`, `mcp-twake-ai` copies itself into its private folder, so that your agents never depend on npx's cache, and puts a `mcp-twake-ai` command in `~/.local/bin` (`%LOCALAPPDATA%\twake-ai\bin` on Windows).
80
+
81
+ ## Use it from Claude Code
82
+
83
+ Start a new `claude` session: `/mcp` lists the `twake-*` servers. Then ask in plain words. Reads happen at once; every write is shown to you for approval first (illustrative, abridged session):
84
+
85
+ ```text
86
+ > What's on my calendar tomorrow? Draft a reply to Pierre's last email with my free slots.
87
+
88
+ ⏺ twake-dav - get_events_in_range (MCP)(when: "tomorrow")
89
+ ⎿ 3 events: 09:30 Team stand-up · 11:00 Budget review · 15:00 Call with Acme
90
+
91
+ ⏺ twake-mail - search_emails (MCP)(from: "pierre", limit: 1)
92
+ ⎿ "Workshop next week?" from Pierre Martin, yesterday at 17:42
93
+
94
+ ⏺ twake-mail - create_draft (MCP)(to: ["pierre.martin@example.com"], subject: "Re: Workshop next week?", …)
95
+
96
+ ╭─ twake-mail asks for your approval ────────────────╮
97
+ │ Create a draft │
98
+ │ to: pierre.martin@example.com │
99
+ │ subject: Re: Workshop next week? │
100
+ │ │
101
+ │ ❯ Accept Decline │
102
+ ╰────────────────────────────────────────────────────╯
103
+ ⎿ Draft saved
104
+
105
+ ⏺ Tomorrow you have the stand-up at 9:30, the budget review at 11:00 and the
106
+ Acme call at 15:00. You are free from 13:00 to 15:00 and after 16:00: the
107
+ reply to Pierre proposing these slots is in your Drafts, ready to send.
57
108
  ```
58
109
 
59
- - **Twake Drive** has its own sign-in (cozy-stack OAuth). Your Twake session is already open, so the browser only asks you to accept the permissions. `mcp-twake-ai token drive` then serves Drive tokens.
60
- - **Twake Chat** encrypts messages end to end, and the encryption keys belong to a device. Each agent therefore gets its own device, "Twake AI · <agent>", listed in your Twake Chat sessions. `mcp-twake-ai token chat --agent hermes` prints the token together with its `device_id` and `user_id`, as mcp-twake-chat expects. Signing in again for the same agent replaces its device and logs the old one out.
61
- - **Over SSH or without a display:** `mcp-twake-ai` prints the address to open on a phone or another computer. At the end, the browser shows a page that cannot load: paste its address back into the terminal.
110
+ More to try:
111
+
112
+ - "Summarize my unread emails from today."
113
+ - "Find the latest version of the budget file in my Drive."
114
+ - "Which tasks are due this week in the Website project?"
115
+ - "Post the meeting notes in the #team room."
62
116
 
63
- ## Configure your agents: `mcp-twake-ai setup`
117
+ ## Commands
118
+
119
+ ### Setup without questions
64
120
 
65
121
  ```sh
122
+ mcp-twake-ai setup --email jane.doe@example.com --agents detected # signs in, shows what would change
66
123
  mcp-twake-ai setup --agents detected # shows what would change, writes nothing
67
124
  mcp-twake-ai setup --agents claude-code,hermes --yes # writes it
68
125
  mcp-twake-ai setup --agents cursor --services mail,dav --yes
69
126
  ```
70
127
 
71
- `setup` writes one entry per service into each agent: `twake-mail`, `twake-dav`… (`twake_mail`… for Hermes). Each entry starts `mcp-twake-ai run <service> --agent <id>`, which builds the server's environment. With `--yes`, `setup` first connects Twake Drive and creates the Chat device of each agent when they are chosen and not connected yet, then installs the pinned servers.
128
+ With `--email`, `setup` first signs in to that account if it is not the current one. With `--yes`, it connects Twake Drive and gives each agent its own Twake Chat device when those services are chosen, installs the pinned servers, then writes the agents.
72
129
 
73
- | Agent (`--agents`) | Where | Approval of writes |
74
- |---|---|---|
75
- | Claude Code (`claude-code`) | `claude mcp add --scope user` | in Claude Code |
76
- | Hermes (`hermes`) | `config.yaml` in `$HERMES_HOME`, `~/.hermes` (`%LOCALAPPDATA%\hermes` on Windows) or its active profile | in Hermes |
77
- | Claude Desktop (`claude-desktop`) | `claude_desktop_config.json` | not supported: reads work, writes are refused |
78
- | Cursor (`cursor`) | `~/.cursor/mcp.json` | in Cursor |
79
- | VS Code (`vscode`) | `Code/User/mcp.json` of the default profile | in VS Code |
130
+ | Agent (`--agents`) | Where | Approval of writes |
131
+ | --------------------------------- | ------------------------------------------------------------------------------------------------------- | --------------------------------------------- |
132
+ | Claude Code (`claude-code`) | `claude mcp add --scope user` | in Claude Code |
133
+ | Hermes (`hermes`) | `config.yaml` in `$HERMES_HOME`, `~/.hermes` (`%LOCALAPPDATA%\hermes` on Windows) or its active profile | in Hermes |
134
+ | Claude Desktop (`claude-desktop`) | `claude_desktop_config.json` | not supported: reads work, writes are refused |
135
+ | Cursor (`cursor`) | `~/.cursor/mcp.json` | in Cursor |
136
+ | VS Code (`vscode`) | `Code/User/mcp.json` of the default profile | in VS Code |
80
137
 
81
138
  - It only changes the entries it wrote. An entry with the same name configured by hand, or changed since, is left alone unless you add `--force`.
82
139
  - A file is copied to `<file>.bak-<date>` before it changes. Comments and other settings are kept.
83
140
  - An agent whose write fails is put back as it was; the others are still written.
84
141
  - Running it again changes nothing. With fewer `--services`, it removes the entries you left out.
142
+ - It exits with 1 when something you asked for was not done (an agent not installed, an entry left alone).
85
143
 
86
- ## Check, sign out, uninstall
144
+ ### Check, sign out, uninstall
87
145
 
88
146
  ```sh
89
- mcp-twake-ai status # session, Drive, every entry, and each server started once
90
- mcp-twake-ai status --no-start # the same without starting the servers
147
+ mcp-twake-ai status # session, Drive, every entry, and each server started once
148
+ mcp-twake-ai status --no-start # the same without starting the servers
91
149
  mcp-twake-ai status --env mail --agent cursor # the environment run builds for a server
92
- mcp-twake-ai logout # revokes every authorization and forgets the secrets
93
- mcp-twake-ai uninstall # shows what it would remove; add --yes to do it
150
+ mcp-twake-ai logout # revokes every authorization and forgets the secrets
151
+ mcp-twake-ai uninstall # shows what it would remove; add --yes to do it
94
152
  ```
95
153
 
96
- - `status` checks the Twake session (userinfo), Twake Drive (`/settings/instance`), each agent's Chat device (`/account/whoami`), that every entry is the one mcp-twake-ai wrote, and that each server answers `initialize` and `tools/list` through its entry. It exits with 1 when something is wrong, and says what.
97
- - `logout` revokes the session at the identity provider, removes "Twake AI" from the Drive connected devices, signs every Chat device out, then deletes the secrets and the cached tokens. Each step is tried even when another one fails.
154
+ - `status` checks the Twake session, Twake Drive, each agent's Chat device, that every entry is the one mcp-twake-ai wrote, and that each server answers through its entry. It exits with 1 when something is wrong, and says what.
155
+ - `logout` revokes the session at the identity provider, removes "Twake AI" from the Drive connected devices, signs every Chat device out, then deletes the secrets and the cached tokens.
98
156
  - `uninstall --yes` removes the entries it wrote (`--force` for those changed by hand), signs out, and deletes the servers, the configuration, the cache and the journal. The Twake Chat stores hold the local index of your messages: they are kept unless you add `--delete-chat-stores`.
99
157
 
100
- ## Any agent: `mcp-twake-ai export`
158
+ ### Any other agent: `export`
101
159
 
102
160
  ```bash
103
161
  mcp-twake-ai export --agent zed # every service found and connected
@@ -105,22 +163,37 @@ mcp-twake-ai export --agent cursor --services mail,chat --out ./cursor-config
105
163
  mcp-twake-ai export --agent zed --raw # the servers and their full environment
106
164
  ```
107
165
 
108
- `export` installs the pinned Twake.ai MCP servers into mcp-twake-ai's private folder, creates the agent's Twake Chat device if needed, and writes `mcpServers.json` (Claude Desktop, Cursor, Windsurf, Cline, Gemini CLI…), `vscode-mcp.json`, `hermes.yaml`, `codex.toml`, `claude-code.sh` and one `<service>.env` per service, with a README saying where each goes. By default the entries start `mcp-twake-ai run <service> --agent <id>`, which builds the server's environment (URLs, token command, language, time zone); variables already set in the agent's environment win. No file holds a secret.
166
+ `export` installs the pinned servers into mcp-twake-ai's private folder and writes `mcpServers.json` (Claude Desktop, Cursor, Windsurf, Cline, Gemini CLI…), `vscode-mcp.json`, `hermes.yaml`, `codex.toml`, `claude-code.sh` and one `<service>.env` per service, with a README saying where each goes. No file holds a secret.
167
+
168
+ ### Tokens for your own MCP configuration
169
+
170
+ `setup` and `export` write everything for you. To configure a Twake.ai MCP server by hand, install `mcp-twake-ai` for good (`npm install -g mcp-twake-ai`), sign in, and give the server its token command, with the absolute path of `mcp-twake-ai` (some agents, such as Claude Desktop started from the Finder, do not see your `PATH`):
171
+
172
+ ```bash
173
+ mcp-twake-ai login --email jane.doe@example.com
174
+ claude mcp add twake-project --scope user \
175
+ -e TWAKE_PROJECT_URL=https://projects.example.com \
176
+ -e "TWAKE_PROJECT_TOKEN_COMMAND=$(command -v mcp-twake-ai) token project" \
177
+ -e TWAKE_PROJECT_OIDC_ISSUER=https://sso.example.com/ \
178
+ -- npx -y mcp-twake-project
179
+ ```
180
+
181
+ `mcp-twake-ai token <mail|dav|space|project>` prints `{"access_token": "...", "expires_at": <epoch s>}`. It serves the cached token while it is valid for more than 60 seconds, and otherwise renews it under a lock shared by every process, so several servers in several agents never spend the same refresh token twice. When the session has expired, it says to run `mcp-twake-ai login`.
109
182
 
110
183
  ## Files
111
184
 
112
- | What | Where (Linux, macOS) |
113
- |---|---|
114
- | Configuration (no secret) | `~/.config/twake-ai/config.json` |
115
- | Refresh token | the OS keychain, service `twake-ai`; otherwise `~/.config/twake-ai/secrets.json` (`0600`) |
116
- | Cached access tokens | `~/.cache/twake-ai/tokens/` (`0600`) |
117
- | Journal (steps and errors, secrets masked) | `~/.local/state/twake-ai/twake-ai.log` |
185
+ | What | Where (Linux, macOS) |
186
+ | ------------------------------------------ | ----------------------------------------------------------------------------------------- |
187
+ | Configuration (no secret) | `~/.config/twake-ai/config.json` |
188
+ | Refresh token | the OS keychain, service `twake-ai`; otherwise `~/.config/twake-ai/secrets.json` (`0600`) |
189
+ | Cached access tokens | `~/.cache/twake-ai/tokens/` (`0600`) |
190
+ | Journal (steps and errors, secrets masked) | `~/.local/state/twake-ai/twake-ai.log` |
118
191
 
119
192
  On Windows: `%APPDATA%\twake-ai` and `%LOCALAPPDATA%\twake-ai`. `TWAKE_AI_HOME` groups everything under one directory.
120
193
 
121
- ## Live test
194
+ ## Security
122
195
 
123
- `LIVE_EMAIL=jane.doe@company.com node scripts/live.mjs` signs in to a real account in a temporary folder, gets a token for each service, checks `status`, signs out and makes sure the tokens are gone. [`docs/manual-checklist.md`](docs/manual-checklist.md) is the checklist to run in each agent: a question that reads, a write approved through elicitation, and `status`.
196
+ Sign-in with PKCE, the session in the OS keychain, no secret in your agents' files, tokens sent only to HTTPS servers of your own domain, and every write approved by you. [SECURITY.md](SECURITY.md) details the security model and how to report a vulnerability privately.
124
197
 
125
198
  ## Development
126
199
 
@@ -131,8 +204,18 @@ npm run typecheck
131
204
  npm run build # then: node build/bin.js
132
205
  ```
133
206
 
207
+ `LIVE_EMAIL=jane.doe@example.com node scripts/live.mjs` signs in to a real account in a temporary folder, checks each backend and lists the calendars through the calendar's MCP server, then signs out and makes sure the session is revoked. [`docs/manual-checklist.md`](docs/manual-checklist.md) is the checklist to run in each agent.
208
+
209
+ ## Contributing
210
+
211
+ Contributions are welcome: read [CONTRIBUTING.md](CONTRIBUTING.md) and our [Code of Conduct](CODE_OF_CONDUCT.md). Please report vulnerabilities privately as described in [SECURITY.md](SECURITY.md). Release notes are in [CHANGELOG.md](CHANGELOG.md).
212
+
134
213
  ## License
135
214
 
136
215
  Licensed under the **GNU Affero General Public License v3.0** ([AGPL-3.0](LICENSE)).
137
216
 
138
217
  Copyright © 2026 [LINAGORA](https://linagora.com)
218
+
219
+ ## About
220
+
221
+ `mcp-twake-ai` is developed by [LINAGORA](https://linagora.com), French open source software publisher, as part of [Twake.ai](https://twake.ai). For support, hosting or integration of Twake.ai and its AI connectors, contact LINAGORA at <https://linagora.com>.
package/build/catalog.js CHANGED
@@ -6,7 +6,7 @@ import { checkAgentId, isSafeDeviceId } from './grants.js';
6
6
  * These versions run *_TOKEN_COMMAND through the system shell, so they work on Windows too.
7
7
  */
8
8
  export const CATALOG = {
9
- mail: { name: 'mcp-twake-mail', version: '4.1.1', approval: 'JMAP' },
9
+ mail: { name: 'mcp-twake-mail', version: '4.2.0', approval: 'JMAP' },
10
10
  dav: { name: 'mcp-twake-dav', version: '4.2.1', approval: 'DAV' },
11
11
  drive: { name: 'mcp-twake-drive', version: '0.4.1', approval: 'TWAKE_DRIVE' },
12
12
  chat: { name: 'mcp-twake-chat', version: '0.6.1', approval: 'MATRIX' },
@@ -46,6 +46,11 @@ export function detectLanguage(env, locale = Intl.DateTimeFormat().resolvedOptio
46
46
  export function systemTimezone() {
47
47
  return Intl.DateTimeFormat().resolvedOptions().timeZone || 'UTC';
48
48
  }
49
+ /**
50
+ * The one folder where Mail saves attachments, and where Drive and Chat download files and take the ones they upload:
51
+ * an attachment kept by Mail can go to the Drive or a room without passing through the model. `~` is the home folder.
52
+ */
53
+ export const FILES_FOLDER = '~/Downloads/Twake';
49
54
  /** The environment of one MCP server for one agent: URLs, token command, language, time zone, agent-specific settings. */
50
55
  export function serviceEnv(service, agent, ctx) {
51
56
  checkAgentId(agent);
@@ -60,7 +65,13 @@ export function serviceEnv(service, agent, ctx) {
60
65
  const url = env.services.mail?.url;
61
66
  if (!url)
62
67
  throw notFound('Twake Mail (JMAP) server');
63
- return { JMAP_SESSION_URL: url, JMAP_AUTH_METHOD: 'command', JMAP_TOKEN_COMMAND: tokenCommand('mail', undefined, ctx), ...common };
68
+ return {
69
+ JMAP_SESSION_URL: url,
70
+ JMAP_AUTH_METHOD: 'command',
71
+ JMAP_TOKEN_COMMAND: tokenCommand('mail', undefined, ctx),
72
+ JMAP_DOWNLOAD_DIR: FILES_FOLDER,
73
+ ...common,
74
+ };
64
75
  }
65
76
  case 'dav': {
66
77
  const url = env.services.dav?.url;
@@ -81,7 +92,8 @@ export function serviceEnv(service, agent, ctx) {
81
92
  const instance = env.cozy.instance;
82
93
  if (!instance || !config.drive)
83
94
  throw new TwakeAiError('login_required', 'Twake Drive is not connected: run `mcp-twake-ai login --drive`.');
84
- return { TWAKE_DRIVE_URL: instance, TWAKE_DRIVE_TOKEN_COMMAND: tokenCommand('drive', undefined, ctx), ...common };
95
+ // its upload folder defaults to its download folder
96
+ return { TWAKE_DRIVE_URL: instance, TWAKE_DRIVE_TOKEN_COMMAND: tokenCommand('drive', undefined, ctx), TWAKE_DRIVE_DOWNLOAD_DIR: FILES_FOLDER, ...common };
85
97
  }
86
98
  case 'chat': {
87
99
  const device = config.chat?.[agent];
@@ -94,6 +106,8 @@ export function serviceEnv(service, agent, ctx) {
94
106
  MATRIX_USER_ID: device.userId,
95
107
  MATRIX_TOKEN_COMMAND: tokenCommand('chat', agent, ctx),
96
108
  MATRIX_HOMESERVER_URL: env.matrix.homeserver,
109
+ // its upload folder defaults to its download folder
110
+ MATRIX_DOWNLOAD_DIR: FILES_FOLDER,
97
111
  ...(env.matrix.tom ? { TOM_URL: env.matrix.tom } : {}),
98
112
  MATRIX_E2EE_RECOVERY: 'tom',
99
113
  // the end-to-end encryption store belongs to one device: a new device gets a new store
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
package/build/cozy.js CHANGED
@@ -3,7 +3,7 @@ import { TwakeAiError } from './errors.js';
3
3
  import { getJson, HttpError, parseAnswer, postForm, postJson, requestJson, requireSecureUrl } from './http.js';
4
4
  /** The permissions mcp-twake-drive needs (its README). */
5
5
  export const COZY_SCOPE = 'io.cozy.files io.cozy.files.* io.cozy.notes io.cozy.permissions io.cozy.sharings:GET io.cozy.settings:GET io.cozy.contacts:GET';
6
- export const COZY_SOFTWARE_ID = 'github.com/linagora/mcp-twake-wizard';
6
+ export const COZY_SOFTWARE_ID = 'github.com/linagora/mcp-twake-ai';
7
7
  const nowS = () => Math.floor(Date.now() / 1000);
8
8
  const DEFAULT_TTL_S = 300;
9
9
  const RegistrationSchema = z.object({
package/build/cozy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cozy.js","sourceRoot":"","sources":["../src/cozy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cozy.js","sourceRoot":"","sources":["../src/cozy.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-twake-ai",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Install, configure and authenticate the Twake.ai MCP servers in your AI agents",
5
5
  "type": "module",
6
6
  "bin": {
@@ -22,7 +22,11 @@
22
22
  },
23
23
  "repository": {
24
24
  "type": "git",
25
- "url": "git+https://github.com/linagora/mcp-twake-wizard.git"
25
+ "url": "git+https://github.com/linagora/mcp-twake-ai.git"
26
+ },
27
+ "homepage": "https://github.com/linagora/mcp-twake-ai#readme",
28
+ "bugs": {
29
+ "url": "https://github.com/linagora/mcp-twake-ai/issues"
26
30
  },
27
31
  "license": "AGPL-3.0-only",
28
32
  "dependencies": {