mcp-code-context 3.9.1 → 3.9.2
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/CHANGELOG.md +227 -215
- package/INSTRUCTIONS.md +17 -11
- package/README.md +16 -7
- package/dist/src/core/engine.d.ts +1 -1
- package/dist/src/core/engine.js +1 -1
- package/dist/src/core/indexManager.d.ts +1 -1
- package/dist/src/core/indexManager.js +26 -26
- package/dist/src/core/sessionManager.d.ts +1 -1
- package/dist/src/core/sessionManager.js +1 -1
- package/dist/src/core/validator.d.ts +2 -2
- package/dist/src/core/validator.js +8 -2
- package/dist/src/core/validator.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/operations/astTransform.d.ts +1 -1
- package/dist/src/operations/astTransform.js +1 -1
- package/dist/src/operations/compress.d.ts +1 -1
- package/dist/src/operations/compress.js +1 -1
- package/dist/src/operations/confirmationStore.d.ts +1 -1
- package/dist/src/operations/confirmationStore.js +1 -1
- package/dist/src/operations/write.d.ts +1 -1
- package/dist/src/operations/write.js +1 -1
- package/dist/src/parsers/base.d.ts +1 -1
- package/dist/src/parsers/base.js +1 -1
- package/dist/src/parsers/csharp.d.ts +1 -1
- package/dist/src/parsers/csharp.js +1 -1
- package/dist/src/parsers/dartTreeSitter.d.ts +1 -1
- package/dist/src/parsers/dartTreeSitter.js +1 -1
- package/dist/src/parsers/go.d.ts +1 -1
- package/dist/src/parsers/go.js +1 -1
- package/dist/src/parsers/java.d.ts +1 -1
- package/dist/src/parsers/java.js +1 -1
- package/dist/src/parsers/kotlin.d.ts +1 -1
- package/dist/src/parsers/kotlin.js +1 -1
- package/dist/src/parsers/php.d.ts +1 -1
- package/dist/src/parsers/php.js +1 -1
- package/dist/src/parsers/python.d.ts +1 -1
- package/dist/src/parsers/python.js +1 -1
- package/dist/src/parsers/registry.d.ts +1 -1
- package/dist/src/parsers/registry.js +1 -1
- package/dist/src/parsers/ruby.d.ts +1 -1
- package/dist/src/parsers/ruby.js +1 -1
- package/dist/src/parsers/rust.d.ts +1 -1
- package/dist/src/parsers/rust.js +1 -1
- package/dist/src/parsers/typescript.d.ts +1 -1
- package/dist/src/parsers/typescript.js +1 -1
- package/dist/src/tools/adminHandlers.js +8 -7
- package/dist/src/tools/adminHandlers.js.map +1 -1
- package/dist/src/tools/pipeline.js +1 -1
- package/dist/src/tools/readHandlers.js +20 -18
- package/dist/src/tools/readHandlers.js.map +1 -1
- package/dist/src/tools/toolDefinitions.d.ts +7 -2
- package/dist/src/tools/toolDefinitionsAdmin.d.ts +1 -1
- package/dist/src/tools/toolDefinitionsAdmin.js +12 -12
- package/dist/src/tools/toolDefinitionsAdmin.js.map +1 -1
- package/dist/src/tools/toolDefinitionsCore.d.ts +6 -1
- package/dist/src/tools/toolDefinitionsCore.js +41 -41
- package/dist/src/tools/toolDefinitionsCore.js.map +1 -1
- package/dist/src/tools/writeHandlers.js +28 -16
- package/dist/src/tools/writeHandlers.js.map +1 -1
- package/dist/src/utils/appDir.d.ts +1 -1
- package/dist/src/utils/appDir.js +1 -1
- package/dist/src/utils/auditLogger.d.ts +1 -1
- package/dist/src/utils/auditLogger.js +1 -1
- package/dist/src/utils/backupManager.d.ts +1 -1
- package/dist/src/utils/backupManager.js +1 -1
- package/dist/src/utils/constants.d.ts +1 -1
- package/dist/src/utils/constants.js +1 -1
- package/dist/src/utils/diff.d.ts +1 -1
- package/dist/src/utils/diff.js +1 -1
- package/dist/src/utils/fileLock.d.ts +1 -1
- package/dist/src/utils/fileLock.js +1 -1
- package/dist/src/utils/fileWalker.d.ts +1 -1
- package/dist/src/utils/fileWalker.js +1 -1
- package/dist/src/utils/fileWatcher.d.ts +1 -1
- package/dist/src/utils/fileWatcher.js +1 -1
- package/dist/src/utils/fuzzySearch.d.ts +1 -1
- package/dist/src/utils/fuzzySearch.js +1 -1
- package/dist/src/utils/gemfileParser.d.ts +1 -1
- package/dist/src/utils/gemfileParser.js +1 -1
- package/dist/src/utils/logger.d.ts +1 -1
- package/dist/src/utils/logger.js +1 -1
- package/dist/src/utils/metaprogramming.d.ts +1 -1
- package/dist/src/utils/metaprogramming.js +1 -1
- package/dist/src/utils/projectRoot.d.ts +9 -0
- package/dist/src/utils/projectRoot.js +94 -0
- package/dist/src/utils/projectRoot.js.map +1 -0
- package/dist/src/utils/railsRoutes.d.ts +1 -1
- package/dist/src/utils/railsRoutes.js +1 -1
- package/dist/src/utils/rateLimiter.d.ts +1 -1
- package/dist/src/utils/rateLimiter.js +1 -1
- package/dist/src/utils/streaming.d.ts +1 -1
- package/dist/src/utils/streaming.js +1 -1
- package/dist/src/utils/telemetry.d.ts +1 -1
- package/dist/src/utils/telemetry.js +1 -1
- package/llms.txt +14 -6
- package/package.json +1 -1
- package/vitest.config.ts +0 -37
package/dist/src/utils/logger.js
CHANGED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Searches upward from startPath to find the nearest project root directory marked by common indicators.
|
|
3
|
+
*/
|
|
4
|
+
export declare function findProjectRoot(startPath: string): string;
|
|
5
|
+
/**
|
|
6
|
+
* Resolves the effective projectRoot from tool arguments, candidate paths, or process.cwd().
|
|
7
|
+
* Eliminates the bug where undefined projectRoot was stringified as literal "undefined".
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolveProjectRoot(args?: Record<string, unknown>, fallbackPath?: string): string;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import * as path from "node:path";
|
|
2
|
+
import * as fs from "node:fs";
|
|
3
|
+
const ROOT_MARKERS = [
|
|
4
|
+
".git",
|
|
5
|
+
"package.json",
|
|
6
|
+
"composer.json",
|
|
7
|
+
"pyproject.toml",
|
|
8
|
+
"requirements.txt",
|
|
9
|
+
"Cargo.toml",
|
|
10
|
+
"go.mod",
|
|
11
|
+
"Gemfile",
|
|
12
|
+
"pom.xml",
|
|
13
|
+
"build.gradle",
|
|
14
|
+
];
|
|
15
|
+
/**
|
|
16
|
+
* Searches upward from startPath to find the nearest project root directory marked by common indicators.
|
|
17
|
+
*/
|
|
18
|
+
export function findProjectRoot(startPath) {
|
|
19
|
+
try {
|
|
20
|
+
let current = path.resolve(startPath);
|
|
21
|
+
if (fs.existsSync(current)) {
|
|
22
|
+
const stat = fs.statSync(current);
|
|
23
|
+
if (stat.isFile()) {
|
|
24
|
+
current = path.dirname(current);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
// If path does not exist yet, start from dirname
|
|
29
|
+
current = path.dirname(current);
|
|
30
|
+
}
|
|
31
|
+
while (true) {
|
|
32
|
+
for (const marker of ROOT_MARKERS) {
|
|
33
|
+
if (fs.existsSync(path.join(current, marker))) {
|
|
34
|
+
return current;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const parent = path.dirname(current);
|
|
38
|
+
if (parent === current) {
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
current = parent;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// Fallback if filesystem access fails
|
|
46
|
+
}
|
|
47
|
+
return path.resolve(startPath);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Resolves the effective projectRoot from tool arguments, candidate paths, or process.cwd().
|
|
51
|
+
* Eliminates the bug where undefined projectRoot was stringified as literal "undefined".
|
|
52
|
+
*/
|
|
53
|
+
export function resolveProjectRoot(args, fallbackPath) {
|
|
54
|
+
if (args) {
|
|
55
|
+
if (typeof args.projectRoot === "string" &&
|
|
56
|
+
args.projectRoot.trim().length > 0 &&
|
|
57
|
+
args.projectRoot !== "undefined" &&
|
|
58
|
+
args.projectRoot !== "null") {
|
|
59
|
+
return path.resolve(args.projectRoot.trim());
|
|
60
|
+
}
|
|
61
|
+
if (typeof args.rootDir === "string" &&
|
|
62
|
+
args.rootDir.trim().length > 0 &&
|
|
63
|
+
args.rootDir !== "undefined" &&
|
|
64
|
+
args.rootDir !== "null") {
|
|
65
|
+
return findProjectRoot(args.rootDir.trim());
|
|
66
|
+
}
|
|
67
|
+
if (typeof args.directoryPath === "string" &&
|
|
68
|
+
args.directoryPath.trim().length > 0 &&
|
|
69
|
+
args.directoryPath !== "undefined" &&
|
|
70
|
+
args.directoryPath !== "null") {
|
|
71
|
+
return findProjectRoot(args.directoryPath.trim());
|
|
72
|
+
}
|
|
73
|
+
if (typeof args.filePath === "string" &&
|
|
74
|
+
args.filePath.trim().length > 0 &&
|
|
75
|
+
args.filePath !== "undefined" &&
|
|
76
|
+
args.filePath !== "null") {
|
|
77
|
+
return findProjectRoot(args.filePath.trim());
|
|
78
|
+
}
|
|
79
|
+
if (Array.isArray(args.reads) && args.reads.length > 0) {
|
|
80
|
+
const first = args.reads[0];
|
|
81
|
+
if (first && typeof first === "object" && typeof first.filePath === "string") {
|
|
82
|
+
return findProjectRoot(first.filePath);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (typeof fallbackPath === "string" &&
|
|
87
|
+
fallbackPath.trim().length > 0 &&
|
|
88
|
+
fallbackPath !== "undefined" &&
|
|
89
|
+
fallbackPath !== "null") {
|
|
90
|
+
return findProjectRoot(fallbackPath.trim());
|
|
91
|
+
}
|
|
92
|
+
return process.cwd();
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=projectRoot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectRoot.js","sourceRoot":"","sources":["../../../src/utils/projectRoot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Rails Routes Parser - v3.9.
|
|
2
|
+
* Rails Routes Parser - v3.9.2
|
|
3
3
|
* Parses config/routes.rb to map HTTP routes to controller actions.
|
|
4
4
|
* Uses indentation-based namespace tracking (immune to do/end counting errors).
|
|
5
5
|
* Supports: resources, resource, explicit HTTP verbs, namespace/scope, root.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Rails Routes Parser - v3.9.
|
|
2
|
+
* Rails Routes Parser - v3.9.2
|
|
3
3
|
* Parses config/routes.rb to map HTTP routes to controller actions.
|
|
4
4
|
* Uses indentation-based namespace tracking (immune to do/end counting errors).
|
|
5
5
|
* Supports: resources, resource, explicit HTTP verbs, namespace/scope, root.
|
package/llms.txt
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
|
-
# mcp-code-context v3.9.
|
|
1
|
+
# mcp-code-context v3.9.2
|
|
2
2
|
|
|
3
3
|
> A Model Context Protocol (MCP) server with **Tree-sitter WASM parsers** for 100% AST accuracy. Zero native dependencies. Production-ready with middleware pipeline, session-scoped state, and crash recovery.
|
|
4
4
|
|
|
5
|
-
## What's New in v3.9.
|
|
5
|
+
## What's New in v3.9.2
|
|
6
|
+
|
|
7
|
+
🛡️ **Project Root Fallback & Schema Freedom Release**:
|
|
8
|
+
- ✅ **Smart Project Root Discovery**: `resolveProjectRoot` & `findProjectRoot` walk up directory trees detecting `.git`, `package.json`, `composer.json`, `pyproject.toml`, etc. Eliminates false-positive `outside project boundary ".../undefined"` security errors.
|
|
9
|
+
- ✅ **Optional Schema Requirements**: `projectRoot` is now optional across all tools in `CORE_TOOLS` and `ADMIN_TOOLS`. LLM agents can perform surgical operations with just `filePath` or `rootDir`.
|
|
10
|
+
- ✅ **SecurityValidator Guard**: `SecurityValidator` safely defaults `undefined`/`null` roots to `process.cwd()`.
|
|
11
|
+
- ✅ **Startup Diagnostics Signature**: Emits `[mcp-code-context] v3.9.2 running on stdio` on startup.
|
|
12
|
+
|
|
13
|
+
## Previously Added in v3.9.1
|
|
6
14
|
|
|
7
15
|
🐛 **Bug Fix Release**:
|
|
8
16
|
- ✅ **`get_rails_routes` namespace fix**: Routes inside `namespace :admin do` now produce `/admin/users` (was `/users`). Controllers correctly namespaced as `admin/users`. Fixed regex that captured `admin do` instead of `admin` with symbol syntax.
|
|
@@ -159,13 +167,13 @@ This MCP server solves two problems:
|
|
|
159
167
|
- `steps` (optional): Number of versions to go back (1-5, default: 1).
|
|
160
168
|
**What it does:** Reverts the file to the state it was in before the last 1-5 modifications.
|
|
161
169
|
|
|
162
|
-
### Write Tools (
|
|
170
|
+
### Write Tools (Two-Phase Workflow)
|
|
163
171
|
|
|
164
172
|
All write tools follow a **Two-Phase Workflow**:
|
|
165
173
|
1. **Phase 1 (Preview)**: Call without a token to get a unified `diff` and a `confirmationToken`.
|
|
166
174
|
2. **Phase 2 (Apply)**: Call with `confirmationToken` and `confirm: true` to apply the changes.
|
|
167
175
|
|
|
168
|
-
**Important
|
|
176
|
+
**Important Safety Features:**
|
|
169
177
|
- ✅ **Windows CRLF Support**: Fully resolved. All operations work correctly on Windows files with CRLF line endings.
|
|
170
178
|
- ✅ **Parameter Brace Handling**: Methods with braces in parameters (e.g., `{int? cart}`) are now handled correctly.
|
|
171
179
|
- ✅ **Session-scoped state**: Each MCP client gets isolated state (locks, confirmation store, rate limiter).
|
|
@@ -344,7 +352,7 @@ All write tools follow a **Two-Phase Workflow**:
|
|
|
344
352
|
5. **Phase 2: Apply Edit** → Verify the diff, then call with the token and `confirm: true`.
|
|
345
353
|
6. **Recovery** → Use `rollback_file` if needed.
|
|
346
354
|
|
|
347
|
-
## Session State Configuration (v3.
|
|
355
|
+
## Session State Configuration (v3.8.0+)
|
|
348
356
|
|
|
349
357
|
### Critical: Session-Scoped State
|
|
350
358
|
|
|
@@ -460,6 +468,6 @@ No additional configuration is needed beyond adding the MCP server definition. S
|
|
|
460
468
|
|
|
461
469
|
---
|
|
462
470
|
|
|
463
|
-
**Version**: 3.9.
|
|
471
|
+
**Version**: 3.9.2
|
|
464
472
|
**Last Updated**: June 8, 2026
|
|
465
473
|
**Status**: Production-ready with session-scoped state and crash recovery
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-code-context",
|
|
3
|
-
"version": "3.9.
|
|
3
|
+
"version": "3.9.2",
|
|
4
4
|
"description": "Powerful MCP server with Tree-sitter WASM parsers for 100% AST accuracy. Zero native dependencies. Production-ready with persistent caching, structured logging, file watching, fuzzy search, rate limiting, file locking, and ReDoS protection. Supports TypeScript, JavaScript, PHP, Dart, Python, and Ruby (with ActiveRecord Virtual Schema extraction).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
package/vitest.config.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { defineConfig } from 'vitest/config';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
|
|
4
|
-
export default defineConfig({
|
|
5
|
-
test: {
|
|
6
|
-
globals: true,
|
|
7
|
-
environment: 'node',
|
|
8
|
-
reporters: ['default'],
|
|
9
|
-
coverage: {
|
|
10
|
-
provider: 'v8',
|
|
11
|
-
reporter: ['text', 'json', 'html'],
|
|
12
|
-
exclude: [
|
|
13
|
-
'node_modules/',
|
|
14
|
-
'dist/',
|
|
15
|
-
'dist-tests/',
|
|
16
|
-
'**/*.spec.ts',
|
|
17
|
-
'**/*.test.ts',
|
|
18
|
-
'tests/',
|
|
19
|
-
'scripts/'
|
|
20
|
-
],
|
|
21
|
-
thresholds: {
|
|
22
|
-
lines: 80,
|
|
23
|
-
functions: 80,
|
|
24
|
-
branches: 75,
|
|
25
|
-
statements: 80
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
testTimeout: 60000,
|
|
29
|
-
hookTimeout: 60000,
|
|
30
|
-
outputTruncateLength: 80
|
|
31
|
-
},
|
|
32
|
-
resolve: {
|
|
33
|
-
alias: {
|
|
34
|
-
'@': path.resolve(__dirname, './src')
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
});
|