axiom-mcp 2.19.6

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.
Files changed (56) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +409 -0
  3. package/dist/bundle.json +609177 -0
  4. package/dist/catalog/index.d.ts +26 -0
  5. package/dist/catalog/index.d.ts.map +1 -0
  6. package/dist/catalog/index.js +173 -0
  7. package/dist/catalog/index.js.map +1 -0
  8. package/dist/config.d.ts +31 -0
  9. package/dist/config.d.ts.map +1 -0
  10. package/dist/config.js +60 -0
  11. package/dist/config.js.map +1 -0
  12. package/dist/index.d.ts +3 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +130 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/loader/dev-loader.d.ts +55 -0
  17. package/dist/loader/dev-loader.d.ts.map +1 -0
  18. package/dist/loader/dev-loader.js +223 -0
  19. package/dist/loader/dev-loader.js.map +1 -0
  20. package/dist/loader/parser.d.ts +117 -0
  21. package/dist/loader/parser.d.ts.map +1 -0
  22. package/dist/loader/parser.js +204 -0
  23. package/dist/loader/parser.js.map +1 -0
  24. package/dist/loader/prod-loader.d.ts +42 -0
  25. package/dist/loader/prod-loader.d.ts.map +1 -0
  26. package/dist/loader/prod-loader.js +144 -0
  27. package/dist/loader/prod-loader.js.map +1 -0
  28. package/dist/loader/types.d.ts +55 -0
  29. package/dist/loader/types.d.ts.map +1 -0
  30. package/dist/loader/types.js +2 -0
  31. package/dist/loader/types.js.map +1 -0
  32. package/dist/loader/xcode-docs.d.ts +18 -0
  33. package/dist/loader/xcode-docs.d.ts.map +1 -0
  34. package/dist/loader/xcode-docs.js +91 -0
  35. package/dist/loader/xcode-docs.js.map +1 -0
  36. package/dist/prompts/handler.d.ts +57 -0
  37. package/dist/prompts/handler.d.ts.map +1 -0
  38. package/dist/prompts/handler.js +95 -0
  39. package/dist/prompts/handler.js.map +1 -0
  40. package/dist/resources/handler.d.ts +51 -0
  41. package/dist/resources/handler.d.ts.map +1 -0
  42. package/dist/resources/handler.js +99 -0
  43. package/dist/resources/handler.js.map +1 -0
  44. package/dist/scripts/bundle.d.ts +13 -0
  45. package/dist/scripts/bundle.d.ts.map +1 -0
  46. package/dist/scripts/bundle.js +137 -0
  47. package/dist/scripts/bundle.js.map +1 -0
  48. package/dist/search/index.d.ts +65 -0
  49. package/dist/search/index.d.ts.map +1 -0
  50. package/dist/search/index.js +227 -0
  51. package/dist/search/index.js.map +1 -0
  52. package/dist/tools/handler.d.ts +40 -0
  53. package/dist/tools/handler.d.ts.map +1 -0
  54. package/dist/tools/handler.js +265 -0
  55. package/dist/tools/handler.js.map +1 -0
  56. package/package.json +53 -0
@@ -0,0 +1,26 @@
1
+ import { Skill, Agent } from '../loader/parser.js';
2
+ interface CatalogCategory {
3
+ label: string;
4
+ skills: {
5
+ name: string;
6
+ description: string;
7
+ skillType: string;
8
+ source: string;
9
+ }[];
10
+ }
11
+ export interface CatalogResult {
12
+ categories: Record<string, CatalogCategory>;
13
+ agents: {
14
+ name: string;
15
+ description: string;
16
+ }[];
17
+ totalSkills: number;
18
+ totalAgents: number;
19
+ }
20
+ /**
21
+ * Build a structured catalog from skills and agents.
22
+ * Router skills are excluded from the catalog output.
23
+ */
24
+ export declare function buildCatalog(skills: Map<string, Skill>, agents: Map<string, Agent>, filterCategory?: string): CatalogResult;
25
+ export {};
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/catalog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAuBnD,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACpF;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC5C,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAsGD;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,aAAa,CA6Cf"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Categories derived from the 13 router skills.
3
+ * Each maps a router name to a human-readable category label.
4
+ */
5
+ const ROUTER_CATEGORIES = {
6
+ 'axiom-ios-build': 'Build & Environment',
7
+ 'axiom-ios-ui': 'UI & Design',
8
+ 'axiom-ios-data': 'Data & Persistence',
9
+ 'axiom-ios-concurrency': 'Concurrency & Async',
10
+ 'axiom-ios-performance': 'Performance',
11
+ 'axiom-ios-networking': 'Networking',
12
+ 'axiom-ios-integration': 'System Integration',
13
+ 'axiom-ios-accessibility': 'Accessibility',
14
+ 'axiom-ios-ai': 'Apple Intelligence',
15
+ 'axiom-ios-ml': 'Machine Learning',
16
+ 'axiom-ios-vision': 'Computer Vision',
17
+ 'axiom-ios-graphics': 'Graphics & Metal',
18
+ 'axiom-ios-games': 'Games',
19
+ 'axiom-ios-testing': 'Testing',
20
+ };
21
+ /**
22
+ * Extract skill names referenced in a router skill's content.
23
+ * Looks for patterns like `/skill axiom-xxx` or `→ skill-name`
24
+ */
25
+ function extractRouterReferences(content) {
26
+ const refs = [];
27
+ // Match /skill axiom-xxx patterns
28
+ const skillPattern = /\/skill\s+(axiom-[\w-]+)/g;
29
+ let match;
30
+ while ((match = skillPattern.exec(content)) !== null) {
31
+ refs.push(match[1]);
32
+ }
33
+ return refs;
34
+ }
35
+ /**
36
+ * Build a category map from router skills.
37
+ * For each router, extract referenced skills and assign them to that category.
38
+ */
39
+ function buildRouterCategoryMap(skills) {
40
+ const skillToCategory = new Map();
41
+ for (const [routerName, categoryLabel] of Object.entries(ROUTER_CATEGORIES)) {
42
+ const router = skills.get(routerName);
43
+ if (!router)
44
+ continue;
45
+ const refs = extractRouterReferences(router.content);
46
+ for (const ref of refs) {
47
+ if (skills.has(ref)) {
48
+ skillToCategory.set(ref, categoryLabel);
49
+ }
50
+ }
51
+ }
52
+ return skillToCategory;
53
+ }
54
+ /**
55
+ * Map Apple doc filename patterns to existing categories.
56
+ */
57
+ const APPLE_DOC_CATEGORIES = {
58
+ 'swiftui': 'UI & Design',
59
+ 'uikit': 'UI & Design',
60
+ 'appkit': 'UI & Design',
61
+ 'widgetkit': 'System Integration',
62
+ 'swift-concurrency': 'Concurrency & Async',
63
+ 'swift-inlinearray': 'Performance',
64
+ 'swiftdata': 'Data & Persistence',
65
+ 'storekit': 'System Integration',
66
+ 'foundationmodels': 'Apple Intelligence',
67
+ 'appintents': 'System Integration',
68
+ 'mapkit': 'System Integration',
69
+ 'swift-charts': 'UI & Design',
70
+ 'implementing-visual': 'Computer Vision',
71
+ 'implementing-assistive': 'Accessibility',
72
+ 'widgets-for-visionos': 'System Integration',
73
+ 'foundation-attributedstring': 'UI & Design',
74
+ 'alarmkit': 'System Integration',
75
+ 'webkit': 'UI & Design',
76
+ 'toolbar': 'UI & Design',
77
+ 'styled-text': 'UI & Design',
78
+ 'liquid-glass': 'UI & Design',
79
+ };
80
+ /**
81
+ * Infer category from skill name when no router reference exists.
82
+ */
83
+ function inferCategoryFromName(name) {
84
+ // Apple diagnostics go to Build & Environment
85
+ if (name.startsWith('apple-diag-'))
86
+ return 'Build & Environment';
87
+ // Apple guides: match against known patterns
88
+ if (name.startsWith('apple-guide-')) {
89
+ for (const [pattern, category] of Object.entries(APPLE_DOC_CATEGORIES)) {
90
+ if (name.includes(pattern))
91
+ return category;
92
+ }
93
+ return 'General';
94
+ }
95
+ if (name.includes('build') || name.includes('xcode') || name.includes('spm'))
96
+ return 'Build & Environment';
97
+ if (name.includes('swiftui') || name.includes('uikit') || name.includes('layout') || name.includes('liquid-glass') || name.includes('hig') || name.includes('typography') || name.includes('textkit') || name.includes('animation') || name.includes('ui-recording') || name.includes('ui-testing'))
98
+ return 'UI & Design';
99
+ if (name.includes('data') || name.includes('sqlite') || name.includes('grdb') || name.includes('realm') || name.includes('codable') || name.includes('cloud') || name.includes('storage') || name.includes('migration') || name.includes('icloud'))
100
+ return 'Data & Persistence';
101
+ if (name.includes('concurrency') || name.includes('async') || name.includes('synchroniz') || name.includes('isolated'))
102
+ return 'Concurrency & Async';
103
+ if (name.includes('performance') || name.includes('energy') || name.includes('memory') || name.includes('profil') || name.includes('hang') || name.includes('display'))
104
+ return 'Performance';
105
+ if (name.includes('network') || name.includes('url'))
106
+ return 'Networking';
107
+ if (name.includes('accessibility'))
108
+ return 'Accessibility';
109
+ if (name.includes('test') || name.includes('xctest') || name.includes('xctrace') || name.includes('axe'))
110
+ return 'Testing';
111
+ if (name.includes('vision') || name.includes('photo') || name.includes('camera'))
112
+ return 'Computer Vision';
113
+ if (name.includes('foundation-model') || name.includes('intelligence'))
114
+ return 'Apple Intelligence';
115
+ if (name.includes('metal') || name.includes('graphics'))
116
+ return 'Graphics & Metal';
117
+ if (name.includes('spritekit') || name.includes('scenekit') || name.includes('game'))
118
+ return 'Games';
119
+ if (name.includes('debug'))
120
+ return 'Build & Environment';
121
+ if (name.includes('triage') || name.includes('app-store-connect'))
122
+ return 'Build & Environment';
123
+ if (name.includes('intent') || name.includes('shortcut') || name.includes('widget') || name.includes('extension') || name.includes('haptic') || name.includes('storekit') || name.includes('iap') || name.includes('now-playing') || name.includes('localization') || name.includes('spotlight') || name.includes('privacy') || name.includes('deep-link') || name.includes('app-store') || name.includes('background-process'))
124
+ return 'System Integration';
125
+ if (name.includes('docs-research') || name.includes('getting-started'))
126
+ return 'General';
127
+ return 'General';
128
+ }
129
+ /**
130
+ * Build a structured catalog from skills and agents.
131
+ * Router skills are excluded from the catalog output.
132
+ */
133
+ export function buildCatalog(skills, agents, filterCategory) {
134
+ const routerCategoryMap = buildRouterCategoryMap(skills);
135
+ const categories = {};
136
+ let totalSkills = 0;
137
+ for (const [name, skill] of skills) {
138
+ // Exclude routers and meta skills from catalog
139
+ if (skill.skillType === 'router' || skill.skillType === 'meta')
140
+ continue;
141
+ // Priority chain: router reference > name heuristic
142
+ // Explicit mcp.category values from skill frontmatter are freeform labels
143
+ // that don't match normalized catalog categories, so we skip them.
144
+ const category = routerCategoryMap.get(name)
145
+ || inferCategoryFromName(name);
146
+ if (filterCategory && category !== filterCategory)
147
+ continue;
148
+ if (!categories[category]) {
149
+ categories[category] = { label: category, skills: [] };
150
+ }
151
+ categories[category].skills.push({
152
+ name: skill.name,
153
+ description: skill.description,
154
+ skillType: skill.skillType,
155
+ source: skill.source || 'axiom',
156
+ });
157
+ totalSkills++;
158
+ }
159
+ // Sort skills within each category by name
160
+ for (const cat of Object.values(categories)) {
161
+ cat.skills.sort((a, b) => a.name.localeCompare(b.name));
162
+ }
163
+ const agentList = Array.from(agents.values())
164
+ .map(a => ({ name: a.name, description: a.description }))
165
+ .sort((a, b) => a.name.localeCompare(b.name));
166
+ return {
167
+ categories,
168
+ agents: filterCategory ? [] : agentList,
169
+ totalSkills,
170
+ totalAgents: agents.size,
171
+ };
172
+ }
173
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/catalog/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export type ServerMode = 'development' | 'production';
2
+ export interface Config {
3
+ mode: ServerMode;
4
+ devSourcePath?: string;
5
+ xcodePath?: string;
6
+ enableAppleDocs: boolean;
7
+ logLevel: 'debug' | 'info' | 'warn' | 'error';
8
+ }
9
+ /**
10
+ * Load configuration from environment variables
11
+ *
12
+ * Environment variables:
13
+ * - AXIOM_MCP_MODE: 'development' or 'production' (default: 'production')
14
+ * - AXIOM_DEV_PATH: Path to Claude Code plugin for dev mode (default: ~/Projects/Axiom/plugins/axiom)
15
+ * - AXIOM_LOG_LEVEL: Log level (default: 'info')
16
+ */
17
+ export declare function loadConfig(): Config;
18
+ /**
19
+ * Simple logger that respects log level
20
+ */
21
+ export declare class Logger {
22
+ private config;
23
+ private levels;
24
+ private minLevel;
25
+ constructor(config: Config);
26
+ debug(message: string, ...args: any[]): void;
27
+ info(message: string, ...args: any[]): void;
28
+ warn(message: string, ...args: any[]): void;
29
+ error(message: string, ...args: any[]): void;
30
+ }
31
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,YAAY,CAAC;AAEtD,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAC/C;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAoBnC;AAED;;GAEG;AACH,qBAAa,MAAM;IAIL,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,QAAQ,CAAS;gBAEL,MAAM,EAAE,MAAM;IAIlC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAMrC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAMpC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAMpC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;CAKtC"}
package/dist/config.js ADDED
@@ -0,0 +1,60 @@
1
+ import { homedir } from 'os';
2
+ import { join } from 'path';
3
+ /**
4
+ * Load configuration from environment variables
5
+ *
6
+ * Environment variables:
7
+ * - AXIOM_MCP_MODE: 'development' or 'production' (default: 'production')
8
+ * - AXIOM_DEV_PATH: Path to Claude Code plugin for dev mode (default: ~/Projects/Axiom/plugins/axiom)
9
+ * - AXIOM_LOG_LEVEL: Log level (default: 'info')
10
+ */
11
+ export function loadConfig() {
12
+ const mode = (process.env.AXIOM_MCP_MODE || 'production');
13
+ const defaultDevPath = join(homedir(), 'Projects', 'Axiom', 'plugins', 'axiom');
14
+ const devSourcePath = mode === 'development'
15
+ ? (process.env.AXIOM_DEV_PATH || defaultDevPath)
16
+ : undefined;
17
+ const logLevel = (process.env.AXIOM_LOG_LEVEL || 'info');
18
+ const xcodePath = process.env.AXIOM_XCODE_PATH || undefined;
19
+ const enableAppleDocs = process.env.AXIOM_APPLE_DOCS !== 'false';
20
+ return {
21
+ mode,
22
+ devSourcePath,
23
+ xcodePath,
24
+ enableAppleDocs,
25
+ logLevel,
26
+ };
27
+ }
28
+ /**
29
+ * Simple logger that respects log level
30
+ */
31
+ export class Logger {
32
+ config;
33
+ levels = ['debug', 'info', 'warn', 'error'];
34
+ minLevel;
35
+ constructor(config) {
36
+ this.config = config;
37
+ this.minLevel = this.levels.indexOf(config.logLevel);
38
+ }
39
+ debug(message, ...args) {
40
+ if (this.minLevel <= 0) {
41
+ console.error('[DEBUG]', message, ...args);
42
+ }
43
+ }
44
+ info(message, ...args) {
45
+ if (this.minLevel <= 1) {
46
+ console.error('[INFO]', message, ...args);
47
+ }
48
+ }
49
+ warn(message, ...args) {
50
+ if (this.minLevel <= 2) {
51
+ console.error('[WARN]', message, ...args);
52
+ }
53
+ }
54
+ error(message, ...args) {
55
+ if (this.minLevel <= 3) {
56
+ console.error('[ERROR]', message, ...args);
57
+ }
58
+ }
59
+ }
60
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAY5B;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,YAAY,CAAe,CAAC;IAExE,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAChF,MAAM,aAAa,GAAG,IAAI,KAAK,aAAa;QAC1C,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,cAAc,CAAC;QAChD,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,MAAM,CAAuB,CAAC;IAE/E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,SAAS,CAAC;IAC5D,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,OAAO,CAAC;IAEjE,OAAO;QACL,IAAI;QACJ,aAAa;QACb,SAAS;QACT,eAAe;QACf,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,MAAM;IAIG;IAHZ,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAS;IAEzB,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW;QACnC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QAClC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QAClC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW;QACnC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,130 @@
1
+ #!/usr/bin/env node
2
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
3
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
+ import { ListResourcesRequestSchema, ReadResourceRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, ListToolsRequestSchema, CallToolRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
5
+ import { loadConfig, Logger } from './config.js';
6
+ import { DevLoader } from './loader/dev-loader.js';
7
+ import { ProdLoader } from './loader/prod-loader.js';
8
+ import { ResourcesHandler } from './resources/handler.js';
9
+ import { PromptsHandler } from './prompts/handler.js';
10
+ import { DynamicToolsHandler } from './tools/handler.js';
11
+ import { join, dirname } from 'path';
12
+ import { fileURLToPath } from 'url';
13
+ import { readFileSync } from 'fs';
14
+ const __filename = fileURLToPath(import.meta.url);
15
+ const __dirname = dirname(__filename);
16
+ const pkg = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8'));
17
+ /**
18
+ * Main entry point for Axiom MCP Server
19
+ */
20
+ async function main() {
21
+ // Load configuration
22
+ const config = loadConfig();
23
+ const logger = new Logger(config);
24
+ logger.info('Starting Axiom MCP Server');
25
+ logger.info(`Mode: ${config.mode}`);
26
+ logger.info(`Log Level: ${config.logLevel}`);
27
+ if (config.mode === 'development') {
28
+ if (!config.devSourcePath) {
29
+ logger.error('Development mode requires AXIOM_DEV_PATH environment variable');
30
+ process.exit(1);
31
+ }
32
+ logger.info(`Plugin Path: ${config.devSourcePath}`);
33
+ }
34
+ // Initialize loader
35
+ const loader = config.mode === 'development'
36
+ ? new DevLoader(config.devSourcePath, logger, config)
37
+ : await loadProductionBundle(config, logger);
38
+ // Initialize handlers
39
+ const resourcesHandler = new ResourcesHandler(loader, logger);
40
+ const promptsHandler = new PromptsHandler(loader, logger);
41
+ const toolsHandler = new DynamicToolsHandler(loader, logger);
42
+ // Create MCP server
43
+ const server = new Server({
44
+ name: 'axiom-mcp',
45
+ version: pkg.version,
46
+ }, {
47
+ capabilities: {
48
+ resources: {},
49
+ prompts: {},
50
+ tools: {},
51
+ },
52
+ });
53
+ // Register resources handlers
54
+ server.setRequestHandler(ListResourcesRequestSchema, async () => {
55
+ try {
56
+ return await resourcesHandler.listResources();
57
+ }
58
+ catch (error) {
59
+ logger.error('Error listing resources:', error);
60
+ throw error;
61
+ }
62
+ });
63
+ server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
64
+ try {
65
+ return await resourcesHandler.readResource(request.params.uri);
66
+ }
67
+ catch (error) {
68
+ logger.error('Error reading resource:', error);
69
+ throw error;
70
+ }
71
+ });
72
+ // Register prompts handlers
73
+ server.setRequestHandler(ListPromptsRequestSchema, async () => {
74
+ try {
75
+ return await promptsHandler.listPrompts();
76
+ }
77
+ catch (error) {
78
+ logger.error('Error listing prompts:', error);
79
+ throw error;
80
+ }
81
+ });
82
+ server.setRequestHandler(GetPromptRequestSchema, async (request) => {
83
+ try {
84
+ return await promptsHandler.getPrompt(request.params.name, request.params.arguments);
85
+ }
86
+ catch (error) {
87
+ logger.error('Error getting prompt:', error);
88
+ throw error;
89
+ }
90
+ });
91
+ // Register tools handlers
92
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
93
+ try {
94
+ return await toolsHandler.listTools();
95
+ }
96
+ catch (error) {
97
+ logger.error('Error listing tools:', error);
98
+ throw error;
99
+ }
100
+ });
101
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
102
+ try {
103
+ return await toolsHandler.callTool(request.params.name, request.params.arguments || {});
104
+ }
105
+ catch (error) {
106
+ logger.error('Error calling tool:', error);
107
+ throw error;
108
+ }
109
+ });
110
+ // Connect to stdio transport
111
+ const transport = new StdioServerTransport();
112
+ await server.connect(transport);
113
+ logger.info('Axiom MCP Server started successfully');
114
+ logger.info('Waiting for requests on stdin/stdout');
115
+ }
116
+ /**
117
+ * Load production bundle
118
+ * Returns a loader compatible with Loader interface
119
+ */
120
+ async function loadProductionBundle(config, logger) {
121
+ const bundlePath = join(__dirname, 'bundle.json');
122
+ logger.info(`Production mode: loading from ${bundlePath}`);
123
+ return new ProdLoader(bundlePath, logger, config);
124
+ }
125
+ // Start the server
126
+ main().catch((error) => {
127
+ console.error('Fatal error:', error);
128
+ process.exit(1);
129
+ });
130
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { Skill, Command, Agent, SkillSection } from './parser.js';
2
+ import { Config, Logger } from '../config.js';
3
+ import { Loader } from './types.js';
4
+ import { SearchResult } from '../search/index.js';
5
+ import { CatalogResult } from '../catalog/index.js';
6
+ /**
7
+ * Development mode loader - reads live files from Claude Code plugin directory
8
+ */
9
+ export declare class DevLoader implements Loader {
10
+ private pluginPath;
11
+ private logger;
12
+ private config?;
13
+ private skillsCache;
14
+ private commandsCache;
15
+ private agentsCache;
16
+ private searchIndex;
17
+ constructor(pluginPath: string, logger: Logger, config?: Config | undefined);
18
+ /**
19
+ * Load MCP annotations from skill-annotations.json (co-located with mcp-server/)
20
+ */
21
+ private loadAnnotations;
22
+ /**
23
+ * Load all skills from the plugin directory
24
+ * Skills live in subdirectories: skills/<name>/SKILL.md
25
+ */
26
+ loadSkills(): Promise<Map<string, Skill>>;
27
+ private loadAppleDocsIntoCache;
28
+ /**
29
+ * Load all commands from the plugin directory
30
+ */
31
+ loadCommands(): Promise<Map<string, Command>>;
32
+ /**
33
+ * Load all agents from the plugin directory
34
+ */
35
+ loadAgents(): Promise<Map<string, Agent>>;
36
+ getSkill(name: string): Promise<Skill | undefined>;
37
+ getCommand(name: string): Promise<Command | undefined>;
38
+ getAgent(name: string): Promise<Agent | undefined>;
39
+ getSkillSections(name: string, sectionNames?: string[]): Promise<{
40
+ skill: Skill;
41
+ content: string;
42
+ sections: SkillSection[];
43
+ } | undefined>;
44
+ searchSkills(query: string, options?: {
45
+ limit?: number;
46
+ skillType?: string;
47
+ category?: string;
48
+ source?: string;
49
+ }): Promise<SearchResult[]>;
50
+ getCatalog(category?: string): Promise<CatalogResult>;
51
+ getSkills(): Map<string, Skill>;
52
+ getCommands(): Map<string, Command>;
53
+ getAgents(): Map<string, Agent>;
54
+ }
55
+ //# sourceMappingURL=dev-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-loader.d.ts","sourceRoot":"","sources":["../../src/loader/dev-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0D,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAoB,MAAM,aAAa,CAAC;AAC5I,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAmC,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAgB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGlE;;GAEG;AACH,qBAAa,SAAU,YAAW,MAAM;IAOpC,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM,CAAC;IARjB,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,WAAW,CAA4B;gBAGrC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,YAAA;IAGzB;;OAEG;YACW,eAAe;IAqB7B;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YA4CjC,sBAAsB;IAcpC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA6BnD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IA0BzC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IAOlD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAOtD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IAOlD,gBAAgB,CACpB,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;IA6B7E,YAAY,CAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GACnF,OAAO,CAAC,YAAY,EAAE,CAAC;IAcpB,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAW3D,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;IAI/B,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAInC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;CAGhC"}