converse-mcp-server 1.18.0-beta.5 → 2.0.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/bin/converse.js +0 -0
- package/package.json +52 -52
- package/src/providers/codex.js +4 -2
- package/src/tools/chat.js +4 -4
- package/src/tools/consensus.js +4 -4
- package/src/utils/pathUtils.js +24 -0
package/bin/converse.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "converse-mcp-server",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Converse MCP Server - Converse with other LLMs with chat and consensus tools",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.js",
|
|
@@ -11,56 +11,6 @@
|
|
|
11
11
|
"engines": {
|
|
12
12
|
"node": ">=20.0.0"
|
|
13
13
|
},
|
|
14
|
-
"keywords": [
|
|
15
|
-
"mcp",
|
|
16
|
-
"server",
|
|
17
|
-
"ai",
|
|
18
|
-
"chat",
|
|
19
|
-
"consensus",
|
|
20
|
-
"openai",
|
|
21
|
-
"google",
|
|
22
|
-
"gemini",
|
|
23
|
-
"grok"
|
|
24
|
-
],
|
|
25
|
-
"author": "Converse MCP Server",
|
|
26
|
-
"license": "MIT",
|
|
27
|
-
"homepage": "https://github.com/FallDownTheSystem/converse#readme",
|
|
28
|
-
"repository": {
|
|
29
|
-
"type": "git",
|
|
30
|
-
"url": "git+https://github.com/FallDownTheSystem/converse.git"
|
|
31
|
-
},
|
|
32
|
-
"bugs": {
|
|
33
|
-
"url": "https://github.com/FallDownTheSystem/converse/issues"
|
|
34
|
-
},
|
|
35
|
-
"files": [
|
|
36
|
-
"src/",
|
|
37
|
-
"bin/",
|
|
38
|
-
"docs/",
|
|
39
|
-
"README.md",
|
|
40
|
-
".env.example"
|
|
41
|
-
],
|
|
42
|
-
"dependencies": {
|
|
43
|
-
"@anthropic-ai/sdk": "^0.65.0",
|
|
44
|
-
"@google/genai": "^1.22.0",
|
|
45
|
-
"@mistralai/mistralai": "^1.10.0",
|
|
46
|
-
"@modelcontextprotocol/sdk": "^1.19.1",
|
|
47
|
-
"@openai/codex-sdk": "^0.45.0",
|
|
48
|
-
"cors": "^2.8.5",
|
|
49
|
-
"dotenv": "^17.2.3",
|
|
50
|
-
"express": "^5.1.0",
|
|
51
|
-
"lru-cache": "^11.2.2",
|
|
52
|
-
"openai": "^6.1.0",
|
|
53
|
-
"p-limit": "^4.0.0",
|
|
54
|
-
"vite": "^7.1.9"
|
|
55
|
-
},
|
|
56
|
-
"devDependencies": {
|
|
57
|
-
"@vitest/coverage-v8": "^3.2.4",
|
|
58
|
-
"cross-env": "^10.1.0",
|
|
59
|
-
"eslint": "^9.36.0",
|
|
60
|
-
"prettier": "^3.6.2",
|
|
61
|
-
"rimraf": "^6.0.1",
|
|
62
|
-
"vitest": "^3.2.4"
|
|
63
|
-
},
|
|
64
14
|
"scripts": {
|
|
65
15
|
"kill-server": "node scripts/kill-server.js",
|
|
66
16
|
"start": "npm run kill-server && node src/index.js",
|
|
@@ -114,5 +64,55 @@
|
|
|
114
64
|
"validate:fix": "node scripts/validate.js --fix",
|
|
115
65
|
"validate:fast": "node scripts/validate.js --skip-tests --skip-lint",
|
|
116
66
|
"precommit": "npm run validate"
|
|
67
|
+
},
|
|
68
|
+
"keywords": [
|
|
69
|
+
"mcp",
|
|
70
|
+
"server",
|
|
71
|
+
"ai",
|
|
72
|
+
"chat",
|
|
73
|
+
"consensus",
|
|
74
|
+
"openai",
|
|
75
|
+
"google",
|
|
76
|
+
"gemini",
|
|
77
|
+
"grok"
|
|
78
|
+
],
|
|
79
|
+
"author": "Converse MCP Server",
|
|
80
|
+
"license": "MIT",
|
|
81
|
+
"homepage": "https://github.com/FallDownTheSystem/converse#readme",
|
|
82
|
+
"repository": {
|
|
83
|
+
"type": "git",
|
|
84
|
+
"url": "git+https://github.com/FallDownTheSystem/converse.git"
|
|
85
|
+
},
|
|
86
|
+
"bugs": {
|
|
87
|
+
"url": "https://github.com/FallDownTheSystem/converse/issues"
|
|
88
|
+
},
|
|
89
|
+
"files": [
|
|
90
|
+
"src/",
|
|
91
|
+
"bin/",
|
|
92
|
+
"docs/",
|
|
93
|
+
"README.md",
|
|
94
|
+
".env.example"
|
|
95
|
+
],
|
|
96
|
+
"dependencies": {
|
|
97
|
+
"@anthropic-ai/sdk": "^0.65.0",
|
|
98
|
+
"@google/genai": "^1.22.0",
|
|
99
|
+
"@mistralai/mistralai": "^1.10.0",
|
|
100
|
+
"@modelcontextprotocol/sdk": "^1.19.1",
|
|
101
|
+
"@openai/codex-sdk": "^0.45.0",
|
|
102
|
+
"cors": "^2.8.5",
|
|
103
|
+
"dotenv": "^17.2.3",
|
|
104
|
+
"express": "^5.1.0",
|
|
105
|
+
"lru-cache": "^11.2.2",
|
|
106
|
+
"openai": "^6.1.0",
|
|
107
|
+
"p-limit": "^4.0.0",
|
|
108
|
+
"vite": "^7.1.9"
|
|
109
|
+
},
|
|
110
|
+
"devDependencies": {
|
|
111
|
+
"@vitest/coverage-v8": "^3.2.4",
|
|
112
|
+
"cross-env": "^10.1.0",
|
|
113
|
+
"eslint": "^9.36.0",
|
|
114
|
+
"prettier": "^3.6.2",
|
|
115
|
+
"rimraf": "^6.0.1",
|
|
116
|
+
"vitest": "^3.2.4"
|
|
117
117
|
}
|
|
118
|
-
}
|
|
118
|
+
}
|
package/src/providers/codex.js
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
import { debugLog, debugError } from '../utils/console.js';
|
|
17
17
|
import { ProviderError, ErrorCodes, StopReasons } from './interface.js';
|
|
18
|
+
import { normalizeExtendedPath } from '../utils/pathUtils.js';
|
|
18
19
|
|
|
19
20
|
// Supported Codex models with their configurations
|
|
20
21
|
const SUPPORTED_MODELS = {
|
|
@@ -244,7 +245,9 @@ export const codexProvider = {
|
|
|
244
245
|
|
|
245
246
|
// Read configuration values (with secure defaults)
|
|
246
247
|
// Note: Using CLIENT_CWD directly, no separate CODEX_WORKING_DIRECTORY
|
|
247
|
-
const
|
|
248
|
+
const rawWorkingDirectory = config.server?.client_cwd || process.cwd();
|
|
249
|
+
// Normalize Windows extended-length paths (\\?\C:\...) to regular paths
|
|
250
|
+
const workingDirectory = normalizeExtendedPath(rawWorkingDirectory);
|
|
248
251
|
const sandbox = config.providers?.codexsandboxmode || 'read-only';
|
|
249
252
|
const skipGitRepoCheck = config.providers?.codexskipgitcheck !== undefined ? config.providers.codexskipgitcheck : true;
|
|
250
253
|
const approvalPolicy = config.providers?.codexapprovalpolicy || 'never';
|
|
@@ -252,7 +255,6 @@ export const codexProvider = {
|
|
|
252
255
|
debugLog(`[Codex] Starting ${threadId ? 'resumed' : 'new'} thread`, {
|
|
253
256
|
model,
|
|
254
257
|
workingDirectory,
|
|
255
|
-
workingDirectoryType: workingDirectory.startsWith('\\\\?\\') ? 'extended-length' : 'normal',
|
|
256
258
|
sandbox,
|
|
257
259
|
skipGitRepoCheck,
|
|
258
260
|
approvalPolicy,
|
package/src/tools/chat.js
CHANGED
|
@@ -827,10 +827,6 @@ chatTool.description = 'GENERAL CHAT & COLLABORATIVE THINKING - Development assi
|
|
|
827
827
|
chatTool.inputSchema = {
|
|
828
828
|
type: 'object',
|
|
829
829
|
properties: {
|
|
830
|
-
prompt: {
|
|
831
|
-
type: 'string',
|
|
832
|
-
description: 'Your question or topic with relevant context. More detail enables better responses. Example: "How should I structure the authentication module for this Express.js API?"',
|
|
833
|
-
},
|
|
834
830
|
model: {
|
|
835
831
|
type: 'string',
|
|
836
832
|
description: 'AI model to use. Examples: "auto" (recommended), "gpt-5", "gemini-2.5-pro", "grok-4-0709". Defaults to auto-selection.',
|
|
@@ -878,6 +874,10 @@ chatTool.inputSchema = {
|
|
|
878
874
|
description: 'Execute chat in background. When true, returns continuation_id immediately and processes request asynchronously. Default: false',
|
|
879
875
|
default: false
|
|
880
876
|
},
|
|
877
|
+
prompt: {
|
|
878
|
+
type: 'string',
|
|
879
|
+
description: 'Your question or topic with relevant context. More detail enables better responses. Example: "How should I structure the authentication module for this Express.js API?"',
|
|
880
|
+
},
|
|
881
881
|
},
|
|
882
882
|
required: ['prompt'],
|
|
883
883
|
};
|
package/src/tools/consensus.js
CHANGED
|
@@ -1340,10 +1340,6 @@ consensusTool.description = 'PARALLEL CONSENSUS WITH CROSS-MODEL FEEDBACK - Quer
|
|
|
1340
1340
|
consensusTool.inputSchema = {
|
|
1341
1341
|
type: 'object',
|
|
1342
1342
|
properties: {
|
|
1343
|
-
prompt: {
|
|
1344
|
-
type: 'string',
|
|
1345
|
-
description: 'The problem or proposal to gather consensus on. Include context and specific questions. Example: "Should we use microservices or monolith architecture for our e-commerce platform with 100k users?"',
|
|
1346
|
-
},
|
|
1347
1343
|
models: {
|
|
1348
1344
|
type: 'array',
|
|
1349
1345
|
items: { type: 'string' },
|
|
@@ -1396,6 +1392,10 @@ consensusTool.inputSchema = {
|
|
|
1396
1392
|
description: 'Execute consensus in background with detailed progress tracking. When true, returns continuation_id immediately and processes request asynchronously with per-provider status updates. Default: false',
|
|
1397
1393
|
default: false
|
|
1398
1394
|
},
|
|
1395
|
+
prompt: {
|
|
1396
|
+
type: 'string',
|
|
1397
|
+
description: 'The problem or proposal to gather consensus on. Include context and specific questions. Example: "Should we use microservices or monolith architecture for our e-commerce platform with 100k users?"',
|
|
1398
|
+
},
|
|
1399
1399
|
},
|
|
1400
1400
|
required: ['prompt', 'models'],
|
|
1401
1401
|
};
|
package/src/utils/pathUtils.js
CHANGED
|
@@ -197,3 +197,27 @@ export function getPlatformName() {
|
|
|
197
197
|
};
|
|
198
198
|
return platformMap[platform()] || platform();
|
|
199
199
|
}
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Normalize Windows extended-length paths to regular paths
|
|
203
|
+
* Removes the \\?\ prefix that Windows uses for paths longer than 260 characters
|
|
204
|
+
* @param {string} inputPath - Path that may have extended-length prefix
|
|
205
|
+
* @returns {string} Normalized path without extended-length prefix
|
|
206
|
+
*/
|
|
207
|
+
export function normalizeExtendedPath(inputPath) {
|
|
208
|
+
if (!inputPath || typeof inputPath !== 'string') {
|
|
209
|
+
return inputPath;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// Remove Windows extended-length path prefix \\?\
|
|
213
|
+
if (inputPath.startsWith('\\\\?\\')) {
|
|
214
|
+
return inputPath.substring(4);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// Also handle UNC paths: \\?\UNC\server\share -> \\server\share
|
|
218
|
+
if (inputPath.startsWith('\\\\?\\UNC\\')) {
|
|
219
|
+
return '\\' + inputPath.substring(7);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
return inputPath;
|
|
223
|
+
}
|