@mduenas/codegraph 0.4.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/LICENSE +21 -0
- package/README.md +641 -0
- package/dist/bin/codegraph.d.ts +20 -0
- package/dist/bin/codegraph.d.ts.map +1 -0
- package/dist/bin/codegraph.js +704 -0
- package/dist/bin/codegraph.js.map +1 -0
- package/dist/config.d.ts +51 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +291 -0
- package/dist/config.js.map +1 -0
- package/dist/context/formatter.d.ts +30 -0
- package/dist/context/formatter.d.ts.map +1 -0
- package/dist/context/formatter.js +244 -0
- package/dist/context/formatter.js.map +1 -0
- package/dist/context/index.d.ts +86 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +402 -0
- package/dist/context/index.js.map +1 -0
- package/dist/db/index.d.ts +64 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +170 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/migrations.d.ts +44 -0
- package/dist/db/migrations.d.ts.map +1 -0
- package/dist/db/migrations.js +105 -0
- package/dist/db/migrations.js.map +1 -0
- package/dist/db/queries.d.ts +148 -0
- package/dist/db/queries.d.ts.map +1 -0
- package/dist/db/queries.js +669 -0
- package/dist/db/queries.js.map +1 -0
- package/dist/directory.d.ts +45 -0
- package/dist/directory.d.ts.map +1 -0
- package/dist/directory.js +191 -0
- package/dist/directory.js.map +1 -0
- package/dist/errors.d.ts +136 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +219 -0
- package/dist/errors.js.map +1 -0
- package/dist/extraction/grammars.d.ts +36 -0
- package/dist/extraction/grammars.d.ts.map +1 -0
- package/dist/extraction/grammars.js +181 -0
- package/dist/extraction/grammars.js.map +1 -0
- package/dist/extraction/index.d.ts +91 -0
- package/dist/extraction/index.d.ts.map +1 -0
- package/dist/extraction/index.js +493 -0
- package/dist/extraction/index.js.map +1 -0
- package/dist/extraction/tree-sitter.d.ts +176 -0
- package/dist/extraction/tree-sitter.d.ts.map +1 -0
- package/dist/extraction/tree-sitter.js +1798 -0
- package/dist/extraction/tree-sitter.js.map +1 -0
- package/dist/graph/index.d.ts +8 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +13 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/queries.d.ts +106 -0
- package/dist/graph/queries.d.ts.map +1 -0
- package/dist/graph/queries.js +355 -0
- package/dist/graph/queries.js.map +1 -0
- package/dist/graph/traversal.d.ts +127 -0
- package/dist/graph/traversal.d.ts.map +1 -0
- package/dist/graph/traversal.js +465 -0
- package/dist/graph/traversal.js.map +1 -0
- package/dist/index.d.ts +496 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +818 -0
- package/dist/index.js.map +1 -0
- package/dist/installer/banner.d.ts +40 -0
- package/dist/installer/banner.d.ts.map +1 -0
- package/dist/installer/banner.js +162 -0
- package/dist/installer/banner.js.map +1 -0
- package/dist/installer/claude-md-template.d.ts +10 -0
- package/dist/installer/claude-md-template.d.ts.map +1 -0
- package/dist/installer/claude-md-template.js +46 -0
- package/dist/installer/claude-md-template.js.map +1 -0
- package/dist/installer/config-writer.d.ts +36 -0
- package/dist/installer/config-writer.d.ts.map +1 -0
- package/dist/installer/config-writer.js +282 -0
- package/dist/installer/config-writer.js.map +1 -0
- package/dist/installer/index.d.ts +13 -0
- package/dist/installer/index.d.ts.map +1 -0
- package/dist/installer/index.js +155 -0
- package/dist/installer/index.js.map +1 -0
- package/dist/installer/prompts.d.ts +18 -0
- package/dist/installer/prompts.d.ts.map +1 -0
- package/dist/installer/prompts.js +113 -0
- package/dist/installer/prompts.js.map +1 -0
- package/dist/mcp/index.d.ts +64 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +207 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/tools.d.ts +93 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +442 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/mcp/transport.d.ts +89 -0
- package/dist/mcp/transport.d.ts.map +1 -0
- package/dist/mcp/transport.js +170 -0
- package/dist/mcp/transport.js.map +1 -0
- package/dist/resolution/frameworks/csharp.d.ts +8 -0
- package/dist/resolution/frameworks/csharp.d.ts.map +1 -0
- package/dist/resolution/frameworks/csharp.js +274 -0
- package/dist/resolution/frameworks/csharp.js.map +1 -0
- package/dist/resolution/frameworks/express.d.ts +8 -0
- package/dist/resolution/frameworks/express.d.ts.map +1 -0
- package/dist/resolution/frameworks/express.js +208 -0
- package/dist/resolution/frameworks/express.js.map +1 -0
- package/dist/resolution/frameworks/go.d.ts +8 -0
- package/dist/resolution/frameworks/go.d.ts.map +1 -0
- package/dist/resolution/frameworks/go.js +225 -0
- package/dist/resolution/frameworks/go.js.map +1 -0
- package/dist/resolution/frameworks/index.d.ts +33 -0
- package/dist/resolution/frameworks/index.d.ts.map +1 -0
- package/dist/resolution/frameworks/index.js +113 -0
- package/dist/resolution/frameworks/index.js.map +1 -0
- package/dist/resolution/frameworks/java.d.ts +8 -0
- package/dist/resolution/frameworks/java.d.ts.map +1 -0
- package/dist/resolution/frameworks/java.js +239 -0
- package/dist/resolution/frameworks/java.js.map +1 -0
- package/dist/resolution/frameworks/laravel.d.ts +13 -0
- package/dist/resolution/frameworks/laravel.d.ts.map +1 -0
- package/dist/resolution/frameworks/laravel.js +198 -0
- package/dist/resolution/frameworks/laravel.js.map +1 -0
- package/dist/resolution/frameworks/python.d.ts +10 -0
- package/dist/resolution/frameworks/python.d.ts.map +1 -0
- package/dist/resolution/frameworks/python.js +331 -0
- package/dist/resolution/frameworks/python.js.map +1 -0
- package/dist/resolution/frameworks/react.d.ts +8 -0
- package/dist/resolution/frameworks/react.d.ts.map +1 -0
- package/dist/resolution/frameworks/react.js +294 -0
- package/dist/resolution/frameworks/react.js.map +1 -0
- package/dist/resolution/frameworks/ruby.d.ts +8 -0
- package/dist/resolution/frameworks/ruby.d.ts.map +1 -0
- package/dist/resolution/frameworks/ruby.js +262 -0
- package/dist/resolution/frameworks/ruby.js.map +1 -0
- package/dist/resolution/frameworks/rust.d.ts +8 -0
- package/dist/resolution/frameworks/rust.d.ts.map +1 -0
- package/dist/resolution/frameworks/rust.js +222 -0
- package/dist/resolution/frameworks/rust.js.map +1 -0
- package/dist/resolution/frameworks/swift.d.ts +10 -0
- package/dist/resolution/frameworks/swift.d.ts.map +1 -0
- package/dist/resolution/frameworks/swift.js +486 -0
- package/dist/resolution/frameworks/swift.js.map +1 -0
- package/dist/resolution/import-resolver.d.ts +20 -0
- package/dist/resolution/import-resolver.d.ts.map +1 -0
- package/dist/resolution/import-resolver.js +445 -0
- package/dist/resolution/import-resolver.js.map +1 -0
- package/dist/resolution/index.d.ts +72 -0
- package/dist/resolution/index.d.ts.map +1 -0
- package/dist/resolution/index.js +301 -0
- package/dist/resolution/index.js.map +1 -0
- package/dist/resolution/name-matcher.d.ts +27 -0
- package/dist/resolution/name-matcher.d.ts.map +1 -0
- package/dist/resolution/name-matcher.js +210 -0
- package/dist/resolution/name-matcher.js.map +1 -0
- package/dist/resolution/types.d.ts +108 -0
- package/dist/resolution/types.d.ts.map +1 -0
- package/dist/resolution/types.js +8 -0
- package/dist/resolution/types.js.map +1 -0
- package/dist/sync/git-hooks.d.ts +66 -0
- package/dist/sync/git-hooks.d.ts.map +1 -0
- package/dist/sync/git-hooks.js +281 -0
- package/dist/sync/git-hooks.js.map +1 -0
- package/dist/sync/index.d.ts +13 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +18 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/types.d.ts +410 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +165 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +116 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +295 -0
- package/dist/utils.js.map +1 -0
- package/dist/vectors/embedder.d.ts +140 -0
- package/dist/vectors/embedder.d.ts.map +1 -0
- package/dist/vectors/embedder.js +336 -0
- package/dist/vectors/embedder.js.map +1 -0
- package/dist/vectors/index.d.ts +9 -0
- package/dist/vectors/index.d.ts.map +1 -0
- package/dist/vectors/index.js +20 -0
- package/dist/vectors/index.js.map +1 -0
- package/dist/vectors/manager.d.ts +119 -0
- package/dist/vectors/manager.d.ts.map +1 -0
- package/dist/vectors/manager.js +274 -0
- package/dist/vectors/manager.js.map +1 -0
- package/dist/vectors/search.d.ts +134 -0
- package/dist/vectors/search.d.ts.map +1 -0
- package/dist/vectors/search.js +409 -0
- package/dist/vectors/search.js.map +1 -0
- package/package.json +67 -0
- package/scripts/postinstall.js +68 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool Definitions
|
|
3
|
+
*
|
|
4
|
+
* Defines the tools exposed by the CodeGraph MCP server.
|
|
5
|
+
*/
|
|
6
|
+
import CodeGraph from '../index';
|
|
7
|
+
/**
|
|
8
|
+
* MCP Tool definition
|
|
9
|
+
*/
|
|
10
|
+
export interface ToolDefinition {
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
inputSchema: {
|
|
14
|
+
type: 'object';
|
|
15
|
+
properties: Record<string, PropertySchema>;
|
|
16
|
+
required?: string[];
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
interface PropertySchema {
|
|
20
|
+
type: string;
|
|
21
|
+
description: string;
|
|
22
|
+
enum?: string[];
|
|
23
|
+
default?: unknown;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Tool execution result
|
|
27
|
+
*/
|
|
28
|
+
export interface ToolResult {
|
|
29
|
+
content: Array<{
|
|
30
|
+
type: 'text';
|
|
31
|
+
text: string;
|
|
32
|
+
}>;
|
|
33
|
+
isError?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* All CodeGraph MCP tools
|
|
37
|
+
*
|
|
38
|
+
* Designed for minimal context usage - use codegraph_context as the primary tool,
|
|
39
|
+
* and only use other tools for targeted follow-up queries.
|
|
40
|
+
*/
|
|
41
|
+
export declare const tools: ToolDefinition[];
|
|
42
|
+
/**
|
|
43
|
+
* Tool handler that executes tools against a CodeGraph instance
|
|
44
|
+
*/
|
|
45
|
+
export declare class ToolHandler {
|
|
46
|
+
private cg;
|
|
47
|
+
constructor(cg: CodeGraph);
|
|
48
|
+
/**
|
|
49
|
+
* Execute a tool by name
|
|
50
|
+
*/
|
|
51
|
+
execute(toolName: string, args: Record<string, unknown>): Promise<ToolResult>;
|
|
52
|
+
/**
|
|
53
|
+
* Handle codegraph_search
|
|
54
|
+
*/
|
|
55
|
+
private handleSearch;
|
|
56
|
+
/**
|
|
57
|
+
* Handle codegraph_context
|
|
58
|
+
*/
|
|
59
|
+
private handleContext;
|
|
60
|
+
/**
|
|
61
|
+
* Heuristic to detect if a query looks like a feature request
|
|
62
|
+
*/
|
|
63
|
+
private looksLikeFeatureRequest;
|
|
64
|
+
/**
|
|
65
|
+
* Handle codegraph_callers
|
|
66
|
+
*/
|
|
67
|
+
private handleCallers;
|
|
68
|
+
/**
|
|
69
|
+
* Handle codegraph_callees
|
|
70
|
+
*/
|
|
71
|
+
private handleCallees;
|
|
72
|
+
/**
|
|
73
|
+
* Handle codegraph_impact
|
|
74
|
+
*/
|
|
75
|
+
private handleImpact;
|
|
76
|
+
/**
|
|
77
|
+
* Handle codegraph_node
|
|
78
|
+
*/
|
|
79
|
+
private handleNode;
|
|
80
|
+
/**
|
|
81
|
+
* Handle codegraph_status
|
|
82
|
+
*/
|
|
83
|
+
private handleStatus;
|
|
84
|
+
private formatSearchResults;
|
|
85
|
+
private formatNodeList;
|
|
86
|
+
private formatImpact;
|
|
87
|
+
private formatNodeDetails;
|
|
88
|
+
private formatTaskContext;
|
|
89
|
+
private textResult;
|
|
90
|
+
private errorResult;
|
|
91
|
+
}
|
|
92
|
+
export {};
|
|
93
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,SAAS,MAAM,UAAU,CAAC;AAGjC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC3C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,cAAc,EAqIjC,CAAC;AAEF;;GAEG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,SAAS;IAEjC;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAyBnF;;OAEG;YACW,YAAY;IAkB1B;;OAEG;YACW,aAAa;IA0B3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAyB/B;;OAEG;YACW,aAAa;IAuB3B;;OAEG;YACW,aAAa;IAuB3B;;OAEG;YACW,YAAY;IAiB1B;;OAEG;YACW,UAAU;IAsBxB;;OAEG;YACW,YAAY;IAkC1B,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,WAAW;CAMpB"}
|
|
@@ -0,0 +1,442 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP Tool Definitions
|
|
4
|
+
*
|
|
5
|
+
* Defines the tools exposed by the CodeGraph MCP server.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.ToolHandler = exports.tools = void 0;
|
|
9
|
+
/**
|
|
10
|
+
* All CodeGraph MCP tools
|
|
11
|
+
*
|
|
12
|
+
* Designed for minimal context usage - use codegraph_context as the primary tool,
|
|
13
|
+
* and only use other tools for targeted follow-up queries.
|
|
14
|
+
*/
|
|
15
|
+
exports.tools = [
|
|
16
|
+
{
|
|
17
|
+
name: 'codegraph_search',
|
|
18
|
+
description: 'Quick symbol search by name. Returns locations only (no code). Use codegraph_context instead for comprehensive task context.',
|
|
19
|
+
inputSchema: {
|
|
20
|
+
type: 'object',
|
|
21
|
+
properties: {
|
|
22
|
+
query: {
|
|
23
|
+
type: 'string',
|
|
24
|
+
description: 'Symbol name or partial name (e.g., "auth", "signIn", "UserService")',
|
|
25
|
+
},
|
|
26
|
+
kind: {
|
|
27
|
+
type: 'string',
|
|
28
|
+
description: 'Filter by node kind',
|
|
29
|
+
enum: ['function', 'method', 'class', 'interface', 'type', 'variable', 'route', 'component'],
|
|
30
|
+
},
|
|
31
|
+
limit: {
|
|
32
|
+
type: 'number',
|
|
33
|
+
description: 'Maximum results (default: 10)',
|
|
34
|
+
default: 10,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
required: ['query'],
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'codegraph_context',
|
|
42
|
+
description: 'PRIMARY TOOL: Build comprehensive context for a task. Returns entry points, related symbols, and key code - often enough to understand the codebase without additional tool calls. NOTE: This provides CODE context, not product requirements. For new features, still clarify UX/behavior questions with the user before implementing.',
|
|
43
|
+
inputSchema: {
|
|
44
|
+
type: 'object',
|
|
45
|
+
properties: {
|
|
46
|
+
task: {
|
|
47
|
+
type: 'string',
|
|
48
|
+
description: 'Description of the task, bug, or feature to build context for',
|
|
49
|
+
},
|
|
50
|
+
maxNodes: {
|
|
51
|
+
type: 'number',
|
|
52
|
+
description: 'Maximum symbols to include (default: 20)',
|
|
53
|
+
default: 20,
|
|
54
|
+
},
|
|
55
|
+
includeCode: {
|
|
56
|
+
type: 'boolean',
|
|
57
|
+
description: 'Include code snippets for key symbols (default: true)',
|
|
58
|
+
default: true,
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
required: ['task'],
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'codegraph_callers',
|
|
66
|
+
description: 'Find all functions/methods that call a specific symbol. Useful for understanding usage patterns and impact of changes.',
|
|
67
|
+
inputSchema: {
|
|
68
|
+
type: 'object',
|
|
69
|
+
properties: {
|
|
70
|
+
symbol: {
|
|
71
|
+
type: 'string',
|
|
72
|
+
description: 'Name of the function, method, or class to find callers for',
|
|
73
|
+
},
|
|
74
|
+
limit: {
|
|
75
|
+
type: 'number',
|
|
76
|
+
description: 'Maximum number of callers to return (default: 20)',
|
|
77
|
+
default: 20,
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
required: ['symbol'],
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: 'codegraph_callees',
|
|
85
|
+
description: 'Find all functions/methods that a specific symbol calls. Useful for understanding dependencies and code flow.',
|
|
86
|
+
inputSchema: {
|
|
87
|
+
type: 'object',
|
|
88
|
+
properties: {
|
|
89
|
+
symbol: {
|
|
90
|
+
type: 'string',
|
|
91
|
+
description: 'Name of the function, method, or class to find callees for',
|
|
92
|
+
},
|
|
93
|
+
limit: {
|
|
94
|
+
type: 'number',
|
|
95
|
+
description: 'Maximum number of callees to return (default: 20)',
|
|
96
|
+
default: 20,
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
required: ['symbol'],
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: 'codegraph_impact',
|
|
104
|
+
description: 'Analyze the impact radius of changing a symbol. Shows what code could be affected by modifications.',
|
|
105
|
+
inputSchema: {
|
|
106
|
+
type: 'object',
|
|
107
|
+
properties: {
|
|
108
|
+
symbol: {
|
|
109
|
+
type: 'string',
|
|
110
|
+
description: 'Name of the symbol to analyze impact for',
|
|
111
|
+
},
|
|
112
|
+
depth: {
|
|
113
|
+
type: 'number',
|
|
114
|
+
description: 'How many levels of dependencies to traverse (default: 2)',
|
|
115
|
+
default: 2,
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
required: ['symbol'],
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
name: 'codegraph_node',
|
|
123
|
+
description: 'Get detailed information about a specific code symbol. Use includeCode=true only when you need the full source code - otherwise just get location and signature to minimize context usage.',
|
|
124
|
+
inputSchema: {
|
|
125
|
+
type: 'object',
|
|
126
|
+
properties: {
|
|
127
|
+
symbol: {
|
|
128
|
+
type: 'string',
|
|
129
|
+
description: 'Name of the symbol to get details for',
|
|
130
|
+
},
|
|
131
|
+
includeCode: {
|
|
132
|
+
type: 'boolean',
|
|
133
|
+
description: 'Include full source code (default: false to minimize context)',
|
|
134
|
+
default: false,
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
required: ['symbol'],
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
name: 'codegraph_status',
|
|
142
|
+
description: 'Get the status of the CodeGraph index, including statistics about indexed files, nodes, and edges.',
|
|
143
|
+
inputSchema: {
|
|
144
|
+
type: 'object',
|
|
145
|
+
properties: {},
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
];
|
|
149
|
+
/**
|
|
150
|
+
* Tool handler that executes tools against a CodeGraph instance
|
|
151
|
+
*/
|
|
152
|
+
class ToolHandler {
|
|
153
|
+
cg;
|
|
154
|
+
constructor(cg) {
|
|
155
|
+
this.cg = cg;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Execute a tool by name
|
|
159
|
+
*/
|
|
160
|
+
async execute(toolName, args) {
|
|
161
|
+
try {
|
|
162
|
+
switch (toolName) {
|
|
163
|
+
case 'codegraph_search':
|
|
164
|
+
return await this.handleSearch(args);
|
|
165
|
+
case 'codegraph_context':
|
|
166
|
+
return await this.handleContext(args);
|
|
167
|
+
case 'codegraph_callers':
|
|
168
|
+
return await this.handleCallers(args);
|
|
169
|
+
case 'codegraph_callees':
|
|
170
|
+
return await this.handleCallees(args);
|
|
171
|
+
case 'codegraph_impact':
|
|
172
|
+
return await this.handleImpact(args);
|
|
173
|
+
case 'codegraph_node':
|
|
174
|
+
return await this.handleNode(args);
|
|
175
|
+
case 'codegraph_status':
|
|
176
|
+
return await this.handleStatus();
|
|
177
|
+
default:
|
|
178
|
+
return this.errorResult(`Unknown tool: ${toolName}`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
catch (err) {
|
|
182
|
+
return this.errorResult(`Tool execution failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Handle codegraph_search
|
|
187
|
+
*/
|
|
188
|
+
async handleSearch(args) {
|
|
189
|
+
const query = args.query;
|
|
190
|
+
const kind = args.kind;
|
|
191
|
+
const limit = args.limit || 10;
|
|
192
|
+
const results = this.cg.searchNodes(query, {
|
|
193
|
+
limit,
|
|
194
|
+
kinds: kind ? [kind] : undefined,
|
|
195
|
+
});
|
|
196
|
+
if (results.length === 0) {
|
|
197
|
+
return this.textResult(`No results found for "${query}"`);
|
|
198
|
+
}
|
|
199
|
+
const formatted = this.formatSearchResults(results);
|
|
200
|
+
return this.textResult(formatted);
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Handle codegraph_context
|
|
204
|
+
*/
|
|
205
|
+
async handleContext(args) {
|
|
206
|
+
const task = args.task;
|
|
207
|
+
const maxNodes = args.maxNodes || 20;
|
|
208
|
+
const includeCode = args.includeCode !== false;
|
|
209
|
+
const context = await this.cg.buildContext(task, {
|
|
210
|
+
maxNodes,
|
|
211
|
+
includeCode,
|
|
212
|
+
format: 'markdown',
|
|
213
|
+
});
|
|
214
|
+
// Detect if this looks like a feature request (vs bug fix or exploration)
|
|
215
|
+
const isFeatureQuery = this.looksLikeFeatureRequest(task);
|
|
216
|
+
const reminder = isFeatureQuery
|
|
217
|
+
? '\n\n⚠️ **Ask user:** UX preferences, edge cases, acceptance criteria'
|
|
218
|
+
: '';
|
|
219
|
+
// buildContext returns string when format is 'markdown'
|
|
220
|
+
if (typeof context === 'string') {
|
|
221
|
+
return this.textResult(context + reminder);
|
|
222
|
+
}
|
|
223
|
+
// If it returns TaskContext, format it
|
|
224
|
+
return this.textResult(this.formatTaskContext(context) + reminder);
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Heuristic to detect if a query looks like a feature request
|
|
228
|
+
*/
|
|
229
|
+
looksLikeFeatureRequest(task) {
|
|
230
|
+
const featureKeywords = [
|
|
231
|
+
'add', 'create', 'implement', 'build', 'enable', 'allow',
|
|
232
|
+
'new feature', 'support for', 'ability to', 'want to',
|
|
233
|
+
'should be able', 'need to add', 'swap', 'edit', 'modify'
|
|
234
|
+
];
|
|
235
|
+
const bugKeywords = [
|
|
236
|
+
'fix', 'bug', 'error', 'broken', 'crash', 'issue', 'problem',
|
|
237
|
+
'not working', 'fails', 'undefined', 'null'
|
|
238
|
+
];
|
|
239
|
+
const explorationKeywords = [
|
|
240
|
+
'how does', 'where is', 'what is', 'find', 'show me',
|
|
241
|
+
'explain', 'understand', 'explore'
|
|
242
|
+
];
|
|
243
|
+
const lowerTask = task.toLowerCase();
|
|
244
|
+
// If it's clearly a bug or exploration, not a feature
|
|
245
|
+
if (bugKeywords.some(k => lowerTask.includes(k)))
|
|
246
|
+
return false;
|
|
247
|
+
if (explorationKeywords.some(k => lowerTask.includes(k)))
|
|
248
|
+
return false;
|
|
249
|
+
// If it matches feature keywords, it's likely a feature request
|
|
250
|
+
return featureKeywords.some(k => lowerTask.includes(k));
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Handle codegraph_callers
|
|
254
|
+
*/
|
|
255
|
+
async handleCallers(args) {
|
|
256
|
+
const symbol = args.symbol;
|
|
257
|
+
const limit = args.limit || 20;
|
|
258
|
+
// First find the node by name
|
|
259
|
+
const results = this.cg.searchNodes(symbol, { limit: 1 });
|
|
260
|
+
if (results.length === 0 || !results[0]) {
|
|
261
|
+
return this.textResult(`Symbol "${symbol}" not found in the codebase`);
|
|
262
|
+
}
|
|
263
|
+
const node = results[0].node;
|
|
264
|
+
const callers = this.cg.getCallers(node.id);
|
|
265
|
+
if (callers.length === 0) {
|
|
266
|
+
return this.textResult(`No callers found for "${symbol}"`);
|
|
267
|
+
}
|
|
268
|
+
// Extract just the nodes from the { node, edge } tuples
|
|
269
|
+
const callerNodes = callers.slice(0, limit).map(c => c.node);
|
|
270
|
+
const formatted = this.formatNodeList(callerNodes, `Callers of ${symbol}`);
|
|
271
|
+
return this.textResult(formatted);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Handle codegraph_callees
|
|
275
|
+
*/
|
|
276
|
+
async handleCallees(args) {
|
|
277
|
+
const symbol = args.symbol;
|
|
278
|
+
const limit = args.limit || 20;
|
|
279
|
+
// First find the node by name
|
|
280
|
+
const results = this.cg.searchNodes(symbol, { limit: 1 });
|
|
281
|
+
if (results.length === 0 || !results[0]) {
|
|
282
|
+
return this.textResult(`Symbol "${symbol}" not found in the codebase`);
|
|
283
|
+
}
|
|
284
|
+
const node = results[0].node;
|
|
285
|
+
const callees = this.cg.getCallees(node.id);
|
|
286
|
+
if (callees.length === 0) {
|
|
287
|
+
return this.textResult(`No callees found for "${symbol}"`);
|
|
288
|
+
}
|
|
289
|
+
// Extract just the nodes from the { node, edge } tuples
|
|
290
|
+
const calleeNodes = callees.slice(0, limit).map(c => c.node);
|
|
291
|
+
const formatted = this.formatNodeList(calleeNodes, `Callees of ${symbol}`);
|
|
292
|
+
return this.textResult(formatted);
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Handle codegraph_impact
|
|
296
|
+
*/
|
|
297
|
+
async handleImpact(args) {
|
|
298
|
+
const symbol = args.symbol;
|
|
299
|
+
const depth = args.depth || 2;
|
|
300
|
+
// First find the node by name
|
|
301
|
+
const results = this.cg.searchNodes(symbol, { limit: 1 });
|
|
302
|
+
if (results.length === 0 || !results[0]) {
|
|
303
|
+
return this.textResult(`Symbol "${symbol}" not found in the codebase`);
|
|
304
|
+
}
|
|
305
|
+
const node = results[0].node;
|
|
306
|
+
const impact = this.cg.getImpactRadius(node.id, depth);
|
|
307
|
+
const formatted = this.formatImpact(symbol, impact);
|
|
308
|
+
return this.textResult(formatted);
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Handle codegraph_node
|
|
312
|
+
*/
|
|
313
|
+
async handleNode(args) {
|
|
314
|
+
const symbol = args.symbol;
|
|
315
|
+
// Default to false to minimize context usage
|
|
316
|
+
const includeCode = args.includeCode === true;
|
|
317
|
+
// Find the node by name
|
|
318
|
+
const results = this.cg.searchNodes(symbol, { limit: 1 });
|
|
319
|
+
if (results.length === 0 || !results[0]) {
|
|
320
|
+
return this.textResult(`Symbol "${symbol}" not found in the codebase`);
|
|
321
|
+
}
|
|
322
|
+
const node = results[0].node;
|
|
323
|
+
let code = null;
|
|
324
|
+
if (includeCode) {
|
|
325
|
+
code = await this.cg.getCode(node.id);
|
|
326
|
+
}
|
|
327
|
+
const formatted = this.formatNodeDetails(node, code);
|
|
328
|
+
return this.textResult(formatted);
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Handle codegraph_status
|
|
332
|
+
*/
|
|
333
|
+
async handleStatus() {
|
|
334
|
+
const stats = this.cg.getStats();
|
|
335
|
+
const lines = [
|
|
336
|
+
'## CodeGraph Status',
|
|
337
|
+
'',
|
|
338
|
+
`**Files indexed:** ${stats.fileCount}`,
|
|
339
|
+
`**Total nodes:** ${stats.nodeCount}`,
|
|
340
|
+
`**Total edges:** ${stats.edgeCount}`,
|
|
341
|
+
`**Database size:** ${(stats.dbSizeBytes / 1024 / 1024).toFixed(2)} MB`,
|
|
342
|
+
'',
|
|
343
|
+
'### Nodes by Kind:',
|
|
344
|
+
];
|
|
345
|
+
for (const [kind, count] of Object.entries(stats.nodesByKind)) {
|
|
346
|
+
if (count > 0) {
|
|
347
|
+
lines.push(`- ${kind}: ${count}`);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
lines.push('', '### Languages:');
|
|
351
|
+
for (const [lang, count] of Object.entries(stats.filesByLanguage)) {
|
|
352
|
+
if (count > 0) {
|
|
353
|
+
lines.push(`- ${lang}: ${count}`);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
return this.textResult(lines.join('\n'));
|
|
357
|
+
}
|
|
358
|
+
// =========================================================================
|
|
359
|
+
// Formatting helpers (compact by default to reduce context usage)
|
|
360
|
+
// =========================================================================
|
|
361
|
+
formatSearchResults(results) {
|
|
362
|
+
const lines = [`## Search Results (${results.length} found)`, ''];
|
|
363
|
+
for (const result of results) {
|
|
364
|
+
const { node } = result;
|
|
365
|
+
const location = node.startLine ? `:${node.startLine}` : '';
|
|
366
|
+
// Compact format: one line per result with key info
|
|
367
|
+
lines.push(`### ${node.name} (${node.kind})`);
|
|
368
|
+
lines.push(`${node.filePath}${location}`);
|
|
369
|
+
if (node.signature)
|
|
370
|
+
lines.push(`\`${node.signature}\``);
|
|
371
|
+
lines.push('');
|
|
372
|
+
}
|
|
373
|
+
return lines.join('\n');
|
|
374
|
+
}
|
|
375
|
+
formatNodeList(nodes, title) {
|
|
376
|
+
const lines = [`## ${title} (${nodes.length} found)`, ''];
|
|
377
|
+
for (const node of nodes) {
|
|
378
|
+
const location = node.startLine ? `:${node.startLine}` : '';
|
|
379
|
+
// Compact: just name, kind, location
|
|
380
|
+
lines.push(`- ${node.name} (${node.kind}) - ${node.filePath}${location}`);
|
|
381
|
+
}
|
|
382
|
+
return lines.join('\n');
|
|
383
|
+
}
|
|
384
|
+
formatImpact(symbol, impact) {
|
|
385
|
+
const nodeCount = impact.nodes.size;
|
|
386
|
+
// Compact format: just list affected symbols grouped by file
|
|
387
|
+
const lines = [
|
|
388
|
+
`## Impact: "${symbol}" affects ${nodeCount} symbols`,
|
|
389
|
+
'',
|
|
390
|
+
];
|
|
391
|
+
// Group by file
|
|
392
|
+
const byFile = new Map();
|
|
393
|
+
for (const node of impact.nodes.values()) {
|
|
394
|
+
const existing = byFile.get(node.filePath) || [];
|
|
395
|
+
existing.push(node);
|
|
396
|
+
byFile.set(node.filePath, existing);
|
|
397
|
+
}
|
|
398
|
+
for (const [file, nodes] of byFile) {
|
|
399
|
+
lines.push(`**${file}:**`);
|
|
400
|
+
// Compact: inline list
|
|
401
|
+
const nodeList = nodes.map(n => `${n.name}:${n.startLine}`).join(', ');
|
|
402
|
+
lines.push(nodeList);
|
|
403
|
+
lines.push('');
|
|
404
|
+
}
|
|
405
|
+
return lines.join('\n');
|
|
406
|
+
}
|
|
407
|
+
formatNodeDetails(node, code) {
|
|
408
|
+
const location = node.startLine ? `:${node.startLine}` : '';
|
|
409
|
+
const lines = [
|
|
410
|
+
`## ${node.name} (${node.kind})`,
|
|
411
|
+
'',
|
|
412
|
+
`**Location:** ${node.filePath}${location}`,
|
|
413
|
+
];
|
|
414
|
+
if (node.signature) {
|
|
415
|
+
lines.push(`**Signature:** \`${node.signature}\``);
|
|
416
|
+
}
|
|
417
|
+
// Only include docstring if it's short and useful
|
|
418
|
+
if (node.docstring && node.docstring.length < 200) {
|
|
419
|
+
lines.push('', node.docstring);
|
|
420
|
+
}
|
|
421
|
+
if (code) {
|
|
422
|
+
lines.push('', '```' + node.language, code, '```');
|
|
423
|
+
}
|
|
424
|
+
return lines.join('\n');
|
|
425
|
+
}
|
|
426
|
+
formatTaskContext(context) {
|
|
427
|
+
return context.summary || 'No context found';
|
|
428
|
+
}
|
|
429
|
+
textResult(text) {
|
|
430
|
+
return {
|
|
431
|
+
content: [{ type: 'text', text }],
|
|
432
|
+
};
|
|
433
|
+
}
|
|
434
|
+
errorResult(message) {
|
|
435
|
+
return {
|
|
436
|
+
content: [{ type: 'text', text: `Error: ${message}` }],
|
|
437
|
+
isError: true,
|
|
438
|
+
};
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
exports.ToolHandler = ToolHandler;
|
|
442
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Stdio Transport
|
|
3
|
+
*
|
|
4
|
+
* Handles JSON-RPC 2.0 communication over stdin/stdout for MCP protocol.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* JSON-RPC 2.0 Request
|
|
8
|
+
*/
|
|
9
|
+
export interface JsonRpcRequest {
|
|
10
|
+
jsonrpc: '2.0';
|
|
11
|
+
id: string | number;
|
|
12
|
+
method: string;
|
|
13
|
+
params?: unknown;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* JSON-RPC 2.0 Response
|
|
17
|
+
*/
|
|
18
|
+
export interface JsonRpcResponse {
|
|
19
|
+
jsonrpc: '2.0';
|
|
20
|
+
id: string | number | null;
|
|
21
|
+
result?: unknown;
|
|
22
|
+
error?: JsonRpcError;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* JSON-RPC 2.0 Error
|
|
26
|
+
*/
|
|
27
|
+
export interface JsonRpcError {
|
|
28
|
+
code: number;
|
|
29
|
+
message: string;
|
|
30
|
+
data?: unknown;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* JSON-RPC 2.0 Notification (no id, no response expected)
|
|
34
|
+
*/
|
|
35
|
+
export interface JsonRpcNotification {
|
|
36
|
+
jsonrpc: '2.0';
|
|
37
|
+
method: string;
|
|
38
|
+
params?: unknown;
|
|
39
|
+
}
|
|
40
|
+
export declare const ErrorCodes: {
|
|
41
|
+
readonly ParseError: -32700;
|
|
42
|
+
readonly InvalidRequest: -32600;
|
|
43
|
+
readonly MethodNotFound: -32601;
|
|
44
|
+
readonly InvalidParams: -32602;
|
|
45
|
+
readonly InternalError: -32603;
|
|
46
|
+
};
|
|
47
|
+
export type MessageHandler = (message: JsonRpcRequest | JsonRpcNotification) => Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Stdio Transport for MCP
|
|
50
|
+
*
|
|
51
|
+
* Reads JSON-RPC messages from stdin and writes responses to stdout.
|
|
52
|
+
*/
|
|
53
|
+
export declare class StdioTransport {
|
|
54
|
+
private rl;
|
|
55
|
+
private messageHandler;
|
|
56
|
+
/**
|
|
57
|
+
* Start listening for messages on stdin
|
|
58
|
+
*/
|
|
59
|
+
start(handler: MessageHandler): void;
|
|
60
|
+
/**
|
|
61
|
+
* Stop listening
|
|
62
|
+
*/
|
|
63
|
+
stop(): void;
|
|
64
|
+
/**
|
|
65
|
+
* Send a response
|
|
66
|
+
*/
|
|
67
|
+
send(response: JsonRpcResponse): void;
|
|
68
|
+
/**
|
|
69
|
+
* Send a notification (no id)
|
|
70
|
+
*/
|
|
71
|
+
notify(method: string, params?: unknown): void;
|
|
72
|
+
/**
|
|
73
|
+
* Send a success response
|
|
74
|
+
*/
|
|
75
|
+
sendResult(id: string | number, result: unknown): void;
|
|
76
|
+
/**
|
|
77
|
+
* Send an error response
|
|
78
|
+
*/
|
|
79
|
+
sendError(id: string | number | null, code: number, message: string, data?: unknown): void;
|
|
80
|
+
/**
|
|
81
|
+
* Handle an incoming line of JSON
|
|
82
|
+
*/
|
|
83
|
+
private handleLine;
|
|
84
|
+
/**
|
|
85
|
+
* Check if message is a valid JSON-RPC 2.0 message
|
|
86
|
+
*/
|
|
87
|
+
private isValidMessage;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/mcp/transport.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAGD,eAAO,MAAM,UAAU;;;;;;CAMb,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE9F;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAmC;IAC7C,OAAO,CAAC,cAAc,CAA+B;IAErD;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAkBpC;;OAEG;IACH,IAAI,IAAI,IAAI;IAOZ;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAKrC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAS9C;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAQtD;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ1F;;OAEG;YACW,UAAU;IAkCxB;;OAEG;IACH,OAAO,CAAC,cAAc;CAOvB"}
|