context-mcp-server 1.0.3 → 1.0.4
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/package.json +3 -1
- package/pyproject.toml +69 -0
- package/src/cli.js +2 -2
- package/uv.lock +1295 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "context-mcp-server",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "Persistent AI memory + codebase knowledge graph MCP server. Works across Claude Code, Cursor, Gemini CLI, Codex, Windsurf, VS Code Copilot, Claude.ai, and ChatGPT.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -21,6 +21,8 @@
|
|
|
21
21
|
"files": [
|
|
22
22
|
"src/",
|
|
23
23
|
"codegraph/",
|
|
24
|
+
"pyproject.toml",
|
|
25
|
+
"uv.lock",
|
|
24
26
|
"README.md"
|
|
25
27
|
],
|
|
26
28
|
"keywords": [
|
package/pyproject.toml
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "codegraph-mcp"
|
|
7
|
+
version = "1.0.4"
|
|
8
|
+
description = "Codebase knowledge graph MCP server — AST extraction, graph queries, community detection"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.11"
|
|
11
|
+
license = { text = "MIT" }
|
|
12
|
+
keywords = ["mcp", "ai", "codegraph", "knowledge-graph", "ast"]
|
|
13
|
+
dependencies = [
|
|
14
|
+
"mcp>=1.0.0",
|
|
15
|
+
"networkx>=3.0",
|
|
16
|
+
"pymupdf>=1.24",
|
|
17
|
+
"tree-sitter>=0.23.0",
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
[project.optional-dependencies]
|
|
21
|
+
treesitter = [
|
|
22
|
+
"tree-sitter>=0.23.0",
|
|
23
|
+
"tree-sitter-python",
|
|
24
|
+
"tree-sitter-javascript",
|
|
25
|
+
"tree-sitter-typescript",
|
|
26
|
+
"tree-sitter-go",
|
|
27
|
+
"tree-sitter-rust",
|
|
28
|
+
"tree-sitter-java",
|
|
29
|
+
"tree-sitter-c",
|
|
30
|
+
"tree-sitter-cpp",
|
|
31
|
+
"tree-sitter-c-sharp",
|
|
32
|
+
"tree-sitter-ruby",
|
|
33
|
+
"tree-sitter-php",
|
|
34
|
+
"tree-sitter-swift",
|
|
35
|
+
"tree-sitter-lua",
|
|
36
|
+
"tree-sitter-kotlin",
|
|
37
|
+
]
|
|
38
|
+
|
|
39
|
+
[project.scripts]
|
|
40
|
+
codegraph-mcp = "codegraph.server:main"
|
|
41
|
+
|
|
42
|
+
[tool.hatch.build.targets.wheel]
|
|
43
|
+
packages = ["codegraph"]
|
|
44
|
+
|
|
45
|
+
# ── uv ────────────────────────────────────────────────────────────────────────
|
|
46
|
+
|
|
47
|
+
[dependency-groups]
|
|
48
|
+
dev = [
|
|
49
|
+
"pytest>=8.0",
|
|
50
|
+
"pytest-asyncio>=0.23",
|
|
51
|
+
"ruff>=0.4",
|
|
52
|
+
"mypy>=1.10",
|
|
53
|
+
]
|
|
54
|
+
|
|
55
|
+
# ── ruff ─────────────────────────────────────────────────────────────────────
|
|
56
|
+
|
|
57
|
+
[tool.ruff]
|
|
58
|
+
target-version = "py311"
|
|
59
|
+
line-length = 100
|
|
60
|
+
|
|
61
|
+
[tool.ruff.lint]
|
|
62
|
+
select = ["E", "F", "I"]
|
|
63
|
+
ignore = ["E501"]
|
|
64
|
+
|
|
65
|
+
# ── pytest ────────────────────────────────────────────────────────────────────
|
|
66
|
+
|
|
67
|
+
[tool.pytest.ini_options]
|
|
68
|
+
asyncio_mode = "auto"
|
|
69
|
+
testpaths = ["tests"]
|
package/src/cli.js
CHANGED
|
@@ -637,7 +637,7 @@ function cmdInstall(args) {
|
|
|
637
637
|
const venvPath = join(pkgRootInit, '.venv');
|
|
638
638
|
spawnSync('cmd', ['/c', 'rmdir', '/s', '/q', venvPath], { encoding: 'utf8' });
|
|
639
639
|
}
|
|
640
|
-
const sync2 = spawnSync('uv', ['sync', '--no-dev'], {
|
|
640
|
+
const sync2 = spawnSync('uv', ['--directory', pkgRootInit, 'sync', '--no-dev'], { encoding: 'utf8' });
|
|
641
641
|
if (sync2.status !== 0) {
|
|
642
642
|
console.log(` ${bad('✗')} uv sync failed:\n${faint((sync2.stderr || sync2.stdout || '').trim())}`);
|
|
643
643
|
} else {
|
|
@@ -696,7 +696,7 @@ function cmdInstall(args) {
|
|
|
696
696
|
// Package root is one level up from src/
|
|
697
697
|
const __dirname_cli = dirname(fileURLToPath(import.meta.url));
|
|
698
698
|
const pkgRoot = join(__dirname_cli, '..');
|
|
699
|
-
const sync = spawnSync('uv', ['sync', '--no-dev'], {
|
|
699
|
+
const sync = spawnSync('uv', ['--directory', pkgRoot, 'sync', '--no-dev'], { encoding: 'utf8' });
|
|
700
700
|
if (sync.status !== 0) {
|
|
701
701
|
console.log(` ${bad('✗')} uv sync failed:\n${faint((sync.stderr || sync.stdout || '').trim())}`);
|
|
702
702
|
} else {
|