@rynko/mcp-server 1.0.4 → 1.0.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/dist/client.js +1 -5
- package/dist/client.js.map +1 -1
- package/dist/index.js +51 -40
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
package/dist/client.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Rynko API Client
|
|
4
3
|
*
|
|
5
4
|
* HTTP client for communicating with the Rynko MCP Documents API.
|
|
6
5
|
*/
|
|
7
|
-
|
|
8
|
-
exports.RynkoClient = void 0;
|
|
9
|
-
class RynkoClient {
|
|
6
|
+
export class RynkoClient {
|
|
10
7
|
baseUrl;
|
|
11
8
|
token;
|
|
12
9
|
constructor(token, baseUrl) {
|
|
@@ -67,5 +64,4 @@ class RynkoClient {
|
|
|
67
64
|
return response.json();
|
|
68
65
|
}
|
|
69
66
|
}
|
|
70
|
-
exports.RynkoClient = RynkoClient;
|
|
71
67
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiCH,MAAM,OAAO,WAAW;IACL,OAAO,CAAS;IAChB,KAAK,CAAS;IAE/B,YAAY,KAAa,EAAE,OAAgB;QACzC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,2BAA2B,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAa,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC,KAAK,EACL,sBAAsB,CACvB,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CACZ,IAAY,EACZ,IAA6B;QAE7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC,MAAM,EACN,2BAA2B,EAC3B,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAC1B,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CACnB,MAAyC,EACzC,IAAY,EACZ,IAAc;QAEd,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QAErC,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;YACrC,YAAY,EAAE,yBAAyB;SACxC,CAAC;QAEF,MAAM,OAAO,GAAgB;YAC3B,MAAM;YACN,OAAO;SACR,CAAC;QAEF,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE3C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,YAAoB,CAAC;YAEzB,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACxC,YAAY,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC;YACnE,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY,GAAG,SAAS,IAAI,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;YACxD,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,oBAAoB,YAAY,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;IACvC,CAAC;CACF"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
2
|
/**
|
|
4
3
|
* Rynko MCP Server
|
|
5
4
|
*
|
|
@@ -23,45 +22,51 @@
|
|
|
23
22
|
* }
|
|
24
23
|
* }
|
|
25
24
|
*/
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
26
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
27
|
+
import { CallToolRequestSchema, ListToolsRequestSchema, ErrorCode, McpError, } from '@modelcontextprotocol/sdk/types.js';
|
|
28
|
+
import { RynkoClient } from './client.js';
|
|
29
|
+
// Log to stderr so it appears in Claude Desktop logs
|
|
30
|
+
function log(message) {
|
|
31
|
+
console.error(`[rynko-mcp] ${message}`);
|
|
32
|
+
}
|
|
31
33
|
// Get configuration from environment
|
|
32
34
|
const RYNKO_USER_TOKEN = process.env.RYNKO_USER_TOKEN;
|
|
33
35
|
const RYNKO_API_URL = process.env.RYNKO_API_URL;
|
|
36
|
+
log(`Starting Rynko MCP Server...`);
|
|
37
|
+
log(`Token present: ${!!RYNKO_USER_TOKEN}`);
|
|
38
|
+
log(`API URL: ${RYNKO_API_URL || 'https://api.rynko.dev/api (default)'}`);
|
|
34
39
|
// Validate token
|
|
35
40
|
if (!RYNKO_USER_TOKEN) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
console.error(' Settings → Personal Access Tokens → Create Token');
|
|
40
|
-
console.error('');
|
|
41
|
-
console.error('Then set it in your environment or Claude Desktop config.');
|
|
41
|
+
log('ERROR: RYNKO_USER_TOKEN environment variable is required');
|
|
42
|
+
log('Get a Personal Access Token from your Rynko dashboard:');
|
|
43
|
+
log(' Settings → Personal Access Tokens → Create Token');
|
|
42
44
|
process.exit(1);
|
|
43
45
|
}
|
|
44
46
|
if (!RYNKO_USER_TOKEN.startsWith('pat_')) {
|
|
45
|
-
|
|
47
|
+
log('ERROR: Invalid token format. Token must start with "pat_"');
|
|
46
48
|
process.exit(1);
|
|
47
49
|
}
|
|
48
50
|
// Initialize API client
|
|
49
|
-
const client = new
|
|
51
|
+
const client = new RynkoClient(RYNKO_USER_TOKEN, RYNKO_API_URL);
|
|
50
52
|
// Create MCP server
|
|
51
|
-
const server = new
|
|
53
|
+
const server = new Server({
|
|
52
54
|
name: 'rynko-mcp',
|
|
53
|
-
version: '1.0.
|
|
55
|
+
version: '1.0.6',
|
|
54
56
|
}, {
|
|
55
57
|
capabilities: {
|
|
56
58
|
tools: {},
|
|
57
59
|
},
|
|
58
60
|
});
|
|
61
|
+
log('Server instance created');
|
|
59
62
|
/**
|
|
60
63
|
* Handle list tools request
|
|
61
64
|
*/
|
|
62
|
-
server.setRequestHandler(
|
|
65
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
66
|
+
log('Handling ListTools request');
|
|
63
67
|
try {
|
|
64
68
|
const { tools } = await client.listTools();
|
|
69
|
+
log(`Returning ${tools.length} tools`);
|
|
65
70
|
return {
|
|
66
71
|
tools: tools.map((tool) => ({
|
|
67
72
|
name: tool.name,
|
|
@@ -72,16 +77,19 @@ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
|
|
|
72
77
|
}
|
|
73
78
|
catch (error) {
|
|
74
79
|
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
75
|
-
|
|
80
|
+
log(`ERROR in ListTools: ${message}`);
|
|
81
|
+
throw new McpError(ErrorCode.InternalError, `Failed to list tools: ${message}`);
|
|
76
82
|
}
|
|
77
83
|
});
|
|
78
84
|
/**
|
|
79
85
|
* Handle tool call request
|
|
80
86
|
*/
|
|
81
|
-
server.setRequestHandler(
|
|
87
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
82
88
|
const { name, arguments: args } = request.params;
|
|
89
|
+
log(`Handling CallTool request: ${name}`);
|
|
83
90
|
try {
|
|
84
91
|
const result = await client.callTool(name, args || {});
|
|
92
|
+
log(`Tool ${name} completed successfully`);
|
|
85
93
|
// Convert response to MCP format
|
|
86
94
|
return {
|
|
87
95
|
content: result.content.map((item) => {
|
|
@@ -109,6 +117,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
|
109
117
|
}
|
|
110
118
|
catch (error) {
|
|
111
119
|
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
120
|
+
log(`ERROR in CallTool ${name}: ${message}`);
|
|
112
121
|
return {
|
|
113
122
|
content: [
|
|
114
123
|
{
|
|
@@ -124,35 +133,37 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
|
124
133
|
* Main entry point
|
|
125
134
|
*/
|
|
126
135
|
async function main() {
|
|
127
|
-
|
|
136
|
+
log('Starting main()...');
|
|
128
137
|
try {
|
|
129
|
-
|
|
138
|
+
// Start the server with stdio transport immediately
|
|
139
|
+
// Don't verify API connection upfront - let it fail gracefully when tools are called
|
|
140
|
+
const transport = new StdioServerTransport();
|
|
141
|
+
log('Transport created, connecting...');
|
|
142
|
+
await server.connect(transport);
|
|
143
|
+
log('Server connected to transport successfully');
|
|
144
|
+
// Handle graceful shutdown
|
|
145
|
+
process.on('SIGINT', async () => {
|
|
146
|
+
log('Received SIGINT, shutting down...');
|
|
147
|
+
await server.close();
|
|
148
|
+
process.exit(0);
|
|
149
|
+
});
|
|
150
|
+
process.on('SIGTERM', async () => {
|
|
151
|
+
log('Received SIGTERM, shutting down...');
|
|
152
|
+
await server.close();
|
|
153
|
+
process.exit(0);
|
|
154
|
+
});
|
|
130
155
|
}
|
|
131
156
|
catch (error) {
|
|
132
157
|
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
console.error(' 2. You have network connectivity');
|
|
138
|
-
console.error(' 3. The Rynko API is accessible');
|
|
158
|
+
log(`FATAL ERROR in main(): ${message}`);
|
|
159
|
+
if (error instanceof Error && error.stack) {
|
|
160
|
+
log(error.stack);
|
|
161
|
+
}
|
|
139
162
|
process.exit(1);
|
|
140
163
|
}
|
|
141
|
-
// Start the server with stdio transport
|
|
142
|
-
const transport = new stdio_js_1.StdioServerTransport();
|
|
143
|
-
await server.connect(transport);
|
|
144
|
-
// Handle graceful shutdown
|
|
145
|
-
process.on('SIGINT', async () => {
|
|
146
|
-
await server.close();
|
|
147
|
-
process.exit(0);
|
|
148
|
-
});
|
|
149
|
-
process.on('SIGTERM', async () => {
|
|
150
|
-
await server.close();
|
|
151
|
-
process.exit(0);
|
|
152
|
-
});
|
|
153
164
|
}
|
|
154
165
|
main().catch((error) => {
|
|
155
|
-
|
|
166
|
+
log(`FATAL: Unhandled error: ${error}`);
|
|
156
167
|
process.exit(1);
|
|
157
168
|
});
|
|
158
169
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED