@codai/axiom-mcp 1.0.2 → 1.0.3

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 (191) hide show
  1. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@codai/axiom-core.json +1 -0
  2. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@codai/axiom-emitter-apiservice.json +1 -0
  3. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@codai/axiom-emitter-batchjob.json +1 -0
  4. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@codai/axiom-emitter-docker.json +1 -0
  5. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@codai/axiom-emitter-webapp.json +1 -0
  6. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@codai/axiom-engine.json +1 -0
  7. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@codai/axiom-policies.json +1 -0
  8. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/aix-ppc64.json +1 -0
  9. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/android-arm.json +1 -0
  10. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/android-arm64.json +1 -0
  11. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/android-x64.json +1 -0
  12. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/darwin-arm64.json +1 -0
  13. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/darwin-x64.json +1 -0
  14. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/freebsd-arm64.json +1 -0
  15. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/freebsd-x64.json +1 -0
  16. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/linux-arm.json +1 -0
  17. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/linux-arm64.json +1 -0
  18. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/linux-ia32.json +1 -0
  19. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/linux-loong64.json +1 -0
  20. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/linux-mips64el.json +1 -0
  21. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/linux-ppc64.json +1 -0
  22. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/linux-riscv64.json +1 -0
  23. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/linux-s390x.json +1 -0
  24. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/linux-x64.json +1 -0
  25. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/netbsd-arm64.json +1 -0
  26. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/netbsd-x64.json +1 -0
  27. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/openbsd-arm64.json +1 -0
  28. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/openbsd-x64.json +1 -0
  29. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/openharmony-arm64.json +1 -0
  30. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/sunos-x64.json +1 -0
  31. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/win32-arm64.json +1 -0
  32. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/win32-ia32.json +1 -0
  33. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@esbuild/win32-x64.json +1 -0
  34. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@jridgewell/sourcemap-codec.json +1 -0
  35. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@modelcontextprotocol/sdk.json +1 -0
  36. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-android-arm-eabi.json +1 -0
  37. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-android-arm64.json +1 -0
  38. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-darwin-arm64.json +1 -0
  39. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-darwin-x64.json +1 -0
  40. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-freebsd-arm64.json +1 -0
  41. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-freebsd-x64.json +1 -0
  42. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf.json +1 -0
  43. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf.json +1 -0
  44. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-linux-arm64-gnu.json +1 -0
  45. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-linux-arm64-musl.json +1 -0
  46. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-linux-loong64-gnu.json +1 -0
  47. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu.json +1 -0
  48. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu.json +1 -0
  49. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-linux-riscv64-musl.json +1 -0
  50. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-linux-s390x-gnu.json +1 -0
  51. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-linux-x64-gnu.json +1 -0
  52. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-linux-x64-musl.json +1 -0
  53. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-openharmony-arm64.json +1 -0
  54. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-win32-arm64-msvc.json +1 -0
  55. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-win32-ia32-msvc.json +1 -0
  56. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-win32-x64-gnu.json +1 -0
  57. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@rollup/rollup-win32-x64-msvc.json +1 -0
  58. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@types/estree.json +1 -0
  59. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@types/node.json +1 -0
  60. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@vitest/expect.json +1 -0
  61. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@vitest/mocker.json +1 -0
  62. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@vitest/pretty-format.json +1 -0
  63. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@vitest/runner.json +1 -0
  64. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@vitest/snapshot.json +1 -0
  65. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@vitest/spy.json +1 -0
  66. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/@vitest/utils.json +1 -0
  67. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/accepts.json +1 -0
  68. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/ajv.json +1 -0
  69. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/assertion-error.json +1 -0
  70. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/body-parser.json +1 -0
  71. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/bytes.json +1 -0
  72. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/cac.json +1 -0
  73. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/call-bind-apply-helpers.json +1 -0
  74. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/call-bound.json +1 -0
  75. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/chai.json +1 -0
  76. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/check-error.json +1 -0
  77. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/content-disposition.json +1 -0
  78. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/content-type.json +1 -0
  79. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/cookie-signature.json +1 -0
  80. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/cookie.json +1 -0
  81. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/cors.json +1 -0
  82. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/cross-spawn.json +1 -0
  83. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/debug.json +1 -0
  84. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/deep-eql.json +1 -0
  85. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/depd.json +1 -0
  86. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/dunder-proto.json +1 -0
  87. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/ee-first.json +1 -0
  88. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/encodeurl.json +1 -0
  89. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/es-define-property.json +1 -0
  90. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/es-errors.json +1 -0
  91. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/es-module-lexer.json +1 -0
  92. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/es-object-atoms.json +1 -0
  93. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/esbuild.json +1 -0
  94. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/escape-html.json +1 -0
  95. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/estree-walker.json +1 -0
  96. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/etag.json +1 -0
  97. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/eventsource-parser.json +1 -0
  98. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/eventsource.json +1 -0
  99. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/expect-type.json +1 -0
  100. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/express-rate-limit.json +1 -0
  101. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/express.json +1 -0
  102. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/fast-deep-equal.json +1 -0
  103. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/fast-json-stable-stringify.json +1 -0
  104. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/finalhandler.json +1 -0
  105. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/forwarded.json +1 -0
  106. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/fresh.json +1 -0
  107. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/fsevents.json +1 -0
  108. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/function-bind.json +1 -0
  109. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/get-intrinsic.json +1 -0
  110. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/get-proto.json +1 -0
  111. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/get-tsconfig.json +1 -0
  112. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/gopd.json +1 -0
  113. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/has-symbols.json +1 -0
  114. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/hasown.json +1 -0
  115. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/http-errors.json +1 -0
  116. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/iconv-lite.json +1 -0
  117. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/inherits.json +1 -0
  118. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/ipaddr.js.json +1 -0
  119. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/is-promise.json +1 -0
  120. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/isexe.json +1 -0
  121. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/json-schema-traverse.json +1 -0
  122. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/loupe.json +1 -0
  123. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/magic-string.json +1 -0
  124. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/math-intrinsics.json +1 -0
  125. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/media-typer.json +1 -0
  126. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/merge-descriptors.json +1 -0
  127. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/mime-db.json +1 -0
  128. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/mime-types.json +1 -0
  129. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/ms.json +1 -0
  130. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/nanoid.json +1 -0
  131. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/negotiator.json +1 -0
  132. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/object-assign.json +1 -0
  133. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/object-inspect.json +1 -0
  134. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/on-finished.json +1 -0
  135. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/once.json +1 -0
  136. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/parseurl.json +1 -0
  137. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/path-key.json +1 -0
  138. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/path-to-regexp.json +1 -0
  139. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/pathe.json +1 -0
  140. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/pathval.json +1 -0
  141. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/picocolors.json +1 -0
  142. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/pkce-challenge.json +1 -0
  143. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/postcss.json +1 -0
  144. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/proxy-addr.json +1 -0
  145. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/punycode.json +1 -0
  146. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/qs.json +1 -0
  147. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/range-parser.json +1 -0
  148. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/raw-body.json +1 -0
  149. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/resolve-pkg-maps.json +1 -0
  150. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/rollup.json +1 -0
  151. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/router.json +1 -0
  152. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/safe-buffer.json +1 -0
  153. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/safer-buffer.json +1 -0
  154. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/send.json +1 -0
  155. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/serve-static.json +1 -0
  156. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/setprototypeof.json +1 -0
  157. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/shebang-command.json +1 -0
  158. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/shebang-regex.json +1 -0
  159. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/side-channel-list.json +1 -0
  160. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/side-channel-map.json +1 -0
  161. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/side-channel-weakmap.json +1 -0
  162. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/side-channel.json +1 -0
  163. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/siginfo.json +1 -0
  164. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/source-map-js.json +1 -0
  165. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/stackback.json +1 -0
  166. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/statuses.json +1 -0
  167. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/std-env.json +1 -0
  168. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/tinybench.json +1 -0
  169. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/tinyexec.json +1 -0
  170. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/tinypool.json +1 -0
  171. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/tinyrainbow.json +1 -0
  172. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/tinyspy.json +1 -0
  173. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/toidentifier.json +1 -0
  174. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/tsx.json +1 -0
  175. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/type-is.json +1 -0
  176. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/typescript.json +1 -0
  177. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/undici-types.json +1 -0
  178. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/unpipe.json +1 -0
  179. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/uri-js.json +1 -0
  180. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/vary.json +1 -0
  181. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/vite-node.json +1 -0
  182. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/vite.json +1 -0
  183. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/vitest.json +1 -0
  184. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/which.json +1 -0
  185. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/why-is-node-running.json +1 -0
  186. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/wrappy.json +1 -0
  187. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/zod-to-json-schema.json +1 -0
  188. package/.pnpm-cache/metadata-v1.3/registry.npmjs.org/zod.json +1 -0
  189. package/dist/mcp-stdio.js +329 -0
  190. package/package.json +11 -8
  191. package/src/mcp-stdio.ts +374 -0
@@ -0,0 +1,329 @@
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 { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
5
+ import { parseAxiomSource } from "@codai/axiom-core/dist/parser.js";
6
+ import { validateIR } from "@codai/axiom-core/dist/validator.js";
7
+ import { AxiomIR } from "@codai/axiom-core/dist/ir.js";
8
+ import { generate } from "@codai/axiom-engine/dist/generate.js";
9
+ import { check } from "@codai/axiom-engine/dist/check.js";
10
+ import { reverseIR } from "@codai/axiom-engine/dist/reverse-ir.js";
11
+ import { diff } from "@codai/axiom-engine/dist/axpatch.js";
12
+ import { apply } from "@codai/axiom-engine/dist/apply.js";
13
+ const server = new Server({
14
+ name: "axiom-mcp",
15
+ version: "1.0.2",
16
+ }, {
17
+ capabilities: {
18
+ tools: {},
19
+ },
20
+ });
21
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
22
+ return {
23
+ tools: [
24
+ {
25
+ name: "axiom_parse",
26
+ description: "Parse .axm source code to IR (Intermediate Representation)",
27
+ inputSchema: {
28
+ type: "object",
29
+ properties: {
30
+ source: {
31
+ type: "string",
32
+ description: "AXIOM source code (.axm)",
33
+ },
34
+ },
35
+ required: ["source"],
36
+ },
37
+ },
38
+ {
39
+ name: "axiom_validate",
40
+ description: "Validate IR semantics and constraints",
41
+ inputSchema: {
42
+ type: "object",
43
+ properties: {
44
+ ir: {
45
+ type: "object",
46
+ description: "AXIOM IR object",
47
+ },
48
+ },
49
+ required: ["ir"],
50
+ },
51
+ },
52
+ {
53
+ name: "axiom_generate",
54
+ description: "Generate artifacts and manifest from IR",
55
+ inputSchema: {
56
+ type: "object",
57
+ properties: {
58
+ ir: {
59
+ type: "object",
60
+ description: "AXIOM IR object",
61
+ },
62
+ profile: {
63
+ type: "string",
64
+ description: "Profile name (e.g., 'edge', 'budget')",
65
+ },
66
+ },
67
+ required: ["ir"],
68
+ },
69
+ },
70
+ {
71
+ name: "axiom_check",
72
+ description: "Run policy checks on manifest",
73
+ inputSchema: {
74
+ type: "object",
75
+ properties: {
76
+ manifest: {
77
+ type: "object",
78
+ description: "Generated manifest",
79
+ },
80
+ ir: {
81
+ type: "object",
82
+ description: "Optional IR for context",
83
+ },
84
+ },
85
+ required: ["manifest"],
86
+ },
87
+ },
88
+ {
89
+ name: "axiom_reverse",
90
+ description: "Reverse engineer IR from existing repository",
91
+ inputSchema: {
92
+ type: "object",
93
+ properties: {
94
+ repoPath: {
95
+ type: "string",
96
+ description: "Path to repository",
97
+ },
98
+ outDir: {
99
+ type: "string",
100
+ description: "Output directory to scan",
101
+ default: "out",
102
+ },
103
+ },
104
+ },
105
+ },
106
+ {
107
+ name: "axiom_diff",
108
+ description: "Generate diff patches between two IR versions",
109
+ inputSchema: {
110
+ type: "object",
111
+ properties: {
112
+ oldIr: {
113
+ type: "object",
114
+ description: "Old IR version",
115
+ },
116
+ newIr: {
117
+ type: "object",
118
+ description: "New IR version",
119
+ },
120
+ },
121
+ required: ["oldIr", "newIr"],
122
+ },
123
+ },
124
+ {
125
+ name: "axiom_apply",
126
+ description: "Apply manifest changes to filesystem",
127
+ inputSchema: {
128
+ type: "object",
129
+ properties: {
130
+ manifest: {
131
+ type: "object",
132
+ description: "Manifest to apply",
133
+ },
134
+ mode: {
135
+ type: "string",
136
+ enum: ["fs", "pr"],
137
+ description: "Application mode: 'fs' for direct filesystem, 'pr' for pull request",
138
+ default: "fs",
139
+ },
140
+ repoPath: {
141
+ type: "string",
142
+ description: "Repository path",
143
+ },
144
+ branchName: {
145
+ type: "string",
146
+ description: "Branch name for PR mode",
147
+ },
148
+ commitMessage: {
149
+ type: "string",
150
+ description: "Commit message for PR mode",
151
+ },
152
+ },
153
+ required: ["manifest"],
154
+ },
155
+ },
156
+ ],
157
+ };
158
+ });
159
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
160
+ try {
161
+ const { name, arguments: args } = request.params;
162
+ switch (name) {
163
+ case "axiom_parse": {
164
+ const { source } = args;
165
+ const { ir, diagnostics } = parseAxiomSource(source);
166
+ return {
167
+ content: [
168
+ {
169
+ type: "text",
170
+ text: JSON.stringify({ ir, diagnostics }, null, 2),
171
+ },
172
+ ],
173
+ };
174
+ }
175
+ case "axiom_validate": {
176
+ const { ir } = args;
177
+ const parse = AxiomIR.safeParse(ir);
178
+ if (!parse.success) {
179
+ return {
180
+ content: [
181
+ {
182
+ type: "text",
183
+ text: JSON.stringify({ ok: false, diagnostics: parse.error.issues }, null, 2),
184
+ },
185
+ ],
186
+ };
187
+ }
188
+ const result = validateIR(parse.data);
189
+ return {
190
+ content: [
191
+ {
192
+ type: "text",
193
+ text: JSON.stringify(result, null, 2),
194
+ },
195
+ ],
196
+ };
197
+ }
198
+ case "axiom_generate": {
199
+ const { ir, profile } = args;
200
+ const parse = AxiomIR.safeParse(ir);
201
+ if (!parse.success) {
202
+ return {
203
+ content: [
204
+ {
205
+ type: "text",
206
+ text: JSON.stringify({ error: parse.error.issues }, null, 2),
207
+ },
208
+ ],
209
+ isError: true,
210
+ };
211
+ }
212
+ const { artifacts, manifest } = await generate(parse.data, process.cwd(), profile);
213
+ return {
214
+ content: [
215
+ {
216
+ type: "text",
217
+ text: JSON.stringify({ artifacts, manifest }, null, 2),
218
+ },
219
+ ],
220
+ };
221
+ }
222
+ case "axiom_check": {
223
+ const { manifest, ir } = args;
224
+ const irParsed = ir ? AxiomIR.safeParse(ir) : null;
225
+ const result = await check(manifest, irParsed?.success ? irParsed.data : undefined, process.cwd());
226
+ return {
227
+ content: [
228
+ {
229
+ type: "text",
230
+ text: JSON.stringify(result, null, 2),
231
+ },
232
+ ],
233
+ };
234
+ }
235
+ case "axiom_reverse": {
236
+ const { repoPath, outDir } = args;
237
+ const ir = await reverseIR({
238
+ repoPath: repoPath || process.cwd(),
239
+ outDir: outDir || "out",
240
+ });
241
+ return {
242
+ content: [
243
+ {
244
+ type: "text",
245
+ text: JSON.stringify({ ir, diagnostics: [] }, null, 2),
246
+ },
247
+ ],
248
+ };
249
+ }
250
+ case "axiom_diff": {
251
+ const { oldIr, newIr } = args;
252
+ const oldParse = AxiomIR.safeParse(oldIr);
253
+ const newParse = AxiomIR.safeParse(newIr);
254
+ if (!oldParse.success || !newParse.success) {
255
+ return {
256
+ content: [
257
+ {
258
+ type: "text",
259
+ text: JSON.stringify({
260
+ error: "Invalid IR",
261
+ oldIr: oldParse.success ? null : oldParse.error.issues,
262
+ newIr: newParse.success ? null : newParse.error.issues,
263
+ }, null, 2),
264
+ },
265
+ ],
266
+ isError: true,
267
+ };
268
+ }
269
+ const patch = diff(oldParse.data, newParse.data);
270
+ return {
271
+ content: [
272
+ {
273
+ type: "text",
274
+ text: JSON.stringify({ patch }, null, 2),
275
+ },
276
+ ],
277
+ };
278
+ }
279
+ case "axiom_apply": {
280
+ const { manifest, mode, repoPath, branchName, commitMessage } = args;
281
+ const result = await apply({
282
+ manifest,
283
+ mode: mode || "fs",
284
+ repoPath: repoPath || process.cwd(),
285
+ branchName,
286
+ commitMessage,
287
+ });
288
+ return {
289
+ content: [
290
+ {
291
+ type: "text",
292
+ text: JSON.stringify(result, null, 2),
293
+ },
294
+ ],
295
+ };
296
+ }
297
+ default:
298
+ return {
299
+ content: [
300
+ {
301
+ type: "text",
302
+ text: `Unknown tool: ${name}`,
303
+ },
304
+ ],
305
+ isError: true,
306
+ };
307
+ }
308
+ }
309
+ catch (error) {
310
+ return {
311
+ content: [
312
+ {
313
+ type: "text",
314
+ text: `Error: ${error.message || String(error)}`,
315
+ },
316
+ ],
317
+ isError: true,
318
+ };
319
+ }
320
+ });
321
+ async function main() {
322
+ const transport = new StdioServerTransport();
323
+ await server.connect(transport);
324
+ console.error("AXIOM MCP Server running on stdio");
325
+ }
326
+ main().catch((error) => {
327
+ console.error("Fatal error:", error);
328
+ process.exit(1);
329
+ });
package/package.json CHANGED
@@ -1,28 +1,31 @@
1
1
  {
2
2
  "name": "@codai/axiom-mcp",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "type": "module",
5
5
  "bin": {
6
- "axiom-mcp": "dist/server.js"
6
+ "axiom-mcp": "dist/server.js",
7
+ "axiom-mcp-stdio": "dist/mcp-stdio.js"
7
8
  },
8
9
  "main": "dist/server.js",
9
10
  "scripts": {
10
11
  "build": "tsc -p tsconfig.json",
11
12
  "dev": "tsx watch src/server.ts",
13
+ "dev:stdio": "tsx watch src/mcp-stdio.ts",
12
14
  "postinstall": "node dist/postinstall.js"
13
15
  },
14
16
  "dependencies": {
15
17
  "@codai/axiom-core": "^1.0.1",
16
- "@codai/axiom-engine": "^1.0.1",
17
- "@codai/axiom-policies": "^1.0.1",
18
- "@codai/axiom-emitter-webapp": "^1.0.1",
19
18
  "@codai/axiom-emitter-apiservice": "^1.0.1",
20
19
  "@codai/axiom-emitter-batchjob": "^1.0.1",
21
- "@codai/axiom-emitter-docker": "^1.0.1"
20
+ "@codai/axiom-emitter-docker": "^1.0.1",
21
+ "@codai/axiom-emitter-webapp": "^1.0.1",
22
+ "@codai/axiom-engine": "^1.0.2",
23
+ "@codai/axiom-policies": "^1.0.1",
24
+ "@modelcontextprotocol/sdk": "^1.20.1"
22
25
  },
23
26
  "devDependencies": {
24
27
  "@types/node": "^22.0.0",
25
- "typescript": "^5.6.3",
26
- "tsx": "^4.19.0"
28
+ "tsx": "^4.19.0",
29
+ "typescript": "^5.6.3"
27
30
  }
28
31
  }