atom-mcp-server 1.1.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.
Files changed (73) hide show
  1. package/Dockerfile +18 -0
  2. package/README.md +184 -0
  3. package/claude_desktop_config.json +8 -0
  4. package/dist/auth.d.ts +38 -0
  5. package/dist/auth.d.ts.map +1 -0
  6. package/dist/auth.js +75 -0
  7. package/dist/auth.js.map +1 -0
  8. package/dist/index.d.ts +3 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +92 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/server.d.ts +3 -0
  13. package/dist/server.d.ts.map +1 -0
  14. package/dist/server.js +234 -0
  15. package/dist/server.js.map +1 -0
  16. package/dist/supabase.d.ts +18 -0
  17. package/dist/supabase.d.ts.map +1 -0
  18. package/dist/supabase.js +86 -0
  19. package/dist/supabase.js.map +1 -0
  20. package/dist/tools/compare-prices.d.ts +16 -0
  21. package/dist/tools/compare-prices.d.ts.map +1 -0
  22. package/dist/tools/compare-prices.js +152 -0
  23. package/dist/tools/compare-prices.js.map +1 -0
  24. package/dist/tools/get-index-benchmarks.d.ts +14 -0
  25. package/dist/tools/get-index-benchmarks.d.ts.map +1 -0
  26. package/dist/tools/get-index-benchmarks.js +99 -0
  27. package/dist/tools/get-index-benchmarks.js.map +1 -0
  28. package/dist/tools/get-kpis.d.ts +10 -0
  29. package/dist/tools/get-kpis.d.ts.map +1 -0
  30. package/dist/tools/get-kpis.js +45 -0
  31. package/dist/tools/get-kpis.js.map +1 -0
  32. package/dist/tools/get-market-stats.d.ts +12 -0
  33. package/dist/tools/get-market-stats.d.ts.map +1 -0
  34. package/dist/tools/get-market-stats.js +95 -0
  35. package/dist/tools/get-market-stats.js.map +1 -0
  36. package/dist/tools/get-model-detail.d.ts +12 -0
  37. package/dist/tools/get-model-detail.d.ts.map +1 -0
  38. package/dist/tools/get-model-detail.js +96 -0
  39. package/dist/tools/get-model-detail.js.map +1 -0
  40. package/dist/tools/get-vendor-catalog.d.ts +15 -0
  41. package/dist/tools/get-vendor-catalog.d.ts.map +1 -0
  42. package/dist/tools/get-vendor-catalog.js +102 -0
  43. package/dist/tools/get-vendor-catalog.js.map +1 -0
  44. package/dist/tools/list-vendors.d.ts +13 -0
  45. package/dist/tools/list-vendors.d.ts.map +1 -0
  46. package/dist/tools/list-vendors.js +49 -0
  47. package/dist/tools/list-vendors.js.map +1 -0
  48. package/dist/tools/search-models.d.ts +22 -0
  49. package/dist/tools/search-models.d.ts.map +1 -0
  50. package/dist/tools/search-models.js +128 -0
  51. package/dist/tools/search-models.js.map +1 -0
  52. package/dist/types.d.ts +119 -0
  53. package/dist/types.d.ts.map +1 -0
  54. package/dist/types.js +5 -0
  55. package/dist/types.js.map +1 -0
  56. package/env.example +17 -0
  57. package/package.json +52 -0
  58. package/railway.json +13 -0
  59. package/smithery.yaml +36 -0
  60. package/src/auth.ts +101 -0
  61. package/src/index.ts +94 -0
  62. package/src/server.ts +278 -0
  63. package/src/supabase.ts +125 -0
  64. package/src/tools/compare-prices.ts +175 -0
  65. package/src/tools/get-index-benchmarks.ts +122 -0
  66. package/src/tools/get-kpis.ts +62 -0
  67. package/src/tools/get-market-stats.ts +112 -0
  68. package/src/tools/get-model-detail.ts +119 -0
  69. package/src/tools/get-vendor-catalog.ts +121 -0
  70. package/src/tools/list-vendors.ts +60 -0
  71. package/src/tools/search-models.ts +146 -0
  72. package/src/types.ts +145 -0
  73. package/tsconfig.json +19 -0
package/src/types.ts ADDED
@@ -0,0 +1,145 @@
1
+ // ============================================================
2
+ // ATOM MCP Server — Type Definitions
3
+ // ============================================================
4
+
5
+ /** Access tier for API consumers */
6
+ export type Tier = "free" | "paid";
7
+
8
+ /** Supabase query response wrapper */
9
+ export interface SupabaseResponse<T> {
10
+ data: T[] | null;
11
+ error: string | null;
12
+ count?: number;
13
+ }
14
+
15
+ // ------------------------------------------------------------
16
+ // Database table types (mirror Supabase schema)
17
+ // ------------------------------------------------------------
18
+
19
+ export interface VendorRegistry {
20
+ vendor_id: string;
21
+ vendor_name: string;
22
+ country: string;
23
+ region: string;
24
+ vendor_url: string | null;
25
+ pricing_page_url: string | null;
26
+ model_specifications_url: string | null;
27
+ }
28
+
29
+ export interface ModelRegistry {
30
+ model_id: string;
31
+ model_name: string;
32
+ creator: string;
33
+ model_family: string | null;
34
+ modality_input: string[] | null;
35
+ modality_output: string[] | null;
36
+ open_source: boolean | null;
37
+ parameter_count: string | null;
38
+ context_window: number | null;
39
+ max_output_tokens: number | null;
40
+ tool_calling: boolean | null;
41
+ json_mode: boolean | null;
42
+ streaming: boolean | null;
43
+ training_cutoff: string | null;
44
+ source_url: string | null;
45
+ null_reasons: Record<string, string> | null;
46
+ last_verified: string | null;
47
+ tier: string | null;
48
+ }
49
+
50
+ export interface SkuIndex {
51
+ sku_id: string;
52
+ sku_plan_name: string | null;
53
+ model_id: string;
54
+ vendor_id: string;
55
+ vendor_name: string;
56
+ model_name: string;
57
+ modality: string;
58
+ modality_subtype: string;
59
+ direction: string;
60
+ normalized_price: number | null;
61
+ normalized_price_unit: string | null;
62
+ price_normalization_method: string | null;
63
+ original_price: string | null;
64
+ billing_method: string | null;
65
+ delivery_method: string | null;
66
+ pricing_notes: string | null;
67
+ verification_date: string | null;
68
+ run_id: string | null;
69
+ aipi_eligible: boolean | null;
70
+ aipi_indexes: string | null;
71
+ exclusion_reason: string | null;
72
+ }
73
+
74
+ export interface PriceIndex {
75
+ id: number;
76
+ sku_id: string;
77
+ vendor_id: string;
78
+ model_id: string;
79
+ vendor_name: string;
80
+ sku_plan_name: string | null;
81
+ model_name: string;
82
+ modality: string;
83
+ modality_subtype: string;
84
+ direction: string;
85
+ original_price: string | null;
86
+ normalized_price: number | null;
87
+ normalized_price_unit: string | null;
88
+ price_normalization_method: string | null;
89
+ verification_date: string | null;
90
+ billing_method: string | null;
91
+ delivery_method: string | null;
92
+ pricing_notes: string | null;
93
+ run_id: string;
94
+ }
95
+
96
+ export interface IndexValues {
97
+ id: number;
98
+ index_code: string;
99
+ index_category: string;
100
+ index_description: string;
101
+ unit: string;
102
+ date: string;
103
+ input_price: number | null;
104
+ cached_price: number | null;
105
+ output_price: number | null;
106
+ sku_count: number;
107
+ created_at: string;
108
+ }
109
+
110
+ // ------------------------------------------------------------
111
+ // View types
112
+ // ------------------------------------------------------------
113
+
114
+ /** v_summary_stats returns rows of {metric, value} */
115
+ export interface SummaryStatRow {
116
+ metric: string;
117
+ value: string;
118
+ }
119
+
120
+ /** v_pricing_intel KPI rows */
121
+ export interface PricingIntel {
122
+ kpi_name: string;
123
+ kpi_value: number;
124
+ kpi_unit: string;
125
+ kpi_description: string;
126
+ }
127
+
128
+ // ------------------------------------------------------------
129
+ // Tool response helpers
130
+ // ------------------------------------------------------------
131
+
132
+ export interface RedactedModel {
133
+ model_id: string;
134
+ modality: string;
135
+ direction: string;
136
+ // Redacted fields
137
+ vendor_name: "[UPGRADE TO ATOM MCP Pro — $49/mo]";
138
+ model_name: "[UPGRADE TO ATOM MCP Pro — $49/mo]";
139
+ normalized_price: "[UPGRADE TO ATOM MCP Pro — $49/mo]";
140
+ }
141
+
142
+ export interface ToolContext {
143
+ tier: Tier;
144
+ apiKey?: string;
145
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "Node16",
5
+ "moduleResolution": "Node16",
6
+ "outDir": "./dist",
7
+ "rootDir": "./src",
8
+ "strict": true,
9
+ "esModuleInterop": true,
10
+ "skipLibCheck": true,
11
+ "forceConsistentCasingInFileNames": true,
12
+ "resolveJsonModule": true,
13
+ "declaration": true,
14
+ "declarationMap": true,
15
+ "sourceMap": true
16
+ },
17
+ "include": ["src/**/*"],
18
+ "exclude": ["node_modules", "dist"]
19
+ }