Skip to content

Commit 0ca1310

Browse files
committed
perf: remove the lowercase transfer to make toolName readable
1 parent aa38803 commit 0ca1310

2 files changed

Lines changed: 73 additions & 71 deletions

File tree

package.json

Lines changed: 65 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,67 @@
11
{
2-
"name": "openapi-mcp-generator",
3-
"version": "3.1.3",
4-
"description": "Generates MCP server code from OpenAPI specifications",
5-
"license": "MIT",
6-
"author": "Harsha",
7-
"type": "module",
8-
"engines": {
9-
"node": ">=20.0.0"
10-
},
11-
"bin": {
12-
"openapi-mcp-generator": "./bin/openapi-mcp-generator.js"
13-
},
14-
"main": "dist/index.js",
15-
"files": [
16-
"dist",
17-
"bin",
18-
"README.md",
19-
"LICENSE"
20-
],
21-
"types": "./dist/index.d.ts",
22-
"scripts": {
23-
"start": "node dist/index.js",
24-
"clean": "rimraf dist",
25-
"typecheck": "tsc --noEmit",
26-
"build": "tsc && chmod 755 dist/index.js && chmod 755 bin/openapi-mcp-generator.js",
27-
"version:patch": "npm version patch",
28-
"version:minor": "npm version minor",
29-
"version:major": "npm version major"
30-
},
31-
"keywords": [
32-
"openapi",
33-
"mcp",
34-
"model-context-protocol",
35-
"generator",
36-
"llm",
37-
"ai",
38-
"api"
39-
],
40-
"repository": {
41-
"type": "git",
42-
"url": "git+https://github.com/harsha-iiiv/openapi-mcp-generator.git"
43-
},
44-
"bugs": {
45-
"url": "https://github.com/harsha-iiiv/openapi-mcp-generator/issues"
46-
},
47-
"homepage": "https://github.com/harsha-iiiv/openapi-mcp-generator#readme",
48-
"dependencies": {
49-
"@apidevtools/swagger-parser": "^10.1.1",
50-
"commander": "^13.1.0",
51-
"openapi-types": "^12.1.3"
52-
},
53-
"devDependencies": {
54-
"@types/node": "^22.15.2",
55-
"@typescript-eslint/eslint-plugin": "^8.31.0",
56-
"@typescript-eslint/parser": "^8.31.0",
57-
"eslint": "^9.25.1",
58-
"prettier": "^3.5.3",
59-
"rimraf": "^6.0.1",
60-
"typescript": "^5.8.3"
61-
},
62-
"peerDependencies": {
63-
"@modelcontextprotocol/sdk": "^1.10.0",
64-
"json-schema-to-zod": "^2.6.1",
65-
"zod": "^3.24.3"
66-
}
2+
"name": "openapi-mcp-generator",
3+
"version": "3.1.4",
4+
"description": "Generates MCP server code from OpenAPI specifications",
5+
"license": "MIT",
6+
"author": "Harsha",
7+
"type": "module",
8+
"engines": {
9+
"node": ">=20.0.0"
10+
},
11+
"bin": {
12+
"openapi-mcp-generator": "./bin/openapi-mcp-generator.js"
13+
},
14+
"main": "dist/index.js",
15+
"files": [
16+
"dist",
17+
"bin",
18+
"README.md",
19+
"LICENSE"
20+
],
21+
"types": "./dist/index.d.ts",
22+
"scripts": {
23+
"start": "node dist/index.js",
24+
"clean": "rimraf dist",
25+
"typecheck": "tsc --noEmit",
26+
"build": "tsc && chmod 755 dist/index.js && chmod 755 bin/openapi-mcp-generator.js",
27+
"version:patch": "npm version patch",
28+
"version:minor": "npm version minor",
29+
"version:major": "npm version major"
30+
},
31+
"keywords": [
32+
"openapi",
33+
"mcp",
34+
"model-context-protocol",
35+
"generator",
36+
"llm",
37+
"ai",
38+
"api"
39+
],
40+
"repository": {
41+
"type": "git",
42+
"url": "git+https://github.com/harsha-iiiv/openapi-mcp-generator.git"
43+
},
44+
"bugs": {
45+
"url": "https://github.com/harsha-iiiv/openapi-mcp-generator/issues"
46+
},
47+
"homepage": "https://github.com/harsha-iiiv/openapi-mcp-generator#readme",
48+
"dependencies": {
49+
"@apidevtools/swagger-parser": "^10.1.1",
50+
"commander": "^13.1.0",
51+
"openapi-types": "^12.1.3"
52+
},
53+
"devDependencies": {
54+
"@types/node": "^22.15.2",
55+
"@typescript-eslint/eslint-plugin": "^8.31.0",
56+
"@typescript-eslint/parser": "^8.31.0",
57+
"eslint": "^9.25.1",
58+
"prettier": "^3.5.3",
59+
"rimraf": "^6.0.1",
60+
"typescript": "^5.8.3"
61+
},
62+
"peerDependencies": {
63+
"@modelcontextprotocol/sdk": "^1.10.0",
64+
"json-schema-to-zod": "^2.6.1",
65+
"zod": "^3.24.3"
66+
}
6767
}

src/parser/extract-tools.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,7 @@ export function extractToolsFromApi(api: OpenAPIV3.Document): McpToolDefinition[
3131
if (!baseName) continue;
3232

3333
// Sanitize the name to be MCP-compatible (only a-z, 0-9, _, -)
34-
baseName = baseName
35-
.replace(/\./g, '_')
36-
.replace(/[^a-z0-9_-]/gi, '_')
37-
.toLowerCase();
34+
baseName = baseName.replace(/\./g, '_').replace(/[^a-z0-9_-]/gi, '_');
3835

3936
let finalToolName = baseName;
4037
let counter = 1;
@@ -174,7 +171,9 @@ export function mapOpenApiSchemaToJsonSchema(
174171

175172
// Detect cycles
176173
if (seen.has(schema)) {
177-
console.warn(`Cycle detected in schema${schema.title ? ` "${schema.title}"` : ''}, returning generic object to break recursion.`);
174+
console.warn(
175+
`Cycle detected in schema${schema.title ? ` "${schema.title}"` : ''}, returning generic object to break recursion.`
176+
);
178177
return { type: 'object' };
179178
}
180179
seen.add(schema);
@@ -212,7 +211,10 @@ export function mapOpenApiSchemaToJsonSchema(
212211

213212
for (const [key, propSchema] of Object.entries(jsonSchema.properties)) {
214213
if (typeof propSchema === 'object' && propSchema !== null) {
215-
mappedProps[key] = mapOpenApiSchemaToJsonSchema(propSchema as OpenAPIV3.SchemaObject, seen);
214+
mappedProps[key] = mapOpenApiSchemaToJsonSchema(
215+
propSchema as OpenAPIV3.SchemaObject,
216+
seen
217+
);
216218
} else if (typeof propSchema === 'boolean') {
217219
mappedProps[key] = propSchema;
218220
}

0 commit comments

Comments
 (0)