mcp-server-madeonsol 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 CHANGED
@@ -1 +1,21 @@
1
- MIT License
1
+ MIT License
2
+
3
+ Copyright (c) 2026 MadeOnSol
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,52 +1,61 @@
1
- # mcp-server-madeonsol
2
-
3
- MCP server for [MadeOnSol](https://madeonsol.com) Solana KOL intelligence API. Use from Claude Desktop, Cursor, or any MCP-compatible client.
4
-
5
- ## Install
6
-
7
- ```bash
8
- npm install -g mcp-server-madeonsol @x402/fetch @x402/svm @x402/core @solana/kit @scure/base
9
- ```
10
-
11
- ## Configure
12
-
13
- ### Claude Desktop
14
-
15
- Add to `claude_desktop_config.json`:
16
-
17
- ```json
18
- {
19
- "mcpServers": {
20
- "madeonsol": {
21
- "command": "mcp-server-madeonsol",
22
- "env": {
23
- "SVM_PRIVATE_KEY": "your_solana_private_key_base58"
24
- }
25
- }
26
- }
27
- }
28
- ```
29
-
30
- ### Cursor
31
-
32
- Add to MCP settings with the same command and env vars.
33
-
34
- ## Tools
35
-
36
- | Tool | Price | Description |
37
- |---|---|---|
38
- | `madeonsol_kol_feed` | $0.005 | Real-time KOL trade feed (946 wallets) |
39
- | `madeonsol_kol_coordination` | $0.02 | Multi-KOL convergence signals |
40
- | `madeonsol_kol_leaderboard` | $0.005 | KOL PnL and win rate rankings |
41
- | `madeonsol_deployer_alerts` | $0.01 | Elite Pump.fun deployer launches |
42
- | `madeonsol_discovery` | Free | List all endpoints and prices |
43
-
44
- ## How It Works
45
-
46
- The server uses the x402 payment protocol. Each tool call triggers a USDC micropayment on Solana. Your wallet needs SOL (for fees) and USDC.
47
-
48
- Without `SVM_PRIVATE_KEY`, tools return payment requirement info instead of data.
49
-
50
- ## License
51
-
52
- MIT
1
+ # mcp-server-madeonsol
2
+
3
+ MCP server for [MadeOnSol](https://madeonsol.com) Solana KOL intelligence API. Use from Claude Desktop, Cursor, or any MCP-compatible client.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install -g mcp-server-madeonsol @x402/fetch @x402/svm @x402/core @solana/kit @scure/base
9
+ ```
10
+
11
+ ## Configure
12
+
13
+ ### Claude Desktop
14
+
15
+ Add to `claude_desktop_config.json`:
16
+
17
+ ```json
18
+ {
19
+ "mcpServers": {
20
+ "madeonsol": {
21
+ "command": "mcp-server-madeonsol",
22
+ "env": {
23
+ "SVM_PRIVATE_KEY": "your_solana_private_key_base58"
24
+ }
25
+ }
26
+ }
27
+ }
28
+ ```
29
+
30
+ ### Cursor
31
+
32
+ Add to MCP settings with the same command and env vars.
33
+
34
+ ## Tools
35
+
36
+ | Tool | Price | Description |
37
+ |---|---|---|
38
+ | `madeonsol_kol_feed` | $0.005 | Real-time KOL trade feed (946 wallets) |
39
+ | `madeonsol_kol_coordination` | $0.02 | Multi-KOL convergence signals |
40
+ | `madeonsol_kol_leaderboard` | $0.005 | KOL PnL and win rate rankings |
41
+ | `madeonsol_deployer_alerts` | $0.01 | Elite Pump.fun deployer launches |
42
+ | `madeonsol_discovery` | Free | List all endpoints and prices |
43
+
44
+ ## How It Works
45
+
46
+ The server uses the x402 payment protocol. Each tool call triggers a USDC micropayment on Solana. Your wallet needs SOL (for fees) and USDC.
47
+
48
+ Without `SVM_PRIVATE_KEY`, tools return payment requirement info instead of data.
49
+
50
+ ## Also Available
51
+
52
+ | Platform | Package |
53
+ |---|---|
54
+ | TypeScript SDK | [`madeonsol-x402`](https://www.npmjs.com/package/madeonsol-x402) |
55
+ | Python (LangChain, CrewAI) | [`madeonsol-x402`](https://github.com/LamboPoewert/madeonsol-python) on PyPI |
56
+ | ElizaOS | [`@madeonsol/plugin-madeonsol`](https://www.npmjs.com/package/@madeonsol/plugin-madeonsol) |
57
+ | Solana Agent Kit | [`solana-agent-kit-plugin-madeonsol`](https://www.npmjs.com/package/solana-agent-kit-plugin-madeonsol) |
58
+
59
+ ## License
60
+
61
+ MIT
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- #!/usr/bin/env node
2
- export {};
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/index.js CHANGED
@@ -1,89 +1,185 @@
1
- #!/usr/bin/env node
2
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
- import { z } from "zod";
5
- const BASE_URL = process.env.MADEONSOL_API_URL || "https://madeonsol.com";
6
- const PRIVATE_KEY = process.env.SVM_PRIVATE_KEY;
7
- let paidFetch = fetch;
8
- async function initPayment() {
9
- if (!PRIVATE_KEY) {
10
- console.error("[madeonsol-mcp] No SVM_PRIVATE_KEY tools will return 402 payment info");
11
- return;
12
- }
13
- try {
14
- const { wrapFetchWithPayment } = await import("@x402/fetch");
15
- const { x402Client } = await import("@x402/core/client");
16
- const { ExactSvmScheme } = await import("@x402/svm/exact/client");
17
- const { createKeyPairSignerFromBytes } = await import("@solana/kit");
18
- const { base58 } = await import("@scure/base");
19
- const signer = await createKeyPairSignerFromBytes(base58.decode(PRIVATE_KEY));
20
- const client = new x402Client();
21
- client.register("solana:*", new ExactSvmScheme(signer));
22
- paidFetch = wrapFetchWithPayment(fetch, client);
23
- console.error(`[madeonsol-mcp] x402 payments enabled, wallet: ${signer.address}`);
24
- }
25
- catch (err) {
26
- console.error("[madeonsol-mcp] x402 setup failed:", err);
27
- }
28
- }
29
- async function query(path, params) {
30
- const url = new URL(path, BASE_URL);
31
- if (params) {
32
- for (const [k, v] of Object.entries(params)) {
33
- if (v !== undefined)
34
- url.searchParams.set(k, String(v));
35
- }
36
- }
37
- const res = await paidFetch(url.toString());
38
- if (!res.ok) {
39
- const body = await res.text().catch(() => "");
40
- return `Error ${res.status}: ${body}`;
41
- }
42
- return JSON.stringify(await res.json(), null, 2);
43
- }
44
- const server = new McpServer({
45
- name: "madeonsol",
46
- version: "0.1.0",
47
- });
48
- server.tool("madeonsol_kol_feed", "Get real-time Solana KOL trades from 946 tracked wallets. Costs $0.005 USDC per request via x402.", {
49
- limit: z.number().min(1).max(100).default(10).describe("Number of trades to return"),
50
- action: z.enum(["buy", "sell"]).optional().describe("Filter by trade type"),
51
- kol: z.string().optional().describe("Filter by KOL wallet address"),
52
- }, async ({ limit, action, kol }) => {
53
- const params = { limit };
54
- if (action)
55
- params.action = action;
56
- if (kol)
57
- params.kol = kol;
58
- return { content: [{ type: "text", text: await query("/api/x402/kol/feed", params) }] };
59
- });
60
- server.tool("madeonsol_kol_coordination", "Get KOL convergence signals tokens being accumulated by multiple KOLs simultaneously. Costs $0.02 USDC per request via x402.", {
61
- period: z.enum(["1h", "6h", "24h", "7d"]).default("24h").describe("Time period"),
62
- min_kols: z.number().min(2).max(50).default(3).describe("Minimum KOLs converging"),
63
- limit: z.number().min(1).max(50).default(20).describe("Number of results"),
64
- }, async ({ period, min_kols, limit }) => ({
65
- content: [{ type: "text", text: await query("/api/x402/kol/coordination", { period, min_kols, limit }) }],
66
- }));
67
- server.tool("madeonsol_kol_leaderboard", "Get KOL performance rankings by PnL and win rate. Costs $0.005 USDC per request via x402.", {
68
- period: z.enum(["today", "7d", "30d"]).default("7d").describe("Time period"),
69
- limit: z.number().min(1).max(50).default(20).describe("Number of KOLs"),
70
- }, async ({ period, limit }) => ({
71
- content: [{ type: "text", text: await query("/api/x402/kol/leaderboard", { period, limit }) }],
72
- }));
73
- server.tool("madeonsol_deployer_alerts", "Get real-time alerts from elite Pump.fun deployers with KOL buy enrichment. Costs $0.01 USDC per request via x402.", {
74
- limit: z.number().min(1).max(100).default(10).describe("Number of alerts"),
75
- offset: z.number().min(0).default(0).describe("Pagination offset"),
76
- }, async ({ limit, offset }) => ({
77
- content: [{ type: "text", text: await query("/api/x402/deployer-hunter/alerts", { limit, offset }) }],
78
- }));
79
- server.tool("madeonsol_discovery", "List all available MadeOnSol x402 API endpoints with prices and parameter docs. Free, no payment required.", {}, async () => {
80
- const res = await fetch(new URL("/api/x402", BASE_URL).toString());
81
- const data = await res.json();
82
- return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
83
- });
84
- async function main() {
85
- await initPayment();
86
- const transport = new StdioServerTransport();
87
- await server.connect(transport);
88
- }
89
- main().catch(console.error);
1
+ #!/usr/bin/env node
2
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
+ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
5
+ import { z } from "zod";
6
+ import { createServer } from "node:http";
7
+ const BASE_URL = process.env.MADEONSOL_API_URL || "https://madeonsol.com";
8
+ const PRIVATE_KEY = process.env.SVM_PRIVATE_KEY;
9
+ const PORT = parseInt(process.env.PORT || "3100", 10);
10
+ const MODE = process.env.MCP_TRANSPORT || "stdio"; // "stdio" or "http"
11
+ let paidFetch = fetch;
12
+ async function initPayment() {
13
+ if (!PRIVATE_KEY) {
14
+ console.error("[madeonsol-mcp] No SVM_PRIVATE_KEY tools will return 402 payment info");
15
+ return;
16
+ }
17
+ try {
18
+ const { wrapFetchWithPayment } = await import("@x402/fetch");
19
+ const { x402Client } = await import("@x402/core/client");
20
+ const { ExactSvmScheme } = await import("@x402/svm/exact/client");
21
+ const { createKeyPairSignerFromBytes } = await import("@solana/kit");
22
+ const { base58 } = await import("@scure/base");
23
+ const signer = await createKeyPairSignerFromBytes(base58.decode(PRIVATE_KEY));
24
+ const client = new x402Client();
25
+ client.register("solana:*", new ExactSvmScheme(signer));
26
+ paidFetch = wrapFetchWithPayment(fetch, client);
27
+ console.error(`[madeonsol-mcp] x402 payments enabled, wallet: ${signer.address}`);
28
+ }
29
+ catch (err) {
30
+ console.error("[madeonsol-mcp] x402 setup failed:", err);
31
+ }
32
+ }
33
+ async function query(path, params) {
34
+ const url = new URL(path, BASE_URL);
35
+ if (params) {
36
+ for (const [k, v] of Object.entries(params)) {
37
+ if (v !== undefined)
38
+ url.searchParams.set(k, String(v));
39
+ }
40
+ }
41
+ const res = await paidFetch(url.toString());
42
+ if (!res.ok) {
43
+ const body = await res.text().catch(() => "");
44
+ return `Error ${res.status}: ${body}`;
45
+ }
46
+ return JSON.stringify(await res.json(), null, 2);
47
+ }
48
+ function registerTools(server) {
49
+ const readOnlyAnnotations = { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true };
50
+ server.tool("madeonsol_kol_feed", "Get real-time Solana KOL trades from 946 tracked wallets. Costs $0.005 USDC per request via x402.", {
51
+ limit: z.number().min(1).max(100).default(10).describe("Number of trades to return (1-100)"),
52
+ action: z.enum(["buy", "sell"]).optional().describe("Filter by trade type: buy or sell"),
53
+ kol: z.string().optional().describe("Filter by specific KOL wallet address (base58)"),
54
+ }, readOnlyAnnotations, async ({ limit, action, kol }) => {
55
+ const params = { limit };
56
+ if (action)
57
+ params.action = action;
58
+ if (kol)
59
+ params.kol = kol;
60
+ return { content: [{ type: "text", text: await query("/api/x402/kol/feed", params) }] };
61
+ });
62
+ server.tool("madeonsol_kol_coordination", "Get KOL convergence signals — tokens being accumulated by multiple KOLs simultaneously. Costs $0.02 USDC per request via x402.", {
63
+ period: z.enum(["1h", "6h", "24h", "7d"]).default("24h").describe("Time period for coordination analysis"),
64
+ min_kols: z.number().min(2).max(50).default(3).describe("Minimum number of KOLs converging on the same token"),
65
+ limit: z.number().min(1).max(50).default(20).describe("Number of coordination signals to return"),
66
+ }, readOnlyAnnotations, async ({ period, min_kols, limit }) => ({
67
+ content: [{ type: "text", text: await query("/api/x402/kol/coordination", { period, min_kols, limit }) }],
68
+ }));
69
+ server.tool("madeonsol_kol_leaderboard", "Get KOL performance rankings by PnL and win rate. Costs $0.005 USDC per request via x402.", {
70
+ period: z.enum(["today", "7d", "30d"]).default("7d").describe("Time period for leaderboard: today, 7d, or 30d"),
71
+ limit: z.number().min(1).max(50).default(20).describe("Number of KOLs to return in ranking"),
72
+ }, readOnlyAnnotations, async ({ period, limit }) => ({
73
+ content: [{ type: "text", text: await query("/api/x402/kol/leaderboard", { period, limit }) }],
74
+ }));
75
+ server.tool("madeonsol_deployer_alerts", "Get real-time alerts from elite Pump.fun deployers with KOL buy enrichment. Costs $0.01 USDC per request via x402.", {
76
+ limit: z.number().min(1).max(100).default(10).describe("Number of deployer alerts to return (1-100)"),
77
+ offset: z.number().min(0).default(0).describe("Pagination offset for deployer alerts"),
78
+ }, readOnlyAnnotations, async ({ limit, offset }) => ({
79
+ content: [{ type: "text", text: await query("/api/x402/deployer-hunter/alerts", { limit, offset }) }],
80
+ }));
81
+ server.tool("madeonsol_discovery", "List all available MadeOnSol x402 API endpoints with prices and parameter docs. Free, no payment required.", {}, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }, async () => {
82
+ const res = await fetch(new URL("/api/x402", BASE_URL).toString());
83
+ const data = await res.json();
84
+ return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
85
+ });
86
+ // Prompts pre-built analysis templates
87
+ server.prompt("solana_kol_analysis", "Analyze current Solana KOL trading activity — what are smart money wallets buying and selling?", { period: z.string().default("24h").describe("Time period: 1h, 6h, 24h, or 7d") }, ({ period }) => ({
88
+ messages: [{
89
+ role: "user",
90
+ content: { type: "text", text: `Analyze Solana KOL activity for the last ${period}. First get the KOL feed for recent trades, then check the coordination signals to see what tokens multiple KOLs are converging on, and finally show the leaderboard to see who's performing best. Summarize the key trends.` },
91
+ }],
92
+ }));
93
+ server.prompt("deployer_scout", "Scout for new high-potential token launches from elite Pump.fun deployers", {}, () => ({
94
+ messages: [{
95
+ role: "user",
96
+ content: { type: "text", text: "Check the latest deployer alerts for new token launches from elite Pump.fun deployers. For each alert, note the deployer tier, bonding rate, and whether any KOLs have already bought in. Highlight the most promising launches." },
97
+ }],
98
+ }));
99
+ // Resources — static info about the API
100
+ server.resource("api-overview", "madeonsol://api-overview", { description: "MadeOnSol x402 API overview — endpoints, pricing, and how it works", mimeType: "application/json" }, async () => {
101
+ const res = await fetch(new URL("/api/x402", BASE_URL).toString());
102
+ const data = await res.json();
103
+ return { contents: [{ uri: "madeonsol://api-overview", text: JSON.stringify(data, null, 2), mimeType: "application/json" }] };
104
+ });
105
+ }
106
+ async function main() {
107
+ await initPayment();
108
+ if (MODE === "http") {
109
+ // HTTP transport for hosted environments (Smithery, etc.)
110
+ const httpServer = createServer();
111
+ const transports = new Map();
112
+ httpServer.on("request", async (req, res) => {
113
+ // Health check
114
+ if (req.method === "GET" && req.url === "/health") {
115
+ res.writeHead(200, { "Content-Type": "application/json" });
116
+ res.end(JSON.stringify({ status: "ok", server: "madeonsol-mcp" }));
117
+ return;
118
+ }
119
+ // Smithery server card for discovery
120
+ if (req.method === "GET" && req.url === "/.well-known/mcp/server-card.json") {
121
+ res.writeHead(200, { "Content-Type": "application/json" });
122
+ res.end(JSON.stringify({
123
+ name: "madeonsol",
124
+ description: "Solana KOL trading intelligence and deployer analytics via x402 micropayments. Real-time data from 946 KOL wallets and 4000+ Pump.fun deployers.",
125
+ version: "0.1.0",
126
+ tools: [
127
+ { name: "madeonsol_kol_feed", description: "Get real-time Solana KOL trades from 946 tracked wallets. $0.005 USDC/req." },
128
+ { name: "madeonsol_kol_coordination", description: "Get KOL convergence signals — tokens multiple KOLs are accumulating. $0.02 USDC/req." },
129
+ { name: "madeonsol_kol_leaderboard", description: "Get KOL performance rankings by PnL and win rate. $0.005 USDC/req." },
130
+ { name: "madeonsol_deployer_alerts", description: "Get elite Pump.fun deployer alerts with KOL enrichment. $0.01 USDC/req." },
131
+ { name: "madeonsol_discovery", description: "List all available endpoints with prices. Free." },
132
+ ],
133
+ homepage: "https://madeonsol.com/solana-api",
134
+ repository: "https://github.com/LamboPoewert/mcp-server-madeonsol",
135
+ }));
136
+ return;
137
+ }
138
+ // MCP endpoint
139
+ const sessionId = req.headers["mcp-session-id"];
140
+ {
141
+ if (req.method === "POST") {
142
+ let transport = sessionId ? transports.get(sessionId) : undefined;
143
+ if (!transport) {
144
+ transport = new StreamableHTTPServerTransport({
145
+ sessionIdGenerator: undefined,
146
+ });
147
+ const server = new McpServer({ name: "madeonsol", version: "0.1.0" });
148
+ registerTools(server);
149
+ await server.connect(transport);
150
+ }
151
+ await transport.handleRequest(req, res);
152
+ return;
153
+ }
154
+ if (req.method === "GET" && sessionId) {
155
+ const transport = transports.get(sessionId);
156
+ if (transport) {
157
+ await transport.handleRequest(req, res);
158
+ return;
159
+ }
160
+ }
161
+ if (req.method === "DELETE" && sessionId) {
162
+ const transport = transports.get(sessionId);
163
+ if (transport) {
164
+ await transport.handleRequest(req, res);
165
+ transports.delete(sessionId);
166
+ return;
167
+ }
168
+ }
169
+ }
170
+ res.writeHead(404);
171
+ res.end("Not found");
172
+ });
173
+ httpServer.listen(PORT, () => {
174
+ console.error(`[madeonsol-mcp] HTTP server listening on port ${PORT}`);
175
+ });
176
+ }
177
+ else {
178
+ // Stdio transport for local use (Claude Desktop, Cursor, Claude Code)
179
+ const server = new McpServer({ name: "madeonsol", version: "0.1.0" });
180
+ registerTools(server);
181
+ const transport = new StdioServerTransport();
182
+ await server.connect(transport);
183
+ }
184
+ }
185
+ main().catch(console.error);
package/glama.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "mcp-server-madeonsol",
3
+ "display_name": "MadeOnSol",
4
+ "description": "Solana KOL trading intelligence and deployer analytics via x402 micropayments. Real-time data from 946 KOL wallets and 4000+ Pump.fun deployers.",
5
+ "version": "0.1.0",
6
+ "homepage": "https://madeonsol.com/solana-api",
7
+ "repository": "https://github.com/LamboPoewert/mcp-server-madeonsol",
8
+ "license": "MIT",
9
+ "categories": ["blockchain", "finance", "web3"],
10
+ "tags": ["solana", "kol", "trading", "x402", "micropayments", "defi"],
11
+ "tools": [
12
+ {
13
+ "name": "madeonsol_kol_feed",
14
+ "description": "Get real-time Solana KOL trades from 946 tracked wallets. $0.005 USDC/req."
15
+ },
16
+ {
17
+ "name": "madeonsol_kol_coordination",
18
+ "description": "Get KOL convergence signals — tokens multiple KOLs are accumulating. $0.02 USDC/req."
19
+ },
20
+ {
21
+ "name": "madeonsol_kol_leaderboard",
22
+ "description": "Get KOL performance rankings by PnL and win rate. $0.005 USDC/req."
23
+ },
24
+ {
25
+ "name": "madeonsol_deployer_alerts",
26
+ "description": "Get elite Pump.fun deployer alerts with KOL enrichment. $0.01 USDC/req."
27
+ },
28
+ {
29
+ "name": "madeonsol_discovery",
30
+ "description": "List all available endpoints with prices. Free."
31
+ }
32
+ ],
33
+ "transports": ["stdio", "http"],
34
+ "runtime": "node"
35
+ }
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "mcp-server-madeonsol",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
+ "mcpName": "io.github.lambopoewert/madeonsol",
4
5
  "description": "MCP server for MadeOnSol Solana KOL intelligence API — use from Claude, Cursor, or any MCP client",
5
6
  "type": "module",
6
7
  "bin": {
7
8
  "mcp-server-madeonsol": "dist/index.js"
8
9
  },
9
10
  "main": "dist/index.js",
10
- "files": ["dist", "README.md"],
11
+ "files": ["dist", "README.md", "LICENSE", "glama.json"],
11
12
  "scripts": {
12
13
  "build": "tsc",
13
14
  "prepublishOnly": ""