wolfpack-mcp 1.0.112 → 1.0.113

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,10 +1,14 @@
1
- # Wolfpack MCP Server
1
+ # Clachan MCP Server (formerly Wolfpack)
2
2
 
3
3
  [![npm](https://img.shields.io/npm/v/wolfpack-mcp)](https://www.npmjs.com/package/wolfpack-mcp)
4
4
 
5
- Connect your AI assistant to Wolfpack to manage work items, track issues, update documentation, and log progress—all
5
+ Connect your AI assistant to Clachan to manage work items, track issues, update documentation, and log progress—all
6
6
  through natural conversation.
7
7
 
8
+ > **Wolfpack is now Clachan.** Same product, same server, same account. The package is still published as
9
+ > `wolfpack-mcp`, its settings are still `WOLFPACK_*`, and API keys still begin `wfp_`; nothing you have
10
+ > configured needs to change. See [Clachan and Wolfpack](#clachan-and-wolfpack) below.
11
+
8
12
  ## Quick Start
9
13
 
10
14
  There are two ways to connect:
@@ -24,19 +28,20 @@ Add to your Claude Desktop config file:
24
28
  "mcpServers": {
25
29
  "wolfpack": {
26
30
  "type": "url",
27
- "url": "https://wolfpacks.work/mcp"
31
+ "url": "https://app.clachan.ai/mcp"
28
32
  }
29
33
  }
30
34
  }
31
35
  ```
32
36
 
33
- Restart Claude Desktop. You'll be prompted to sign in with your Wolfpack account via OAuth.
37
+ Restart Claude Desktop. You'll be prompted to sign in with your Clachan account via OAuth. The server is also
38
+ still served at `https://wolfpacks.work/mcp`, so an existing configuration keeps working.
34
39
 
35
40
  ### Coding Agents (stdio)
36
41
 
37
42
  #### 1. Generate an API Key
38
43
 
39
- 1. Log in to [wolfpacks.work](https://wolfpacks.work)
44
+ 1. Log in to [app.clachan.ai](https://app.clachan.ai) (or [wolfpacks.work](https://wolfpacks.work), which still works)
40
45
  2. Go to **Account Settings** → **API Keys**
41
46
  3. Click **Create New Key**
42
47
  4. Select the permissions you need (work items, issues, wiki, etc.)
@@ -62,6 +67,24 @@ Restart Claude Desktop. You'll be prompted to sign in with your Wolfpack account
62
67
 
63
68
  **Cursor / Windsurf** — use the same `command`, `args`, and `env` in your editor's MCP configuration.
64
69
 
70
+ The stdio server talks to `https://wolfpacks.work/api/mcp` unless `WOLFPACK_API_URL` says otherwise; both
71
+ domains serve the same deployment, so there is nothing to change during the rename.
72
+
73
+ ## Clachan and Wolfpack
74
+
75
+ The product was renamed from Wolfpack to Clachan in September 2026. Both names are understood while the
76
+ rename settles: the server introduces the product to your assistant as "Clachan (formerly Wolfpack)", so
77
+ asking for "the Wolfpack issue" or "my Clachan work items" means the same thing.
78
+
79
+ What you configure is deliberately **unchanged**, because it is the contract every installed client already
80
+ depends on:
81
+
82
+ - the package name, `wolfpack-mcp`, and the server name `wolfpack` in your MCP configuration
83
+ - the environment variables: `WOLFPACK_API_KEY`, `WOLFPACK_API_URL`, `WOLFPACK_ORG_SLUG`, `WOLFPACK_TEAM_SLUG`
84
+ - the API key prefixes `wfp_sk_` (user) and `wfp_ak_` (agent)
85
+
86
+ If those are ever renamed it will be announced here, with the old spellings kept working alongside the new.
87
+
65
88
  ## Installation
66
89
 
67
90
  ```bash
package/dist/brand.js CHANGED
@@ -8,6 +8,13 @@
8
8
  *
9
9
  * `WOLFPACK_*` variables are this package's public configuration contract with the MCP
10
10
  * clients that already set them, so they are deliberately not renamed here.
11
+ *
12
+ * `productFormerName` is what the product was called before a rename, for as long as the
13
+ * transition lasts (#2592); the server instructions say it once so a user who still uses
14
+ * the old name is understood. Unlike the other two, a blank `PRODUCT_FORMER_NAME` is a
15
+ * value — "no former name" — so a deployment rebranded by its environment can turn the
16
+ * suffix off. Empty in `brand.json` once the transition is over.
11
17
  */
12
18
  export const productName = process.env.PRODUCT_NAME || 'Clachan';
19
+ export const productFormerName = process.env.PRODUCT_FORMER_NAME ?? 'Wolfpack';
13
20
  export const productDomain = process.env.PRODUCT_DOMAIN || 'wolfpacks.work';
@@ -1,4 +1,4 @@
1
- import { productName } from './brand.js';
1
+ import { productFormerName, productName } from './brand.js';
2
2
  /**
3
3
  * Server instructions, returned in the MCP `initialize` result.
4
4
  *
@@ -12,8 +12,13 @@ import { productName } from './brand.js';
12
12
  * Mirrored in `packages/backend/src/mcp/serverInstructions.ts` for the remote
13
13
  * server — the two servers have no shared package, and already keep their tool
14
14
  * descriptions in step by hand.
15
+ *
16
+ * While a rename is in transition the product is introduced as "X (formerly Y)", once
17
+ * (#2592): nothing else tells the model that "the Wolfpack issue" and a Clachan issue are
18
+ * the same thing. The suffix disappears with the former name.
15
19
  */
16
- export const SERVER_INSTRUCTIONS = `${productName} is this project's tracker. Its references override the usual GitHub reading of "#N".
20
+ const formerly = productFormerName ? ` (formerly ${productFormerName})` : '';
21
+ export const SERVER_INSTRUCTIONS = `${productName}${formerly} is this project's tracker. Its references override the usual GitHub reading of "#N".
17
22
 
18
23
  - A bare "#123" — "work on #123", "look at #42" — is ALWAYS a ${productName} work item. Call get_work_item. Do not run \`gh issue view\`, and do not search GitHub for it.
19
24
  - Read a number as a GitHub issue or pull request only when the user says GitHub, PR, or gh — "the GitHub issue #123", "PR #123".
@@ -1,5 +1,6 @@
1
- import { describe, it, expect } from 'vitest';
1
+ import { describe, it, expect, vi } from 'vitest';
2
2
  import { SERVER_INSTRUCTIONS } from './serverInstructions.js';
3
+ import { productFormerName, productName } from './brand.js';
3
4
  describe('SERVER_INSTRUCTIONS', () => {
4
5
  it('claims a bare #N for work items before any tool is chosen (#1373)', () => {
5
6
  // The whole point of the instructions field: a client puts it in the system
@@ -28,4 +29,29 @@ describe('SERVER_INSTRUCTIONS', () => {
28
29
  it('stays short enough to sit in a system prompt', () => {
29
30
  expect(SERVER_INSTRUCTIONS.length).toBeLessThan(1200);
30
31
  });
32
+ it('introduces the product by its former name too, while it has one (#2592)', () => {
33
+ // A user mid-rename still says the old name; nothing else tells the model the
34
+ // two are one product. Read from the brand so the test survives the transition
35
+ // ending — at which point the suffix must be gone, and this asserts that too.
36
+ const expected = productFormerName
37
+ ? `${productName} (formerly ${productFormerName}) is this project's tracker`
38
+ : `${productName} is this project's tracker`;
39
+ expect(SERVER_INSTRUCTIONS).toContain(expected);
40
+ expect(SERVER_INSTRUCTIONS.match(/formerly/g) ?? []).toHaveLength(productFormerName ? 1 : 0);
41
+ });
42
+ it('says nothing about a former name when the deployment sets a blank one', async () => {
43
+ // A blank value is a value here: a deployment rebranded through PRODUCT_NAME must be
44
+ // able to turn the suffix off, otherwise it introduces itself as formerly Wolfpack.
45
+ vi.stubEnv('PRODUCT_FORMER_NAME', '');
46
+ vi.resetModules();
47
+ try {
48
+ const fresh = await import('./serverInstructions.js');
49
+ expect(fresh.SERVER_INSTRUCTIONS).not.toContain('formerly');
50
+ expect(fresh.SERVER_INSTRUCTIONS).toContain(`${productName} is this project's tracker`);
51
+ }
52
+ finally {
53
+ vi.unstubAllEnvs();
54
+ vi.resetModules();
55
+ }
56
+ });
31
57
  });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "wolfpack-mcp",
3
- "version": "1.0.112",
4
- "description": "MCP server for Wolfpack AI-enhanced software delivery tools",
3
+ "version": "1.0.113",
4
+ "description": "MCP server for Clachan (formerly Wolfpack), AI-enhanced software delivery tools",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
7
7
  "bin": {
@@ -23,6 +23,7 @@
23
23
  "keywords": [
24
24
  "mcp",
25
25
  "model-context-protocol",
26
+ "clachan",
26
27
  "wolfpack",
27
28
  "ai",
28
29
  "claude",