catence 0.2.1-beta.8 → 0.2.1-beta.9

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.
@@ -28,6 +28,7 @@
28
28
  "toolRounds": 8,
29
29
  "toolResultCharacters": 24000
30
30
  },
31
+ "mcpServers": {},
31
32
  "profiles": {
32
33
  "openai": {
33
34
  "label": "OpenAI",
@@ -3,7 +3,7 @@
3
3
  * Keep these values synchronized with release/manifest.json; release checks
4
4
  * deliberately reject drift before a package can be published.
5
5
  */
6
- export declare const CATENCE_RUNTIME_VERSION = "0.2.1-beta.8";
6
+ export declare const CATENCE_RUNTIME_VERSION = "0.2.1-beta.9";
7
7
  export declare const CATENCE_PROTOCOL_VERSION = 1;
8
8
  export type CatenceRuntimeCapabilities = {
9
9
  mcp: true;
@@ -3,7 +3,7 @@
3
3
  * Keep these values synchronized with release/manifest.json; release checks
4
4
  * deliberately reject drift before a package can be published.
5
5
  */
6
- export const CATENCE_RUNTIME_VERSION = '0.2.1-beta.8';
6
+ export const CATENCE_RUNTIME_VERSION = '0.2.1-beta.9';
7
7
  export const CATENCE_PROTOCOL_VERSION = 1;
8
8
  export function catenceRuntimeHealth() {
9
9
  return {
@@ -96,6 +96,7 @@ The Console model configuration. `defaultProfile` must name one of
96
96
  "console": {
97
97
  "defaultProfile": "openai",
98
98
  "limits": { "toolRounds": 8, "toolResultCharacters": 24000 },
99
+ "mcpServers": { … },
99
100
  "profiles": { … }
100
101
  }
101
102
  }
@@ -166,6 +167,52 @@ Console database rather than here; every write preserves all non-console
166
167
  sections and is re-validated with the same strict parser before the file is
167
168
  replaced.
168
169
 
170
+ ### `console.mcpServers`
171
+
172
+ Extra MCP tool servers the Console agent connects to alongside the Catence
173
+ runtime. This is how the Console gains capabilities Catence does not provide,
174
+ such as web search. HTTP (Streamable HTTP) servers only; each entry is keyed by
175
+ a short server name used in tool step labels.
176
+
177
+ ```jsonc
178
+ "mcpServers": {
179
+ "exa": {
180
+ "label": "Exa Web Search",
181
+ "url": "https://mcp.exa.ai/mcp",
182
+ "headers": { "x-api-key": "$EXA_API_KEY" }
183
+ }
184
+ }
185
+ ```
186
+
187
+ Allowed entry fields (strict):
188
+
189
+ | Field | Required | Meaning |
190
+ | --- | --- | --- |
191
+ | `label` | — | Display name in tool steps (defaults to the server name) |
192
+ | `url` | yes | `http://` or `https://` MCP endpoint |
193
+ | `headers` | — | Extra HTTP headers; values may reference environment variables |
194
+
195
+ `url` and header values may reference credentials as `$NAME` or `${NAME}`.
196
+ References resolve from the Console credential store first (the admin
197
+ **Accounts** page), then the process environment, so a key can be entered
198
+ after the runtime has started and applies to the next chat turn. A server
199
+ whose credentials are missing is skipped with a warning step; other servers
200
+ and Catence itself keep working. Tool names from extra servers are used as-is
201
+ unless they collide with a Catence tool, in which case they are prefixed with
202
+ the server name (`exa_web_search_exa`).
203
+
204
+ The hosted Exa server (`https://mcp.exa.ai/mcp`) also works without a key
205
+ (rate-limited) and offers `web_search_exa` and `web_fetch_exa` by default.
206
+ Add `?tools=…` to the URL to expose a different tool set, e.g.
207
+ `https://mcp.exa.ai/mcp?tools=web_search_exa,web_fetch_exa`.
208
+
209
+ The **Accounts** page (admin only) lists each configured server and its
210
+ credential readiness, and lets an admin save or clear values without
211
+ restarting the Console. Stored values live in
212
+ `<data directory>/console/tool_server_secrets.json` (mode 0600) and take
213
+ precedence over the process environment. `catence-console doctor` reports each
214
+ server's readiness as well.
215
+
169
216
  ### The Console wizard
170
217
 
171
218
  On the first authenticated chat, the Console wizard (`write_provider_setup`)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "catence",
3
- "version": "0.2.1-beta.8",
3
+ "version": "0.2.1-beta.9",
4
4
  "description": "Local MCP access to normalized Garmin, Intervals.icu, and targeted Strava fitness data.",
5
5
  "license": "AGPL-3.0-or-later",
6
6
  "repository": {