mcmodding-mcp 0.1.0 → 0.2.1
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 -21
- package/README.md +334 -324
- package/dist/cli/install.d.ts +2 -0
- package/dist/cli/install.d.ts.map +1 -0
- package/dist/cli/install.js +397 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/db-versioning.js +2 -2
- package/dist/db-versioning.js.map +1 -1
- package/dist/index.js +146 -106
- package/dist/index.js.map +1 -1
- package/dist/services/mod-examples-service.d.ts +106 -0
- package/dist/services/mod-examples-service.d.ts.map +1 -0
- package/dist/services/mod-examples-service.js +370 -0
- package/dist/services/mod-examples-service.js.map +1 -0
- package/dist/tools/modExamples.d.ts +144 -0
- package/dist/tools/modExamples.d.ts.map +1 -0
- package/dist/tools/modExamples.js +402 -0
- package/dist/tools/modExamples.js.map +1 -0
- package/package.json +5 -4
- package/scripts/postinstall.js +7 -3
package/dist/index.js
CHANGED
|
@@ -7,128 +7,139 @@ import { handleGetMinecraftVersion } from './tools/getMinecraftVersion.js';
|
|
|
7
7
|
import { handleSearchDocs } from './tools/searchDocs.js';
|
|
8
8
|
import { handleExplainConcept } from './tools/explainConcept.js';
|
|
9
9
|
import { DbVersioning } from './db-versioning.js';
|
|
10
|
+
import { ModExamplesService } from './services/mod-examples-service.js';
|
|
11
|
+
import { MOD_EXAMPLES_TOOLS, handleSearchModExamples, handleGetModExample, handleListCanonicalMods, handleListModCategories, handleGetModPatterns, } from './tools/modExamples.js';
|
|
12
|
+
if (process.argv.includes('install')) {
|
|
13
|
+
const { runInstaller } = await import('./cli/install.js');
|
|
14
|
+
await runInstaller();
|
|
15
|
+
process.exit(0);
|
|
16
|
+
}
|
|
10
17
|
const server = new Server({
|
|
11
18
|
name: 'mcmodding-mcp',
|
|
12
|
-
version: '0.1.
|
|
19
|
+
version: '0.1.1',
|
|
13
20
|
}, {
|
|
14
21
|
capabilities: {
|
|
15
22
|
tools: {},
|
|
16
23
|
resources: {},
|
|
17
24
|
},
|
|
18
25
|
});
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
description: 'Documentation category to search within (default: all)',
|
|
45
|
-
default: 'all',
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
required: ['query'],
|
|
26
|
+
const BASE_TOOLS = [
|
|
27
|
+
{
|
|
28
|
+
name: 'search_fabric_docs',
|
|
29
|
+
description: 'Search Fabric modding documentation for guides and API information. Use this when you need to find documentation about Fabric modding features, APIs, or tutorials.',
|
|
30
|
+
inputSchema: {
|
|
31
|
+
type: 'object',
|
|
32
|
+
properties: {
|
|
33
|
+
query: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
description: "Search query (e.g., 'how to register items', 'mixin tutorial', 'networking'). Be specific for best results. Especially useful for finding guides and API references.",
|
|
36
|
+
},
|
|
37
|
+
category: {
|
|
38
|
+
type: 'string',
|
|
39
|
+
enum: [
|
|
40
|
+
'getting-started',
|
|
41
|
+
'items',
|
|
42
|
+
'blocks',
|
|
43
|
+
'entities',
|
|
44
|
+
'rendering',
|
|
45
|
+
'networking',
|
|
46
|
+
'data-generation',
|
|
47
|
+
'all',
|
|
48
|
+
],
|
|
49
|
+
description: 'Documentation category to search within (default: all)',
|
|
50
|
+
default: 'all',
|
|
49
51
|
},
|
|
50
52
|
},
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
53
|
+
required: ['query'],
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'get_example',
|
|
58
|
+
description: 'Get code examples for Minecraft modding topics. Returns complete, working code snippets with full context including explanations, source documentation, and metadata. Use this when you need concrete code examples for implementing features.',
|
|
59
|
+
inputSchema: {
|
|
60
|
+
type: 'object',
|
|
61
|
+
properties: {
|
|
62
|
+
topic: {
|
|
63
|
+
type: 'string',
|
|
64
|
+
description: "Topic or pattern to get examples for (e.g., 'register item', 'block entity', 'mixin', 'networking', 'custom armor'). Can be free-form text.",
|
|
65
|
+
},
|
|
66
|
+
language: {
|
|
67
|
+
type: 'string',
|
|
68
|
+
description: "Programming language (e.g., 'java', 'json', 'groovy')",
|
|
69
|
+
default: 'java',
|
|
70
|
+
},
|
|
71
|
+
loader: {
|
|
72
|
+
type: 'string',
|
|
73
|
+
enum: ['fabric', 'neoforge', 'shared'],
|
|
74
|
+
description: 'Mod loader to filter by',
|
|
75
|
+
},
|
|
76
|
+
minecraft_version: {
|
|
77
|
+
type: 'string',
|
|
78
|
+
description: "Target Minecraft version (e.g., '1.21.4', '1.21.10'). Latest: use 'latest'",
|
|
79
|
+
},
|
|
80
|
+
category: {
|
|
81
|
+
type: 'string',
|
|
82
|
+
enum: [
|
|
83
|
+
'getting-started',
|
|
84
|
+
'items',
|
|
85
|
+
'blocks',
|
|
86
|
+
'entities',
|
|
87
|
+
'rendering',
|
|
88
|
+
'networking',
|
|
89
|
+
'data-generation',
|
|
90
|
+
'commands',
|
|
91
|
+
'sounds',
|
|
92
|
+
],
|
|
93
|
+
description: 'Documentation category to filter by',
|
|
94
|
+
},
|
|
95
|
+
limit: {
|
|
96
|
+
type: 'number',
|
|
97
|
+
description: 'Maximum number of examples to return (1-10)',
|
|
98
|
+
default: 5,
|
|
99
|
+
minimum: 1,
|
|
100
|
+
maximum: 10,
|
|
99
101
|
},
|
|
100
102
|
},
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
103
|
+
required: ['topic'],
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: 'explain_fabric_concept',
|
|
108
|
+
description: 'Get detailed explanation of a Fabric or Minecraft modding concept. Use this to understand fundamental concepts, terminology, or architectural patterns.',
|
|
109
|
+
inputSchema: {
|
|
110
|
+
type: 'object',
|
|
111
|
+
properties: {
|
|
112
|
+
concept: {
|
|
113
|
+
type: 'string',
|
|
114
|
+
description: "Concept to explain (e.g., 'mixins', 'registries', 'sided logic', 'fabric.mod.json', 'events')",
|
|
113
115
|
},
|
|
114
116
|
},
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
117
|
+
required: ['concept'],
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
name: 'get_minecraft_version',
|
|
122
|
+
description: 'Get Minecraft version information from the indexed documentation. Returns either the latest version or all available versions.',
|
|
123
|
+
inputSchema: {
|
|
124
|
+
type: 'object',
|
|
125
|
+
properties: {
|
|
126
|
+
type: {
|
|
127
|
+
type: 'string',
|
|
128
|
+
enum: ['latest', 'all'],
|
|
129
|
+
description: "Type of version info: 'latest' for newest version, 'all' for complete list",
|
|
130
|
+
default: 'latest',
|
|
128
131
|
},
|
|
129
132
|
},
|
|
130
|
-
|
|
131
|
-
}
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
];
|
|
136
|
+
server.setRequestHandler(ListToolsRequestSchema, () => {
|
|
137
|
+
const tools = [...BASE_TOOLS];
|
|
138
|
+
if (ModExamplesService.isAvailable()) {
|
|
139
|
+
tools.push(...MOD_EXAMPLES_TOOLS);
|
|
140
|
+
console.error('[MCP] Mod examples database available - additional tools registered');
|
|
141
|
+
}
|
|
142
|
+
return { tools };
|
|
132
143
|
});
|
|
133
144
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
134
145
|
const { name, arguments: args } = request.params;
|
|
@@ -163,6 +174,35 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
163
174
|
type: args?.type || 'latest',
|
|
164
175
|
});
|
|
165
176
|
}
|
|
177
|
+
case 'search_mod_examples': {
|
|
178
|
+
return handleSearchModExamples({
|
|
179
|
+
query: args?.query,
|
|
180
|
+
mod: args?.mod,
|
|
181
|
+
category: args?.category,
|
|
182
|
+
pattern_type: args?.pattern_type,
|
|
183
|
+
complexity: args?.complexity,
|
|
184
|
+
min_quality: args?.min_quality,
|
|
185
|
+
featured_only: args?.featured_only,
|
|
186
|
+
limit: args?.limit,
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
case 'get_mod_example': {
|
|
190
|
+
return handleGetModExample({
|
|
191
|
+
id: args?.id || 0,
|
|
192
|
+
include_related: args?.include_related,
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
case 'list_canonical_mods': {
|
|
196
|
+
return handleListCanonicalMods({
|
|
197
|
+
include_stats: args?.include_stats,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
case 'list_mod_categories': {
|
|
201
|
+
return handleListModCategories();
|
|
202
|
+
}
|
|
203
|
+
case 'get_mod_patterns': {
|
|
204
|
+
return handleGetModPatterns();
|
|
205
|
+
}
|
|
166
206
|
default:
|
|
167
207
|
throw new Error(`Unknown tool: ${name}`);
|
|
168
208
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
export interface ModInfo {
|
|
2
|
+
id: number;
|
|
3
|
+
name: string;
|
|
4
|
+
repo: string;
|
|
5
|
+
loader: string;
|
|
6
|
+
description: string;
|
|
7
|
+
readmeSummary: string;
|
|
8
|
+
architectureNotes: string;
|
|
9
|
+
starCount: number;
|
|
10
|
+
minecraftVersions: string[];
|
|
11
|
+
exampleCount: number;
|
|
12
|
+
}
|
|
13
|
+
export interface ModExample {
|
|
14
|
+
id: number;
|
|
15
|
+
modName: string;
|
|
16
|
+
modRepo: string;
|
|
17
|
+
filePath: string;
|
|
18
|
+
fileUrl: string;
|
|
19
|
+
startLine: number;
|
|
20
|
+
endLine: number;
|
|
21
|
+
title: string;
|
|
22
|
+
code: string;
|
|
23
|
+
language: string;
|
|
24
|
+
caption: string;
|
|
25
|
+
explanation: string;
|
|
26
|
+
patternType: string;
|
|
27
|
+
complexity: 'beginner' | 'intermediate' | 'advanced' | 'expert';
|
|
28
|
+
category: string;
|
|
29
|
+
categoryName: string;
|
|
30
|
+
bestPractices: string[];
|
|
31
|
+
potentialPitfalls: string[];
|
|
32
|
+
useCases: string[];
|
|
33
|
+
keywords: string[];
|
|
34
|
+
minecraftConcepts: string[];
|
|
35
|
+
qualityScore: number;
|
|
36
|
+
isFeatured: boolean;
|
|
37
|
+
tags: string[];
|
|
38
|
+
imports: Array<{
|
|
39
|
+
path: string;
|
|
40
|
+
type: string;
|
|
41
|
+
isCritical: boolean;
|
|
42
|
+
}>;
|
|
43
|
+
apiReferences: Array<{
|
|
44
|
+
className: string;
|
|
45
|
+
methodName?: string;
|
|
46
|
+
apiType: string;
|
|
47
|
+
}>;
|
|
48
|
+
}
|
|
49
|
+
export interface ExampleRelation {
|
|
50
|
+
sourceId: number;
|
|
51
|
+
targetId: number;
|
|
52
|
+
relationType: 'uses' | 'extends' | 'similar_to' | 'alternative_to' | 'requires' | 'complements';
|
|
53
|
+
description: string;
|
|
54
|
+
strength: number;
|
|
55
|
+
targetTitle: string;
|
|
56
|
+
targetCaption: string;
|
|
57
|
+
}
|
|
58
|
+
export interface ModExampleSearchOptions {
|
|
59
|
+
query?: string;
|
|
60
|
+
modName?: string;
|
|
61
|
+
category?: string;
|
|
62
|
+
patternType?: string;
|
|
63
|
+
complexity?: string;
|
|
64
|
+
minQualityScore?: number;
|
|
65
|
+
featured?: boolean;
|
|
66
|
+
tags?: string[];
|
|
67
|
+
limit?: number;
|
|
68
|
+
}
|
|
69
|
+
export interface CategoryInfo {
|
|
70
|
+
slug: string;
|
|
71
|
+
name: string;
|
|
72
|
+
description: string;
|
|
73
|
+
icon: string;
|
|
74
|
+
exampleCount: number;
|
|
75
|
+
}
|
|
76
|
+
export declare class ModExamplesService {
|
|
77
|
+
private db;
|
|
78
|
+
private static dbPath;
|
|
79
|
+
constructor(dbPath?: string);
|
|
80
|
+
static isAvailable(): boolean;
|
|
81
|
+
getStats(): {
|
|
82
|
+
mods: number;
|
|
83
|
+
examples: number;
|
|
84
|
+
relations: number;
|
|
85
|
+
categories: number;
|
|
86
|
+
featuredExamples: number;
|
|
87
|
+
avgQualityScore: number;
|
|
88
|
+
};
|
|
89
|
+
listMods(): ModInfo[];
|
|
90
|
+
getMod(name: string): ModInfo | null;
|
|
91
|
+
listCategories(): CategoryInfo[];
|
|
92
|
+
searchExamples(options: ModExampleSearchOptions): ModExample[];
|
|
93
|
+
getExample(id: number): ModExample | null;
|
|
94
|
+
getRelatedExamples(exampleId: number): ExampleRelation[];
|
|
95
|
+
getFeaturedExamples(limit?: number): ModExample[];
|
|
96
|
+
getExamplesByPattern(patternType: string, limit?: number): ModExample[];
|
|
97
|
+
getPatternTypes(): Array<{
|
|
98
|
+
type: string;
|
|
99
|
+
count: number;
|
|
100
|
+
}>;
|
|
101
|
+
private enrichExample;
|
|
102
|
+
formatExampleForAI(example: ModExample): string;
|
|
103
|
+
formatExamplesForAI(examples: ModExample[]): string;
|
|
104
|
+
close(): void;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=mod-examples-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod-examples-service.d.ts","sourceRoot":"","sources":["../../src/services/mod-examples-service.ts"],"names":[],"mappings":"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"}
|