krs-poland-mcp-server 1.1.2 → 1.2.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/build/index.mjs +30 -11
- package/package.json +1 -1
package/build/index.mjs
CHANGED
|
@@ -4060,10 +4060,17 @@ function buildExtractUrl(opts) {
|
|
|
4060
4060
|
const { type, rejestr, krs } = opts;
|
|
4061
4061
|
return `${KRS_API_BASE}/${type}/${krs}?rejestr=${rejestr}&format=json`;
|
|
4062
4062
|
}
|
|
4063
|
+
function buildExtractUrlPath(opts) {
|
|
4064
|
+
const { type, rejestr, krs } = opts;
|
|
4065
|
+
return `${KRS_API_BASE}/${type}/${rejestr}/${krs}?format=json`;
|
|
4066
|
+
}
|
|
4067
|
+
function buildExtractUrls(opts) {
|
|
4068
|
+
return [buildExtractUrlPath(opts), buildExtractUrl(opts)];
|
|
4069
|
+
}
|
|
4063
4070
|
function sleep(ms) {
|
|
4064
4071
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
4065
4072
|
}
|
|
4066
|
-
async function
|
|
4073
|
+
async function makeKRSRequestSingle(url, logFailure) {
|
|
4067
4074
|
const headers = { Accept: "application/json", "User-Agent": USER_AGENT };
|
|
4068
4075
|
const maxAttempts = RETRY_DELAYS_MS.length + 1;
|
|
4069
4076
|
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
@@ -4075,7 +4082,9 @@ async function makeKRSRequest(url) {
|
|
|
4075
4082
|
return await res.json();
|
|
4076
4083
|
} catch (err) {
|
|
4077
4084
|
if (attempt === maxAttempts - 1) {
|
|
4078
|
-
|
|
4085
|
+
if (logFailure) {
|
|
4086
|
+
console.error("KRS request error:", err);
|
|
4087
|
+
}
|
|
4079
4088
|
return null;
|
|
4080
4089
|
}
|
|
4081
4090
|
console.error("KRS request error (will retry):", err);
|
|
@@ -4087,6 +4096,16 @@ async function makeKRSRequest(url) {
|
|
|
4087
4096
|
}
|
|
4088
4097
|
return null;
|
|
4089
4098
|
}
|
|
4099
|
+
async function makeKRSRequest(urlOrUrls) {
|
|
4100
|
+
const urls = Array.isArray(urlOrUrls) ? urlOrUrls : [urlOrUrls];
|
|
4101
|
+
for (let index = 0; index < urls.length; index++) {
|
|
4102
|
+
const url = urls[index];
|
|
4103
|
+
const logFailure = index === urls.length - 1;
|
|
4104
|
+
const result = await makeKRSRequestSingle(url, logFailure);
|
|
4105
|
+
if (result) return result;
|
|
4106
|
+
}
|
|
4107
|
+
return null;
|
|
4108
|
+
}
|
|
4090
4109
|
|
|
4091
4110
|
// src/utils/format.ts
|
|
4092
4111
|
function formatCompanyHeadline(extract) {
|
|
@@ -4103,10 +4122,10 @@ var getKrsCurrentExtractTool = {
|
|
|
4103
4122
|
krs: external_exports.string().regex(/^[0]\d{9}$/, "Numer KRS powinien mie\u0107 10 cyfr").describe("Numer KRS (10 cyfr)"),
|
|
4104
4123
|
rejestr: external_exports.string().length(1, "Rejestr musi by\u0107 pojedynczym znakiem: P lub S").regex(/^[pPsS]$/, "Rejestr musi by\u0107 liter\u0105 P lub S (wielko\u015B\u0107 liter bez znaczenia)").transform((val) => val.toUpperCase()).describe("Rejestr: P \u2013 przedsi\u0119biorc\xF3w, S \u2013 stowarzysze\u0144 (P/S, wielko\u015B\u0107 liter bez znaczenia)")
|
|
4105
4124
|
},
|
|
4106
|
-
handler: async (args
|
|
4125
|
+
handler: async (args) => {
|
|
4107
4126
|
const { krs, rejestr } = args;
|
|
4108
|
-
const
|
|
4109
|
-
const extract = await makeKRSRequest(
|
|
4127
|
+
const urls = buildExtractUrls({ type: "OdpisAktualny", rejestr, krs });
|
|
4128
|
+
const extract = await makeKRSRequest(urls);
|
|
4110
4129
|
if (!extract) {
|
|
4111
4130
|
return {
|
|
4112
4131
|
content: [
|
|
@@ -4142,10 +4161,10 @@ var getKrsFullExtractTool = {
|
|
|
4142
4161
|
krs: external_exports.string().regex(/^[0]\d{9}$/, "Numer KRS powinien mie\u0107 10 cyfr").describe("Numer KRS (10 cyfr)"),
|
|
4143
4162
|
rejestr: external_exports.string().length(1, "Rejestr musi by\u0107 pojedynczym znakiem: P lub S").regex(/^[pPsS]$/, "Rejestr musi by\u0107 liter\u0105 P lub S (wielko\u015B\u0107 liter bez znaczenia)").transform((val) => val.toUpperCase()).describe("Rejestr: P \u2013 przedsi\u0119biorc\xF3w, S \u2013 stowarzysze\u0144 (P/S, wielko\u015B\u0107 liter bez znaczenia)")
|
|
4144
4163
|
},
|
|
4145
|
-
handler: async (args
|
|
4164
|
+
handler: async (args) => {
|
|
4146
4165
|
const { krs, rejestr } = args;
|
|
4147
|
-
const
|
|
4148
|
-
const extract = await makeKRSRequest(
|
|
4166
|
+
const urls = buildExtractUrls({ type: "OdpisPelny", rejestr, krs });
|
|
4167
|
+
const extract = await makeKRSRequest(urls);
|
|
4149
4168
|
if (!extract) {
|
|
4150
4169
|
return {
|
|
4151
4170
|
content: [
|
|
@@ -4177,7 +4196,7 @@ ${JSON.stringify(extract, null, 2)}`,
|
|
|
4177
4196
|
// src/server.ts
|
|
4178
4197
|
var server = new McpServer({
|
|
4179
4198
|
name: "KRS Poland MCP Server",
|
|
4180
|
-
version: "1.0
|
|
4199
|
+
version: "1.2.0"
|
|
4181
4200
|
});
|
|
4182
4201
|
server.registerTool(
|
|
4183
4202
|
"Get_Current_KRS_Record",
|
|
@@ -4186,7 +4205,7 @@ server.registerTool(
|
|
|
4186
4205
|
description: "Get current status of the entity in KRS",
|
|
4187
4206
|
inputSchema: getKrsCurrentExtractTool.schema
|
|
4188
4207
|
},
|
|
4189
|
-
(params
|
|
4208
|
+
(params) => getKrsCurrentExtractTool.handler(params)
|
|
4190
4209
|
);
|
|
4191
4210
|
server.registerTool(
|
|
4192
4211
|
"Get_Full_KRS_Record",
|
|
@@ -4195,7 +4214,7 @@ server.registerTool(
|
|
|
4195
4214
|
description: "Get full status of the entity in KRS",
|
|
4196
4215
|
inputSchema: getKrsFullExtractTool.schema
|
|
4197
4216
|
},
|
|
4198
|
-
(params
|
|
4217
|
+
(params) => getKrsFullExtractTool.handler(params)
|
|
4199
4218
|
);
|
|
4200
4219
|
|
|
4201
4220
|
// src/index.ts
|
package/package.json
CHANGED