@gala-chain/launchpad-mcp-server 1.1.0 → 1.1.2
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/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,29 @@ All notable changes to the Gala Launchpad MCP Server will be documented in this
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.1.2] - 2025-09-30
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **postComment tool schema** - Fixed input schema validation to accept MCP content blocks
|
|
12
|
+
- Schema now accepts both string and MCP content blocks array format
|
|
13
|
+
- Uses JSON Schema `oneOf` to support both input formats
|
|
14
|
+
- Resolves validation error when MCP protocol sends content as `[{type: "text", text: "..."}]`
|
|
15
|
+
- Handler already supported both formats, now schema matches
|
|
16
|
+
|
|
17
|
+
## [1.1.1] - 2025-09-30
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
- **postComment tool** - Fixed content format handling for MCP protocol
|
|
21
|
+
- Now correctly extracts text from MCP content blocks array
|
|
22
|
+
- Handles both direct string and MCP content blocks format
|
|
23
|
+
- Fixes "validation error" when posting comments
|
|
24
|
+
- **SDK dependency** - Updated to ^3.2.0 to include getUrlByTokenName method
|
|
25
|
+
- Fixes "method not found" error on getUrlByTokenName tool
|
|
26
|
+
- Ensures all 28 MCP tools are functional
|
|
27
|
+
|
|
28
|
+
### Dependencies
|
|
29
|
+
- Updated `@gala-chain/launchpad-sdk` from ^3.1.0 to ^3.2.0
|
|
30
|
+
|
|
8
31
|
## [1.1.0] - 2025-09-30
|
|
9
32
|
|
|
10
33
|
### Added
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/social/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAKlD,eAAO,MAAM,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/social/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAKlD,eAAO,MAAM,eAAe,EAAE,OA0D7B,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,OAiC/B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,OAAO,EAAyC,CAAC"}
|
|
@@ -19,17 +19,49 @@ exports.postCommentTool = {
|
|
|
19
19
|
description: 'Token name',
|
|
20
20
|
},
|
|
21
21
|
content: {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
oneOf: [
|
|
23
|
+
{
|
|
24
|
+
type: 'string',
|
|
25
|
+
maxLength: 500,
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
type: 'array',
|
|
29
|
+
items: {
|
|
30
|
+
type: 'object',
|
|
31
|
+
properties: {
|
|
32
|
+
type: { type: 'string' },
|
|
33
|
+
text: { type: 'string', maxLength: 500 },
|
|
34
|
+
},
|
|
35
|
+
required: ['type', 'text'],
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
description: 'Comment content (string or MCP content blocks array)',
|
|
25
40
|
},
|
|
26
41
|
},
|
|
27
42
|
required: ['tokenName', 'content'],
|
|
28
43
|
},
|
|
29
44
|
handler: (0, error_handler_js_1.withErrorHandling)(async (sdk, args) => {
|
|
45
|
+
// Extract text from MCP content blocks format
|
|
46
|
+
let contentText;
|
|
47
|
+
if (typeof args.content === 'string') {
|
|
48
|
+
// Direct string (fallback for backward compatibility)
|
|
49
|
+
contentText = args.content;
|
|
50
|
+
}
|
|
51
|
+
else if (Array.isArray(args.content) && args.content.length > 0) {
|
|
52
|
+
// MCP content blocks format: [{ type: "text", text: "..." }]
|
|
53
|
+
const textBlock = args.content.find((block) => block.type === 'text');
|
|
54
|
+
if (!textBlock || !textBlock.text) {
|
|
55
|
+
throw new Error('No text content found in content blocks');
|
|
56
|
+
}
|
|
57
|
+
contentText = textBlock.text;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
throw new Error('Invalid content format - expected string or MCP content blocks array');
|
|
61
|
+
}
|
|
30
62
|
const result = await sdk.postComment({
|
|
31
63
|
tokenName: args.tokenName,
|
|
32
|
-
content:
|
|
64
|
+
content: contentText,
|
|
33
65
|
});
|
|
34
66
|
return (0, response_formatter_js_1.formatSuccess)(result);
|
|
35
67
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/social/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,6EAAkE;AAClE,mEAAiE;AAEjE,kBAAkB;AACL,QAAA,eAAe,GAAY;IACtC,IAAI,EAAE,6BAA6B;IACnC,WAAW,EAAE,gCAAgC;IAC7C,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,oBAAoB;gBAC7B,WAAW,EAAE,YAAY;aAC1B;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/social/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gala-chain/launchpad-mcp-server",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "MCP server for Gala Launchpad SDK with 28 tools - AI agents can interact with Gala Launchpad",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"registry": "https://registry.npmjs.org/"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@gala-chain/launchpad-sdk": "^3.
|
|
59
|
+
"@gala-chain/launchpad-sdk": "^3.2.0",
|
|
60
60
|
"@modelcontextprotocol/sdk": "^0.5.0"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|