mirror of
https://github.com/samanhappy/mcphub.git
synced 2026-01-01 04:08:52 -05:00
Fix URL routing for MCP servers with slashes in names (#396)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: samanhappy <2755122+samanhappy@users.noreply.github.com>
This commit is contained in:
@@ -225,13 +225,22 @@ export async function generateOpenAPISpec(
|
||||
|
||||
// Generate paths from tools
|
||||
const paths: OpenAPIV3.PathsObject = {};
|
||||
const separator = getNameSeparator();
|
||||
|
||||
for (const { tool, serverName } of allTools) {
|
||||
const operation = generateOperationFromTool(tool, serverName);
|
||||
const { requestBody } = convertToolSchemaToOpenAPI(tool);
|
||||
|
||||
// Create path for the tool
|
||||
const pathName = `/tools/${serverName}/${tool.name}`;
|
||||
// Extract the tool name without server prefix
|
||||
// Tool names are in format: serverName + separator + toolName
|
||||
const prefix = `${serverName}${separator}`;
|
||||
const toolNameOnly = tool.name.startsWith(prefix)
|
||||
? tool.name.substring(prefix.length)
|
||||
: tool.name;
|
||||
|
||||
// Create path for the tool with URL-encoded server and tool names
|
||||
// This handles cases where names contain slashes (e.g., "com.atlassian/atlassian-mcp-server")
|
||||
const pathName = `/tools/${encodeURIComponent(serverName)}/${encodeURIComponent(toolNameOnly)}`;
|
||||
const method = requestBody ? 'post' : 'get';
|
||||
|
||||
if (!paths[pathName]) {
|
||||
|
||||
Reference in New Issue
Block a user