From b492a137021ced3de205ef79bd9c470f16b77fef Mon Sep 17 00:00:00 2001 From: lmiranda Date: Wed, 28 Jan 2026 22:17:19 -0500 Subject: [PATCH] fix(gitea-mcp): accept string or integer for numeric params MCP library validates schema BEFORE call_tool handler runs, so our _coerce_types function never gets a chance to convert strings. Changed all integer fields to accept both types: - issue_number, milestone_id, pr_number, depends_on, milestone, limit, position This fixes: "Input validation error: '312' is not of type 'integer'" Co-Authored-By: Claude Opus 4.5 --- mcp-servers/gitea/mcp_server/server.py | 38 +++++++++++++------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/mcp-servers/gitea/mcp_server/server.py b/mcp-servers/gitea/mcp_server/server.py index 263d2c3..70d06a4 100644 --- a/mcp-servers/gitea/mcp_server/server.py +++ b/mcp-servers/gitea/mcp_server/server.py @@ -144,7 +144,7 @@ class GiteaMCPServer: "type": "object", "properties": { "issue_number": { - "type": "integer", + "type": ["integer", "string"], "description": "Issue number" }, "repo": { @@ -189,7 +189,7 @@ class GiteaMCPServer: "type": "object", "properties": { "issue_number": { - "type": "integer", + "type": ["integer", "string"], "description": "Issue number" }, "title": { @@ -211,7 +211,7 @@ class GiteaMCPServer: "description": "New labels" }, "milestone": { - "type": "integer", + "type": ["integer", "string"], "description": "Milestone ID to assign" }, "repo": { @@ -229,7 +229,7 @@ class GiteaMCPServer: "type": "object", "properties": { "issue_number": { - "type": "integer", + "type": ["integer", "string"], "description": "Issue number" }, "comment": { @@ -424,7 +424,7 @@ class GiteaMCPServer: "description": "Tags to filter by (optional)" }, "limit": { - "type": "integer", + "type": ["integer", "string"], "default": 20, "description": "Maximum results" }, @@ -462,7 +462,7 @@ class GiteaMCPServer: "type": "object", "properties": { "milestone_id": { - "type": "integer", + "type": ["integer", "string"], "description": "Milestone ID" }, "repo": { @@ -506,7 +506,7 @@ class GiteaMCPServer: "type": "object", "properties": { "milestone_id": { - "type": "integer", + "type": ["integer", "string"], "description": "Milestone ID" }, "title": { @@ -541,7 +541,7 @@ class GiteaMCPServer: "type": "object", "properties": { "milestone_id": { - "type": "integer", + "type": ["integer", "string"], "description": "Milestone ID" }, "repo": { @@ -560,7 +560,7 @@ class GiteaMCPServer: "type": "object", "properties": { "issue_number": { - "type": "integer", + "type": ["integer", "string"], "description": "Issue number" }, "repo": { @@ -578,11 +578,11 @@ class GiteaMCPServer: "type": "object", "properties": { "issue_number": { - "type": "integer", + "type": ["integer", "string"], "description": "Issue that will depend on another" }, "depends_on": { - "type": "integer", + "type": ["integer", "string"], "description": "Issue that blocks issue_number" }, "repo": { @@ -600,11 +600,11 @@ class GiteaMCPServer: "type": "object", "properties": { "issue_number": { - "type": "integer", + "type": ["integer", "string"], "description": "Issue that depends on another" }, "depends_on": { - "type": "integer", + "type": ["integer", "string"], "description": "Issue being depended on" }, "repo": { @@ -782,7 +782,7 @@ class GiteaMCPServer: "type": "object", "properties": { "pr_number": { - "type": "integer", + "type": ["integer", "string"], "description": "Pull request number" }, "repo": { @@ -800,7 +800,7 @@ class GiteaMCPServer: "type": "object", "properties": { "pr_number": { - "type": "integer", + "type": ["integer", "string"], "description": "Pull request number" }, "repo": { @@ -818,7 +818,7 @@ class GiteaMCPServer: "type": "object", "properties": { "pr_number": { - "type": "integer", + "type": ["integer", "string"], "description": "Pull request number" }, "repo": { @@ -836,7 +836,7 @@ class GiteaMCPServer: "type": "object", "properties": { "pr_number": { - "type": "integer", + "type": ["integer", "string"], "description": "Pull request number" }, "body": { @@ -855,7 +855,7 @@ class GiteaMCPServer: "type": "object", "properties": { "path": {"type": "string"}, - "position": {"type": "integer"}, + "position": {"type": ["integer", "string"]}, "body": {"type": "string"} } }, @@ -876,7 +876,7 @@ class GiteaMCPServer: "type": "object", "properties": { "pr_number": { - "type": "integer", + "type": ["integer", "string"], "description": "Pull request number" }, "body": {