counsel-mcp-server 0.1.1 → 0.1.3

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
@@ -150,14 +150,18 @@ For any MCP-compatible client, configure with:
150
150
  - **Args**: `["-y", "counsel-mcp-server", "start"]`
151
151
  - **Transport**: `stdio` (default) or `http` at `http://localhost:3000/mcp`
152
152
 
153
- #### HTTP Mode (Advanced)
153
+ #### HTTP Mode with OAuth (Advanced)
154
154
 
155
- If your client supports HTTP transport, you can run the server standalone:
155
+ For clients that support HTTP transport with OAuth 2.0, run the server in HTTP mode:
156
156
 
157
157
  ```bash
158
- npx counsel-mcp-server start --port 3000
158
+ npx -y counsel-mcp-server http --port 3000
159
159
  ```
160
160
 
161
+ This starts an HTTP server with:
162
+ - **MCP endpoint**: `http://localhost:3000/mcp`
163
+ - **OAuth discovery**: `http://localhost:3000/.well-known/oauth-authorization-server`
164
+
161
165
  Then configure your client with:
162
166
  ```json
163
167
  {
@@ -170,19 +174,48 @@ Then configure your client with:
170
174
  }
171
175
  ```
172
176
 
177
+ The HTTP mode proxies OAuth requests to Counsel's authorization server, enabling standard OAuth 2.0 authentication without manual API key configuration.
178
+
173
179
  ---
174
180
 
175
181
  ## Authentication
176
182
 
177
- Authentication is handled automatically through OAuth 2.0:
183
+ The server supports two authentication modes:
184
+
185
+ ### STDIO Mode (Default)
186
+
187
+ Set the `COUNSEL_API_KEY` environment variable with your API key from [counsel.getmason.dev](https://counsel.getmason.dev):
188
+
189
+ ```bash
190
+ export COUNSEL_API_KEY=your_api_key_here
191
+ ```
192
+
193
+ Or add it to your MCP client configuration:
194
+ ```json
195
+ {
196
+ "mcpServers": {
197
+ "counsel": {
198
+ "command": "npx",
199
+ "args": ["-y", "counsel-mcp-server", "start"],
200
+ "env": {
201
+ "COUNSEL_API_KEY": "your_api_key_here"
202
+ }
203
+ }
204
+ }
205
+ }
206
+ ```
207
+
208
+ ### HTTP Mode (OAuth 2.0)
209
+
210
+ When running in HTTP mode (`npx -y counsel-mcp-server http`), authentication is handled automatically through OAuth 2.0:
178
211
 
179
212
  1. When you first use a Counsel tool, your MCP client will prompt for authentication
180
213
  2. You'll be redirected to sign in with your Counsel account
181
214
  3. After authorization, tokens are managed automatically
182
215
 
183
- **No manual login required** - your MCP client handles the entire flow.
216
+ **No manual API key required** in HTTP mode - your MCP client handles the entire OAuth flow.
184
217
 
185
- ### OAuth Endpoints
218
+ ### OAuth Endpoints (HTTP Mode)
186
219
 
187
220
  The server exposes standard OAuth 2.0 endpoints:
188
221
 
@@ -299,14 +332,18 @@ Check the status of consultation abc-123-def
299
332
  | `COUNSEL_API_URL` | `https://counsel.getmason.dev` | Counsel API base URL |
300
333
  | `PORT` | `3000` | Server port (HTTP mode) |
301
334
 
302
- ### CLI Options
335
+ ### CLI Commands
303
336
 
304
337
  ```bash
305
- counsel-mcp start [options]
338
+ # STDIO mode (default) - for most MCP clients
339
+ npx -y counsel-mcp-server start
340
+
341
+ # HTTP mode - for clients supporting OAuth
342
+ npx -y counsel-mcp-server http [options]
306
343
 
307
- Options:
344
+ HTTP Options:
308
345
  -p, --port <port> Port to listen on (default: 3000)
309
- -h, --host <host> Host to bind to (default: localhost)
346
+ --host <host> Host to bind to (default: localhost)
310
347
  ```
311
348
 
312
349
  ---
@@ -356,7 +393,7 @@ For verbose logging, check your MCP client's logs or run the server directly in
356
393
  ### Setup
357
394
 
358
395
  ```bash
359
- git clone https://github.com/getmason-io/counsel-mcp-server.git
396
+ git clone https://github.com/mercurialsolo/counsel-mcp.git
360
397
  cd counsel-mcp-server
361
398
  npm install
362
399
  npm run build
@@ -365,13 +402,25 @@ npm run build
365
402
  ### Commands
366
403
 
367
404
  ```bash
368
- npm run build # Compile TypeScript
369
- npm run dev # Watch mode
370
- npm run start # Run server
371
- npm test # Run tests
372
- npm run lint # Type check
405
+ npm run build # Compile TypeScript
406
+ npm run dev # Watch mode
407
+ npm run start # Run server
408
+ npm test # Run tests
409
+ npm run lint # Type check
410
+ npm run security:check # Scan staged files for secrets
411
+ npm run security:check:all # Scan all files for secrets
373
412
  ```
374
413
 
414
+ ### Security
415
+
416
+ This project includes automated secret detection:
417
+
418
+ - **Pre-commit hook**: Automatically scans staged files before each commit
419
+ - **CI integration**: Security checks run on all pull requests
420
+ - **Pattern detection**: AWS keys, GitHub tokens, API keys, private keys, etc.
421
+
422
+ See [CONTRIBUTING.md](CONTRIBUTING.md#security-checks) for details.
423
+
375
424
  ### Project Structure
376
425
 
377
426
  ```
@@ -410,5 +459,5 @@ MIT License - see [LICENSE](LICENSE) for details.
410
459
 
411
460
  - [Counsel Platform](https://counsel.getmason.dev) - Strategic reasoning platform
412
461
  - [MCP Specification](https://modelcontextprotocol.io) - Model Context Protocol documentation
413
- - [GitHub Issues](https://github.com/getmason-io/counsel-mcp-server/issues) - Report bugs or request features
414
- - [GitHub Discussions](https://github.com/getmason-io/counsel-mcp-server/discussions) - Ask questions
462
+ - [GitHub Issues](https://github.com/mercurialsolo/counsel-mcp/issues) - Report bugs or request features
463
+ - [GitHub Discussions](https://github.com/mercurialsolo/counsel-mcp/discussions) - Ask questions
package/dist/index.js CHANGED
@@ -1,7 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
+ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
4
5
  import { Command } from "commander";
6
+ import { randomUUID } from "crypto";
5
7
  import { config } from "./config.js";
6
8
  import { TOOLS as DEBATE_TOOLS } from "./tools/debates.js";
7
9
  import { TOOLS as ADVISOR_TOOLS } from "./tools/advisor.js";
@@ -9,14 +11,14 @@ const program = new Command();
9
11
  program
10
12
  .name("counsel-mcp")
11
13
  .description("Counsel MCP Server")
12
- .version("0.1.1");
13
- program.command("start")
14
- .description("Start the MCP server (stdio mode)")
15
- .action(async () => {
16
- // Create MCP server
14
+ .version("0.1.3");
15
+ /**
16
+ * Create and configure the MCP server with all tools
17
+ */
18
+ function createMcpServer() {
17
19
  const server = new McpServer({
18
20
  name: "counsel-mcp",
19
- version: "0.1.0",
21
+ version: "0.1.3",
20
22
  });
21
23
  // Register all tools
22
24
  for (const tool of Object.values(DEBATE_TOOLS)) {
@@ -25,14 +27,101 @@ program.command("start")
25
27
  for (const tool of Object.values(ADVISOR_TOOLS)) {
26
28
  server.tool(tool.name, tool.schema, tool.handler);
27
29
  }
28
- // Connect via stdio transport
30
+ return server;
31
+ }
32
+ // STDIO mode (default) - for Claude Desktop, Cursor, MCPJam, etc.
33
+ program.command("start")
34
+ .description("Start the MCP server in stdio mode (default)")
35
+ .action(async () => {
36
+ const server = createMcpServer();
29
37
  const transport = new StdioServerTransport();
30
38
  await server.connect(transport);
31
- // Log to stderr (stdout is used for MCP protocol)
32
39
  console.error(`Counsel MCP Server started (stdio mode)`);
33
40
  console.error(`Upstream API: ${config.COUNSEL_API_URL}`);
41
+ console.error(`Auth: Set COUNSEL_API_KEY environment variable`);
42
+ });
43
+ // HTTP mode - for clients that support OAuth
44
+ program.command("http")
45
+ .description("Start the MCP server in HTTP mode with OAuth support")
46
+ .option("-p, --port <port>", "Port to listen on", "3000")
47
+ .option("--host <host>", "Host to bind to", "localhost")
48
+ .action(async (options) => {
49
+ const express = (await import("express")).default;
50
+ const { ProxyOAuthServerProvider } = await import("@modelcontextprotocol/sdk/server/auth/providers/proxyProvider.js");
51
+ const { mcpAuthRouter } = await import("@modelcontextprotocol/sdk/server/auth/router.js");
52
+ const { requireBearerAuth } = await import("@modelcontextprotocol/sdk/server/auth/middleware/bearerAuth.js");
53
+ const port = parseInt(options.port, 10);
54
+ const host = options.host;
55
+ const baseUrl = new URL(`http://${host}:${port}`);
56
+ const counselApiUrl = config.COUNSEL_API_URL;
57
+ // Create OAuth provider that proxies to Counsel API
58
+ const oauthProvider = new ProxyOAuthServerProvider({
59
+ endpoints: {
60
+ authorizationUrl: `${counselApiUrl}/oauth/authorize`,
61
+ tokenUrl: `${counselApiUrl}/oauth/token`,
62
+ registrationUrl: `${counselApiUrl}/oauth/register`,
63
+ },
64
+ verifyAccessToken: async (token) => {
65
+ return {
66
+ token,
67
+ clientId: "counsel-mcp-client",
68
+ scopes: ["counsel:read", "counsel:write"],
69
+ expiresAt: Math.floor(Date.now() / 1000) + 3600,
70
+ };
71
+ },
72
+ getClient: async (clientId) => {
73
+ return {
74
+ client_id: clientId,
75
+ redirect_uris: [],
76
+ grant_types: ["authorization_code", "refresh_token"],
77
+ response_types: ["code"],
78
+ token_endpoint_auth_method: "client_secret_post",
79
+ };
80
+ },
81
+ });
82
+ const app = express();
83
+ app.use(express.json());
84
+ // OAuth routes
85
+ app.use(mcpAuthRouter({
86
+ provider: oauthProvider,
87
+ issuerUrl: baseUrl,
88
+ baseUrl: baseUrl,
89
+ scopesSupported: ["counsel:read", "counsel:write"],
90
+ serviceDocumentationUrl: new URL("https://counsel.getmason.dev/docs"),
91
+ }));
92
+ const mcpServer = createMcpServer();
93
+ const transports = new Map();
94
+ // Protected MCP endpoint
95
+ const mcpHandler = express.Router();
96
+ mcpHandler.use(requireBearerAuth({
97
+ verifier: oauthProvider,
98
+ requiredScopes: ["counsel:read"],
99
+ }));
100
+ mcpHandler.all("/", async (req, res) => {
101
+ const sessionId = req.headers["mcp-session-id"] || randomUUID();
102
+ let transport = transports.get(sessionId);
103
+ if (!transport) {
104
+ transport = new StreamableHTTPServerTransport({
105
+ sessionIdGenerator: () => sessionId,
106
+ });
107
+ transports.set(sessionId, transport);
108
+ await mcpServer.connect(transport);
109
+ transport.onclose = () => transports.delete(sessionId);
110
+ }
111
+ await transport.handleRequest(req, res);
112
+ });
113
+ app.use("/mcp", mcpHandler);
114
+ app.get("/health", (_req, res) => {
115
+ res.json({ status: "ok", version: "0.1.3" });
116
+ });
117
+ app.listen(port, host, () => {
118
+ console.log(`Counsel MCP Server running at ${baseUrl.href}`);
119
+ console.log(`MCP endpoint: ${baseUrl.href}mcp`);
120
+ console.log(`OAuth metadata: ${baseUrl.href}.well-known/oauth-authorization-server`);
121
+ console.log(`\nUpstream API: ${counselApiUrl}`);
122
+ });
34
123
  });
35
- // Default command is start
124
+ // Default to stdio mode
36
125
  if (process.argv.length === 2) {
37
126
  process.argv.push("start");
38
127
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CAAC,oBAAoB,CAAC;KACjC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;KACrB,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,oBAAoB;IACpB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,qBAAqB;IACrB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,8BAA8B;IAC9B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,kDAAkD;IAClD,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACzD,OAAO,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;AAC3D,CAAC,CAAC,CAAC;AAEL,2BAA2B;AAC3B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAC9B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "counsel-mcp-server",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Open-source MCP server for connecting AI agents to the Counsel API",
5
5
  "author": "Counsel AI",
6
6
  "license": "MIT",
@@ -8,7 +8,7 @@
8
8
  "main": "dist/index.js",
9
9
  "types": "dist/index.d.ts",
10
10
  "bin": {
11
- "counsel-mcp": "./dist/index.js"
11
+ "counsel-mcp": "dist/index.js"
12
12
  },
13
13
  "exports": {
14
14
  ".": {
@@ -31,7 +31,10 @@
31
31
  "test": "vitest run",
32
32
  "test:watch": "vitest",
33
33
  "lint": "tsc --noEmit",
34
- "prepublishOnly": "npm run build && npm run test"
34
+ "security:check": "node scripts/check-secrets.js",
35
+ "security:check:all": "node scripts/check-secrets.js --all",
36
+ "prepublishOnly": "npm run build && npm run test",
37
+ "prepare": "husky"
35
38
  },
36
39
  "keywords": [
37
40
  "mcp",
@@ -71,6 +74,7 @@
71
74
  "devDependencies": {
72
75
  "@types/express": "^5.0.6",
73
76
  "@types/node": "^20.0.0",
77
+ "husky": "^9.1.7",
74
78
  "typescript": "^5.0.0",
75
79
  "vitest": "^2.0.0"
76
80
  }