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.
- package/LICENSE +21 -0
- package/README.md +409 -0
- package/dist/bundle.json +609177 -0
- package/dist/catalog/index.d.ts +26 -0
- package/dist/catalog/index.d.ts.map +1 -0
- package/dist/catalog/index.js +173 -0
- package/dist/catalog/index.js.map +1 -0
- package/dist/config.d.ts +31 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +60 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +130 -0
- package/dist/index.js.map +1 -0
- package/dist/loader/dev-loader.d.ts +55 -0
- package/dist/loader/dev-loader.d.ts.map +1 -0
- package/dist/loader/dev-loader.js +223 -0
- package/dist/loader/dev-loader.js.map +1 -0
- package/dist/loader/parser.d.ts +117 -0
- package/dist/loader/parser.d.ts.map +1 -0
- package/dist/loader/parser.js +204 -0
- package/dist/loader/parser.js.map +1 -0
- package/dist/loader/prod-loader.d.ts +42 -0
- package/dist/loader/prod-loader.d.ts.map +1 -0
- package/dist/loader/prod-loader.js +144 -0
- package/dist/loader/prod-loader.js.map +1 -0
- package/dist/loader/types.d.ts +55 -0
- package/dist/loader/types.d.ts.map +1 -0
- package/dist/loader/types.js +2 -0
- package/dist/loader/types.js.map +1 -0
- package/dist/loader/xcode-docs.d.ts +18 -0
- package/dist/loader/xcode-docs.d.ts.map +1 -0
- package/dist/loader/xcode-docs.js +91 -0
- package/dist/loader/xcode-docs.js.map +1 -0
- package/dist/prompts/handler.d.ts +57 -0
- package/dist/prompts/handler.d.ts.map +1 -0
- package/dist/prompts/handler.js +95 -0
- package/dist/prompts/handler.js.map +1 -0
- package/dist/resources/handler.d.ts +51 -0
- package/dist/resources/handler.d.ts.map +1 -0
- package/dist/resources/handler.js +99 -0
- package/dist/resources/handler.js.map +1 -0
- package/dist/scripts/bundle.d.ts +13 -0
- package/dist/scripts/bundle.d.ts.map +1 -0
- package/dist/scripts/bundle.js +137 -0
- package/dist/scripts/bundle.js.map +1 -0
- package/dist/search/index.d.ts +65 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +227 -0
- package/dist/search/index.js.map +1 -0
- package/dist/tools/handler.d.ts +40 -0
- package/dist/tools/handler.d.ts.map +1 -0
- package/dist/tools/handler.js +265 -0
- package/dist/tools/handler.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dynamic toolset handler implementing 4 tools:
|
|
3
|
+
* - axiom_get_catalog: Structured taxonomy of skills by category
|
|
4
|
+
* - axiom_search_skills: BM25 text search with ranked results
|
|
5
|
+
* - axiom_read_skill: Section-filtered content delivery
|
|
6
|
+
* - axiom_run_agent: Agent instructions and metadata
|
|
7
|
+
*/
|
|
8
|
+
export class DynamicToolsHandler {
|
|
9
|
+
loader;
|
|
10
|
+
logger;
|
|
11
|
+
constructor(loader, logger) {
|
|
12
|
+
this.loader = loader;
|
|
13
|
+
this.logger = logger;
|
|
14
|
+
}
|
|
15
|
+
async listTools() {
|
|
16
|
+
return {
|
|
17
|
+
tools: [
|
|
18
|
+
{
|
|
19
|
+
name: 'axiom_get_catalog',
|
|
20
|
+
description: 'Get the Axiom skills catalog organized by category. Returns skill names, types, and descriptions grouped into categories like "UI & Design", "Data & Persistence", etc.',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
type: 'object',
|
|
23
|
+
properties: {
|
|
24
|
+
category: {
|
|
25
|
+
type: 'string',
|
|
26
|
+
description: 'Filter to a specific category (e.g. "UI & Design"). Omit for all categories.',
|
|
27
|
+
},
|
|
28
|
+
includeDescriptions: {
|
|
29
|
+
type: 'boolean',
|
|
30
|
+
description: 'Include skill descriptions in output. Default false for compact listing.',
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: 'axiom_search_skills',
|
|
37
|
+
description: 'Search Axiom skills by keyword query. Returns ranked results with matching section names. Use to find relevant skills for a topic like "data race", "SwiftUI navigation", or "memory leak".',
|
|
38
|
+
inputSchema: {
|
|
39
|
+
type: 'object',
|
|
40
|
+
properties: {
|
|
41
|
+
query: {
|
|
42
|
+
type: 'string',
|
|
43
|
+
description: 'Search query (e.g. "data race swift 6", "SwiftUI performance")',
|
|
44
|
+
},
|
|
45
|
+
limit: {
|
|
46
|
+
type: 'number',
|
|
47
|
+
description: 'Maximum results to return. Default 10.',
|
|
48
|
+
},
|
|
49
|
+
skillType: {
|
|
50
|
+
type: 'string',
|
|
51
|
+
enum: ['discipline', 'reference', 'diagnostic'],
|
|
52
|
+
description: 'Filter by skill type.',
|
|
53
|
+
},
|
|
54
|
+
category: {
|
|
55
|
+
type: 'string',
|
|
56
|
+
description: 'Filter by category name.',
|
|
57
|
+
},
|
|
58
|
+
source: {
|
|
59
|
+
type: 'string',
|
|
60
|
+
enum: ['axiom', 'apple'],
|
|
61
|
+
description: 'Filter by content source.',
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
required: ['query'],
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: 'axiom_read_skill',
|
|
69
|
+
description: 'Read skill content with optional section filtering. Supports reading specific sections to reduce token usage (~3 KB per section vs ~26 KB full skill). Can read multiple skills in one call.',
|
|
70
|
+
inputSchema: {
|
|
71
|
+
type: 'object',
|
|
72
|
+
properties: {
|
|
73
|
+
skills: {
|
|
74
|
+
type: 'array',
|
|
75
|
+
items: {
|
|
76
|
+
type: 'object',
|
|
77
|
+
properties: {
|
|
78
|
+
name: {
|
|
79
|
+
type: 'string',
|
|
80
|
+
description: 'Skill name (e.g. "axiom-swift-concurrency")',
|
|
81
|
+
},
|
|
82
|
+
sections: {
|
|
83
|
+
type: 'array',
|
|
84
|
+
items: { type: 'string' },
|
|
85
|
+
description: 'Section headings to include (case-insensitive substring match). Omit for full content.',
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
required: ['name'],
|
|
89
|
+
},
|
|
90
|
+
description: 'Skills to read. Each can specify section filters.',
|
|
91
|
+
},
|
|
92
|
+
listSections: {
|
|
93
|
+
type: 'boolean',
|
|
94
|
+
description: 'If true, return only the section table of contents (heading + size) without content.',
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
required: ['skills'],
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: 'axiom_run_agent',
|
|
102
|
+
description: 'Get agent instructions and metadata for an Axiom agent. Returns the agent\'s full prompt and configuration.',
|
|
103
|
+
inputSchema: {
|
|
104
|
+
type: 'object',
|
|
105
|
+
properties: {
|
|
106
|
+
agent: {
|
|
107
|
+
type: 'string',
|
|
108
|
+
description: 'Agent name (e.g. "build-fixer", "accessibility-auditor")',
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
required: ['agent'],
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
],
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
async callTool(name, args) {
|
|
118
|
+
this.logger.debug(`Handling tools/call: ${name}`);
|
|
119
|
+
switch (name) {
|
|
120
|
+
case 'axiom_get_catalog':
|
|
121
|
+
return this.handleGetCatalog(args);
|
|
122
|
+
case 'axiom_search_skills':
|
|
123
|
+
return this.handleSearchSkills(args);
|
|
124
|
+
case 'axiom_read_skill':
|
|
125
|
+
return this.handleReadSkill(args);
|
|
126
|
+
case 'axiom_run_agent':
|
|
127
|
+
return this.handleRunAgent(args);
|
|
128
|
+
default:
|
|
129
|
+
throw new Error(`Unknown tool: ${name}`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
async handleGetCatalog(args) {
|
|
133
|
+
const catalog = await this.loader.getCatalog(args.category);
|
|
134
|
+
const includeDescriptions = args.includeDescriptions === true;
|
|
135
|
+
const lines = [];
|
|
136
|
+
lines.push(`# Axiom Skills Catalog`);
|
|
137
|
+
lines.push(`${catalog.totalSkills} skills, ${catalog.totalAgents} agents`);
|
|
138
|
+
lines.push('');
|
|
139
|
+
const sortedCategories = Object.entries(catalog.categories)
|
|
140
|
+
.sort(([a], [b]) => a.localeCompare(b));
|
|
141
|
+
for (const [, category] of sortedCategories) {
|
|
142
|
+
lines.push(`## ${category.label} (${category.skills.length})`);
|
|
143
|
+
for (const skill of category.skills) {
|
|
144
|
+
const typeTag = skill.skillType !== 'discipline' ? ` [${skill.skillType}]` : '';
|
|
145
|
+
const sourceTag = skill.source === 'apple' ? ' [Apple]' : '';
|
|
146
|
+
if (includeDescriptions) {
|
|
147
|
+
lines.push(`- **${skill.name}**${typeTag}${sourceTag}: ${skill.description}`);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
lines.push(`- ${skill.name}${typeTag}${sourceTag}`);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
lines.push('');
|
|
154
|
+
}
|
|
155
|
+
if (catalog.agents.length > 0) {
|
|
156
|
+
lines.push(`## Agents (${catalog.agents.length})`);
|
|
157
|
+
for (const agent of catalog.agents) {
|
|
158
|
+
if (includeDescriptions) {
|
|
159
|
+
lines.push(`- **${agent.name}**: ${agent.description}`);
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
lines.push(`- ${agent.name}`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
lines.push('');
|
|
166
|
+
}
|
|
167
|
+
return { content: [{ type: 'text', text: lines.join('\n') }] };
|
|
168
|
+
}
|
|
169
|
+
async handleSearchSkills(args) {
|
|
170
|
+
if (!args.query || typeof args.query !== 'string') {
|
|
171
|
+
throw new Error('Required parameter "query" must be a non-empty string');
|
|
172
|
+
}
|
|
173
|
+
const results = await this.loader.searchSkills(args.query, {
|
|
174
|
+
limit: args.limit,
|
|
175
|
+
skillType: args.skillType,
|
|
176
|
+
category: args.category,
|
|
177
|
+
source: args.source,
|
|
178
|
+
});
|
|
179
|
+
if (results.length === 0) {
|
|
180
|
+
return { content: [{ type: 'text', text: `No skills found for query: "${args.query}"` }] };
|
|
181
|
+
}
|
|
182
|
+
const lines = [];
|
|
183
|
+
lines.push(`# Search Results for "${args.query}"`);
|
|
184
|
+
lines.push(`${results.length} results`);
|
|
185
|
+
lines.push('');
|
|
186
|
+
for (const result of results) {
|
|
187
|
+
const typeTag = result.skillType !== 'discipline' ? ` [${result.skillType}]` : '';
|
|
188
|
+
const sourceTag = result.source === 'apple' ? ' [Apple]' : '';
|
|
189
|
+
const catTag = result.category ? ` (${result.category})` : '';
|
|
190
|
+
lines.push(`### ${result.name}${typeTag}${sourceTag}${catTag}`);
|
|
191
|
+
lines.push(`Score: ${result.score.toFixed(2)}`);
|
|
192
|
+
lines.push(result.description);
|
|
193
|
+
if (result.matchingSections.length > 0) {
|
|
194
|
+
lines.push(`Matching sections: ${result.matchingSections.join(', ')}`);
|
|
195
|
+
}
|
|
196
|
+
lines.push('');
|
|
197
|
+
}
|
|
198
|
+
return { content: [{ type: 'text', text: lines.join('\n') }] };
|
|
199
|
+
}
|
|
200
|
+
async handleReadSkill(args) {
|
|
201
|
+
if (!args.skills || !Array.isArray(args.skills) || args.skills.length === 0) {
|
|
202
|
+
throw new Error('Required parameter "skills" must be a non-empty array');
|
|
203
|
+
}
|
|
204
|
+
const listSections = args.listSections === true;
|
|
205
|
+
const parts = [];
|
|
206
|
+
for (const skillReq of args.skills) {
|
|
207
|
+
if (!skillReq.name || typeof skillReq.name !== 'string') {
|
|
208
|
+
throw new Error('Each skill entry must have a "name" string');
|
|
209
|
+
}
|
|
210
|
+
if (listSections) {
|
|
211
|
+
const skill = await this.loader.getSkill(skillReq.name);
|
|
212
|
+
if (!skill) {
|
|
213
|
+
parts.push(`## ${skillReq.name}\nSkill not found.\n`);
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
parts.push(`## ${skill.name} — Sections`);
|
|
217
|
+
parts.push(`Type: ${skill.skillType} | Total: ${skill.content.length} chars`);
|
|
218
|
+
parts.push('');
|
|
219
|
+
parts.push('| Section | Chars |');
|
|
220
|
+
parts.push('|---------|-------|');
|
|
221
|
+
for (const section of skill.sections) {
|
|
222
|
+
parts.push(`| ${section.heading} | ${section.charCount} |`);
|
|
223
|
+
}
|
|
224
|
+
parts.push('');
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
const result = await this.loader.getSkillSections(skillReq.name, skillReq.sections);
|
|
228
|
+
if (!result) {
|
|
229
|
+
parts.push(`## ${skillReq.name}\nSkill not found.\n`);
|
|
230
|
+
continue;
|
|
231
|
+
}
|
|
232
|
+
if (skillReq.sections && skillReq.sections.length > 0) {
|
|
233
|
+
parts.push(`## ${result.skill.name} (filtered: ${result.sections.map(s => s.heading).join(', ')})`);
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
parts.push(`## ${result.skill.name}`);
|
|
237
|
+
}
|
|
238
|
+
parts.push(`Type: ${result.skill.skillType} | ${result.content.length} chars`);
|
|
239
|
+
parts.push('');
|
|
240
|
+
parts.push(result.content);
|
|
241
|
+
parts.push('');
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return { content: [{ type: 'text', text: parts.join('\n') }] };
|
|
245
|
+
}
|
|
246
|
+
async handleRunAgent(args) {
|
|
247
|
+
if (!args.agent || typeof args.agent !== 'string') {
|
|
248
|
+
throw new Error('Required parameter "agent" must be a non-empty string');
|
|
249
|
+
}
|
|
250
|
+
const agent = await this.loader.getAgent(args.agent);
|
|
251
|
+
if (!agent) {
|
|
252
|
+
throw new Error(`Agent not found: ${args.agent}`);
|
|
253
|
+
}
|
|
254
|
+
const lines = [];
|
|
255
|
+
lines.push(`# Agent: ${agent.name}`);
|
|
256
|
+
lines.push(`${agent.description}`);
|
|
257
|
+
if (agent.model) {
|
|
258
|
+
lines.push(`Model: ${agent.model}`);
|
|
259
|
+
}
|
|
260
|
+
lines.push('');
|
|
261
|
+
lines.push(agent.content);
|
|
262
|
+
return { content: [{ type: 'text', text: lines.join('\n') }] };
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/tools/handler.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "axiom-mcp",
|
|
3
|
+
"version": "2.19.6",
|
|
4
|
+
"description": "MCP server for Axiom development skills, agents, and commands",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"axiom-mcp": "./dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"README.md",
|
|
13
|
+
"LICENSE"
|
|
14
|
+
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "tsc",
|
|
17
|
+
"build:bundle": "tsc && node dist/scripts/bundle.js",
|
|
18
|
+
"dev": "tsc --watch",
|
|
19
|
+
"start": "node dist/index.js",
|
|
20
|
+
"prepublishOnly": "npm run build:bundle"
|
|
21
|
+
},
|
|
22
|
+
"keywords": [
|
|
23
|
+
"mcp",
|
|
24
|
+
"ios",
|
|
25
|
+
"swift",
|
|
26
|
+
"swiftui",
|
|
27
|
+
"xcode",
|
|
28
|
+
"development",
|
|
29
|
+
"axiom"
|
|
30
|
+
],
|
|
31
|
+
"author": "Charles Wiltgen",
|
|
32
|
+
"license": "MIT",
|
|
33
|
+
"repository": {
|
|
34
|
+
"type": "git",
|
|
35
|
+
"url": "https://github.com/CharlesWiltgen/Axiom.git",
|
|
36
|
+
"directory": "mcp-server"
|
|
37
|
+
},
|
|
38
|
+
"homepage": "https://charleswiltgen.github.io/Axiom/guide/mcp-install",
|
|
39
|
+
"bugs": {
|
|
40
|
+
"url": "https://github.com/CharlesWiltgen/Axiom/issues"
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
44
|
+
"gray-matter": "^4.0.3"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@types/node": "^20.0.0",
|
|
48
|
+
"typescript": "^5.3.0"
|
|
49
|
+
},
|
|
50
|
+
"engines": {
|
|
51
|
+
"node": ">=18.0.0"
|
|
52
|
+
}
|
|
53
|
+
}
|